private List<SimpleFeature> toSimpleFeatureList(Figure[] figures) { SimpleFeature[] features = new SimpleFeature[figures.length]; for (int i = 0, figuresLength = figures.length; i < figuresLength; i++) { Figure figure = figures[i]; if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure simpleFeatureFigure = (SimpleFeatureFigure) figure; features[i] = simpleFeatureFigure.getSimpleFeature(); } } return Arrays.asList(features); }
if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure simpleFeatureFigure = (SimpleFeatureFigure) figure; figureMap.put(simpleFeatureFigure.getSimpleFeature(), simpleFeatureFigure); final FigureStyle normalStyle = DefaultFigureStyle.createFromCss(css); final FigureStyle selectedStyle = getFigureFactory().deriveSelectedStyle(normalStyle); featureFigure.setNormalStyle(normalStyle); featureFigure.setSelectedStyle(selectedStyle); figureCollection.addFigure(featureFigure); featureFigure.forceRegeneration();
return; SimpleFeature simpleFeature = selectedFeatureFigure.getSimpleFeature(); CoordinateReferenceSystem sourceCrs = simpleFeature.getDefaultGeometryProperty().getDescriptor().getCoordinateReferenceSystem(); CoordinateReferenceSystem targetCrs = DefaultGeographicCRS.WGS84; Geometry sourceGeom = selectedFeatureFigure.getGeometry(); Geometry targetGeom; try {
final Object oldFigureValue = figure.getNormalStyle().getValue(propertyName); final Object newValue = evt.getNewValue(); if (!newValue.equals(oldFigureValue)) { propertyName, oldFigureValue, evt.getNewValue())); final FigureStyle origStyle = figure.getNormalStyle(); final FigureStyle style = new DefaultFigureStyle(); style.fromCssString(origStyle.toCssString()); updateStyle(getBindingContext(), evt.getPropertyName(), style); figure.setNormalStyle(style);
private Placemark[] getSelectedPlacemarks(PlacemarkGroup placemarkGroup) { Figure[] figures = figureEditor.getFigureSelection().getFigures(); ArrayList<Placemark> selectedPlacemarks = new ArrayList<>(figures.length); for (Figure figure : figures) { if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) figure; Placemark placemark = placemarkGroup.getPlacemark(featureFigure.getSimpleFeature()); if (placemark != null) { selectedPlacemarks.add(placemark); } } } return selectedPlacemarks.toArray(new Placemark[selectedPlacemarks.size()]); }
private Placemark getSelectedPlacemark(PlacemarkGroup placemarkGroup) { Figure[] figures = figureEditor.getFigureSelection().getFigures(); for (Figure figure : figures) { if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) figure; Placemark placemark = placemarkGroup.getPlacemark(featureFigure.getSimpleFeature()); if (placemark != null) { return placemark; } } } return null; }
@Override public void changeFigure(Figure figure, Object figureMemento, String presentationName) { Debug.trace("VectorDataFigureEditor.changeFigure " + figure + ", " + presentationName); super.changeFigure(figure, figureMemento, presentationName); if (vectorDataNode != null) { if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) figure; vectorDataNode.fireFeaturesChanged(featureFigure.getSimpleFeature()); } } else { // warn } }
private boolean isPlacemarkSelected(PlacemarkGroup placemarkGroup, Placemark placemark) { Figure[] figures = figureEditor.getFigureSelection().getFigures(); for (Figure figure : figures) { if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) figure; Placemark pin = placemarkGroup.getPlacemark(featureFigure.getSimpleFeature()); if (pin == placemark) { return true; } } } return false; }
private void setFeatureStyleCss(SimpleFeatureFigure selectedFigure, FigureStyle style) { final VectorDataNode vectorDataNode = getVectorDataNode(); if (vectorDataNode != null) { // Transfer new style to associated placemark. Awful code :-( final Placemark placemark = vectorDataNode.getPlacemarkGroup().getPlacemark(selectedFigure.getSimpleFeature()); if (placemark != null) { placemark.setStyleCss(style.toCssString()); } else { final int index = selectedFigure.getSimpleFeature().getFeatureType().indexOf(Placemark.PROPERTY_NAME_STYLE_CSS); if (index != -1) { selectedFigure.getSimpleFeature().setAttribute(index, style.toCssString()); } } } } }
public boolean selectPlacemarks(PlacemarkGroup placemarkGroup, Placemark[] placemarks) { VectorDataLayer layer = selectVectorDataLayer(placemarkGroup.getVectorDataNode()); if (layer != null) { FigureCollection figureCollection = layer.getFigureCollection(); Figure[] figures = figureCollection.getFigures(); ArrayList<SimpleFeatureFigure> selectedFigures = new ArrayList<>(figures.length); HashSet<Placemark> placemarkSet = new HashSet<>(Arrays.asList(placemarks)); for (Figure figure : figures) { if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) figure; Placemark placemark = placemarkGroup.getPlacemark(featureFigure.getSimpleFeature()); if (placemarkSet.contains(placemark)) { selectedFigures.add(featureFigure); } } } figureEditor.getFigureSelection().removeAllFigures(); figureEditor.getFigureSelection().addFigures(selectedFigures.toArray(new Figure[selectedFigures.size()])); final int selectionStage = Math.min(selectedFigures.size(), 2); figureEditor.getFigureSelection().setSelectionStage(selectionStage); return true; } return false; }
@Override protected void storeFigureCollection(FigureCollection figureCollection, File file) throws IOException { Figure[] figures = figureCollection.getFigures(); Map<Class<?>, List<SimpleFeature>> featureListMap = new HashMap<>(); for (Figure figure : figures) { SimpleFeatureFigure simpleFeatureFigure = (SimpleFeatureFigure) figure; SimpleFeature simpleFeature = simpleFeatureFigure.getSimpleFeature(); Class<?> geometryType = simpleFeature.getDefaultGeometry().getClass(); List<SimpleFeature> featureList = featureListMap.computeIfAbsent(geometryType, k -> new ArrayList<SimpleFeature>()); featureList.add(simpleFeature); } Set<Map.Entry<Class<?>, List<SimpleFeature>>> entries = featureListMap.entrySet(); for (Map.Entry<Class<?>, List<SimpleFeature>> entry : entries) { Class<?> geomType = entry.getKey(); List<SimpleFeature> features = entry.getValue(); // ExportGeometryAction.writeEsriShapefile(geomType, features, file); } }
@Override public void selectionChanged(SelectionChangeEvent event) { Selection selection = event.getSelection(); if (selection.isEmpty()) { if (!firedNoPinSelected) { firePropertyChange(PROPERTY_NAME_SELECTED_PIN, null, null); firedNoPinSelected = true; } } else { Object selectedValue = selection.getSelectedValue(); if (selectedValue instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) selectedValue; PlacemarkGroup pinGroup = getProduct().getPinGroup(); Placemark pin = pinGroup.getPlacemark(featureFigure.getSimpleFeature()); if (pin != null) { firePropertyChange(PROPERTY_NAME_SELECTED_PIN, null, pin); firedNoPinSelected = false; } } } } }
@Override public void figureChanged(FigureChangeEvent event) { final Figure sourceFigure = event.getSourceFigure(); if (sourceFigure instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) sourceFigure; try { final VectorDataNode vectorDataNode = getVectorDataNode(); if (vectorDataNode != null ) { final SimpleFeature simpleFeature = featureFigure.getSimpleFeature(); Debug.trace("VectorDataLayer$FigureChangeHandler: vectorDataNode=" + vectorDataNode.getName() + ", featureType=" + simpleFeature.getFeatureType().getTypeName()); reactingAgainstFigureChange = true; vectorDataNode.fireFeaturesChanged(simpleFeature); // checkme - we could do better by computing changed modelRegion instead of passing null (nf) fireLayerDataChanged(null); } } finally { reactingAgainstFigureChange = false; } } } }