@Override protected void disposeLayer() { Product product = vectorDataNode.getProduct(); if (product != null) { product.removeProductNodeListener(vectorDataChangeHandler); } vectorDataNode = null; super.disposeLayer(); }
@Override public void destroy() throws IOException { deleteProductNode(getProductNode().getProduct(), getProductNode().getProduct().getVectorDataGroup(), getProductNode()); }
public ProductPlacemarkView(VectorDataNode vectorDataNode) { this.vectorDataNode = vectorDataNode; this.vectorDataNode.getProduct().addProductNodeListener(new PNL()); tableModel = new PlacemarkTableModel(); JTable placemarkTable = new JTable(); placemarkTable.setRowSorter(new TableRowSorter<>(tableModel)); placemarkTable.addMouseListener(new PopupMenuHandler(this)); placemarkTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); placemarkTable.setModel(tableModel); final TableCellRenderer renderer = placemarkTable.getTableHeader().getDefaultRenderer(); final int margin = placemarkTable.getTableHeader().getColumnModel().getColumnMargin(); Enumeration<TableColumn> columns = placemarkTable.getColumnModel().getColumns(); while (columns.hasMoreElements()) { TableColumn tableColumn = columns.nextElement(); final int width = getColumnMinWith(tableColumn, renderer, margin); tableColumn.setMinWidth(width); } final JScrollPane scrollPane = new JScrollPane(placemarkTable); setLayout(new BorderLayout()); add(scrollPane, BorderLayout.CENTER); }
CoordinateReferenceSystem crs = vectorNode.getFeatureType().getCoordinateReferenceSystem(); if (crs == null) { // for pins and GCPs crs is null crs = vectorNode.getProduct().getSceneCRS(); if (vectorNode.getProduct().getSceneGeoCoding() instanceof CrsGeoCoding) { modelCrs = vectorNode.getProduct().getSceneCRS(); } else { modelCrs = DefaultGeographicCRS.WGS84;
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); } }