public static void deleteRasterDataNodes(RasterDataNode[] rasterNodes) { Assert.notNull(rasterNodes); if (rasterNodes.length == 0) { return; } Set<RasterDataNode> virtualBandsSet = new HashSet<RasterDataNode>(); Set<RasterDataNode> validMaskNodesSet = new HashSet<RasterDataNode>(); Set<RasterDataNode> masksSet = new HashSet<RasterDataNode>(); for (RasterDataNode raster : rasterNodes) { virtualBandsSet.addAll(getReferencedVirtualBands(raster)); validMaskNodesSet.addAll(getReferencedValidMasks(raster)); masksSet.addAll(getReferencedMasks(raster)); } for (RasterDataNode raster : rasterNodes) { virtualBandsSet.remove(raster); validMaskNodesSet.remove(raster); masksSet.remove(raster); } String typeName = getTypeName(rasterNodes); String message = formatPromptMessage(typeName, rasterNodes, virtualBandsSet, validMaskNodesSet, masksSet); deleteRasterDataNodesImpl(rasterNodes, message); }
public static void deleteRasterDataNode(RasterDataNode raster) { Assert.notNull(raster); List<RasterDataNode> virtualBands = getReferencedVirtualBands(raster); List<RasterDataNode> validMaskNodes = getReferencedValidMasks(raster); List<RasterDataNode> masks = getReferencedMasks(raster); RasterDataNode[] rasters = new RasterDataNode[]{raster}; String typeName = getTypeName(rasters); String message = formatPromptMessage(typeName, rasters, virtualBands, validMaskNodes, masks); deleteRasterDataNodesImpl(rasters, message); }
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); } }