@Override public String getYName() { return vectorNode.getName(); }
@Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (value != null) { this.setText(((VectorDataNode) value).getName()); } return this; } });
public static String getCorrelativeDataLabel(VectorDataNode pointDataSource, AttributeDescriptor dataField1) { final String vdsName = pointDataSource.getName(); final String dataFieldName = dataField1.getLocalName(); return vdsName + "/" + dataFieldName; } }
public VectorDataLayer(LayerContext ctx, VectorDataNode vectorDataNode, SceneTransformProvider provider) { this(TYPE, vectorDataNode, provider, TYPE.createLayerConfig(ctx)); getConfiguration().setValue(VectorDataLayerType.PROPERTY_NAME_VECTOR_DATA, vectorDataNode.getName()); }
private VectorDataLayer createLayerInternal(ProductLayerContext ctx, VectorDataNode vectorDataNode) { final PropertySet configuration = createLayerConfig(ctx); // Save the name of the vectorDataNode, so that we can reconstruct the layer later (e.g. if loaded from session file). configuration.setValue(PROPERTY_NAME_VECTOR_DATA, vectorDataNode.getName()); final ProductNode productNode = ctx.getProductNode(); assert(productNode instanceof RasterDataNode); return createLayer(vectorDataNode, (RasterDataNode) productNode, configuration); }
private String[] getPolygons() { // Get polygons from the first product which is assumed to be maskProduct in BaseClassifier final ArrayList<String> geometryNames = new ArrayList<>(5); if (sourceProducts != null) { if (sourceProducts.length > 1) { final ProductNodeGroup<VectorDataNode> vectorDataNodes = sourceProducts[0].getVectorDataGroup(); for(int i=0; i< vectorDataNodes.getNodeCount(); ++i) { VectorDataNode node = vectorDataNodes.get(i); if(!node.getFeatureCollection().isEmpty()) { geometryNames.add(node.getName() + "::" + sourceProducts[0].getName()); } } } else { final ProductNodeGroup<VectorDataNode> vectorDataNodes = sourceProducts[0].getVectorDataGroup(); for(int i=0; i< vectorDataNodes.getNodeCount(); ++i) { VectorDataNode node = vectorDataNodes.get(i); if(!node.getFeatureCollection().isEmpty()) { geometryNames.add(node.getName()); } } } } return geometryNames.toArray(new String[geometryNames.size()]); }
Debug.trace("VectorDataLayer$VectorDataChangeHandler.nodeChanged: event = " + event); if (ProductNode.PROPERTY_NAME_NAME.equals(event.getPropertyName())) { setName(getVectorDataNode().getName()); } else if (VectorDataNode.PROPERTY_NAME_STYLE_CSS.equals(event.getPropertyName())) { if (event.getNewValue() != null) {
@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; } } } }
private static VectorDataNode createVectorDataNode(FeatureStatisticsWriter featureStatisticsWriter, VectorDataNode originalVDN) { final SimpleFeatureType updatedFeatureType = featureStatisticsWriter.getUpdatedFeatureType(); final List<SimpleFeature> features = featureStatisticsWriter.getFeatures(); final ListFeatureCollection featureCollection = new ListFeatureCollection(updatedFeatureType, features); final PlacemarkDescriptor placemarkDescriptor = originalVDN.getPlacemarkDescriptor(); final VectorDataNode vectorDataNode = new VectorDataNode(originalVDN.getName(), featureCollection, placemarkDescriptor); vectorDataNode.setPermanent(originalVDN.isPermanent()); vectorDataNode.setModified(true); vectorDataNode.setDescription(originalVDN.getDescription()); return vectorDataNode; }
protected VectorDataLayer(VectorDataLayerType vectorDataLayerType, VectorDataNode vectorDataNode, SceneTransformProvider provider, PropertySet configuration) { super(vectorDataLayerType, configuration); setUniqueId(); this.vectorDataNode = vectorDataNode; setName(vectorDataNode.getName()); figureFactory = new SimpleFeatureFigureFactory(vectorDataNode.getFeatureType(), provider); figureCollection = new DefaultFigureCollection(); updateFigureCollection(); vectorDataChangeHandler = new VectorDataChangeHandler(); vectorDataNode.getProduct().addProductNodeListener(vectorDataChangeHandler); figureCollection.addChangeListener(new FigureChangeHandler()); }
public static void deleteVectorDataNode(VectorDataNode vectorDataNode) { Assert.notNull(vectorDataNode); Product product = vectorDataNode.getProduct(); ProductNodeGroup<Mask> maskGroup = product.getMaskGroup(); Mask vectorMask = null; for (int i = 0; i < maskGroup.getNodeCount(); i++) { Mask mask = maskGroup.get(i); if (mask.getImageType() == Mask.VectorDataType.INSTANCE && Mask.VectorDataType.getVectorData(mask) == vectorDataNode) { vectorMask = mask; break; } } String message; if (vectorMask != null) { List<RasterDataNode> virtualBands = getReferencedVirtualBands(vectorMask); List<RasterDataNode> validMaskNodes = getReferencedValidMasks(vectorMask); List<RasterDataNode> masks = getReferencedMasks(vectorMask); VectorDataNode[] nodes = new VectorDataNode[]{vectorDataNode}; message = formatPromptMessage("Geometry", nodes, virtualBands, validMaskNodes, masks); } else { message = MessageFormat.format("Do you really want to delete the geometry ''{0}''?\nThis action cannot be undone.\n\n", vectorDataNode.getName()); } final Dialogs.Answer answer = Dialogs.requestDecision("Delete Vector Data", message, true, null); if (answer == Dialogs.Answer.YES) { product.getVectorDataGroup().remove(vectorDataNode); } }
/** * Performs the actual "export Mask Pixels" command. */ private void exportVectorDataNode() { SnapApp snapApp = SnapApp.getDefault(); if (vectorDataNode.getFeatureCollection().isEmpty()) { Dialogs.showInformation(Bundle.CTL_ExportGeometryAction_DialogTitle(), "The selected geometry is empty. Nothing to export.", null); return; } final File file = promptForFile(vectorDataNode.getName()); if (file == null) { return; } final SwingWorker<Exception, Object> swingWorker = new ExportVectorNodeSwingWorker(snapApp, vectorDataNode, file); UIUtils.setRootFrameWaitCursor(snapApp.getMainFrame()); snapApp.setStatusBarMessage("Exporting Geometry..."); swingWorker.execute(); }
} else if (imageType.getName().equals(Mask.VectorDataType.TYPE_NAME)) { VectorDataNode vectorDataMaskNode = Mask.VectorDataType.getVectorData(sourceMask); String vectorDataNodeName = vectorDataMaskNode.getName();
VectorDataNode targetVectorDataNode = new VectorDataNode(sourceVectorDataNode.getName(), sourceCollection.getSchema()); targetVectorDataNode.getFeatureCollection().addAll((FeatureCollection<?, ?>) targetCollection); targetVectorDataNode.setDefaultStyleCss(sourceVectorDataNode.getDefaultStyleCss());