@Override public void productRemoved(ProductManager.Event event) { if (maskForm.getProduct() == event.getProduct()) { updateMaskForm(getSelectedProductSceneView()); } } }
private void importMasksFromXml(File file) { try { final SAXBuilder saxBuilder = new SAXBuilder(); final Document document = saxBuilder.build(file); final Element rootElement = document.getRootElement(); @SuppressWarnings({"unchecked"}) final List<Element> children = rootElement.getChildren(DimapProductConstants.TAG_MASK); final Product product = getMaskForm().getProduct(); for (final Element child : children) { final DimapPersistable persistable = DimapPersistence.getPersistable(child); if (persistable != null) { final Mask mask = (Mask) persistable.createObjectFromXml(child, product); addMaskToProductIfPossible(mask, product); } } } catch (Exception e) { showErrorDialog(String.format("Failed to import mask(s): %s", e.getMessage())); } }
Dimension getTargetMaskSize() { RasterDataNode raster = getRaster(); if (raster != null) { return new Dimension(raster.getRasterWidth(), raster.getRasterHeight()); } Product product = getProduct(); if (product != null) { return new Dimension(product.getSceneRasterWidth(), product.getSceneRasterHeight()); } return null; } }
private void importMasksFromBmdx(File file) { try { final SAXBuilder saxBuilder = new SAXBuilder(); final Document document = saxBuilder.build(file); final Element rootElement = document.getRootElement(); @SuppressWarnings({"unchecked"}) final List<Element> children = rootElement.getChildren(DimapProductConstants.TAG_BITMASK_DEFINITION); final Product product = getMaskForm().getProduct(); for (Element element : children) { Mask mask = Mask.BandMathsType.createFromBitmaskDef(element, product.getSceneRasterWidth(), product.getSceneRasterHeight()); product.getMaskGroup().add(mask); } } catch (Exception e) { showErrorDialog(String.format("Failed to import mask(s): %s", e.getMessage())); } }
@Override String getCode(ActionEvent e) { Product product = getMaskForm().getProduct(); ProductExpressionPane expressionPane = ProductExpressionPane.createBooleanExpressionPane( new Product[]{product}, product, null); expressionPane.setEmptyExpressionAllowed(false); expressionPane.setCode(""); if (expressionPane.showModalDialog(null, "New Logical Band Maths Expression") == AbstractDialog.ID_OK) { final String code = expressionPane.getCode(); if (!code.isEmpty()) { return code; } } return null; }
private void importMaskFromBmd(File file) { final PropertyMap propertyMap = new DefaultPropertyMap(); try { propertyMap.load(file.toPath()); // Overwrite existing values final String name = propertyMap.getPropertyString("bitmaskName", "bitmask"); final String description = propertyMap.getPropertyString("bitmaskDesc", null); final String expression = propertyMap.getPropertyString("bitmaskExpr", ""); final Color color = propertyMap.getPropertyColor("bitmaskColor", Color.yellow); final double transparency = propertyMap.getPropertyDouble("bitmaskTransparency", 0.5); final Product product = getMaskForm().getProduct(); product.addMask(name, expression, description, color, transparency); } catch (Exception e) { showErrorDialog(String.format("Failed to import mask(s): %s", e.getMessage())); } }
protected String[] collectNamesOfRastersOfSameSize() { final Product product = getMaskForm().getProduct(); //todo [multisize_products] do not compare raster sizes final RasterDataNode referenceRaster = getMaskForm().getRaster(); final List<String> rangeRasterNames = new ArrayList<>(); final Band[] bands = product.getBands(); for (Band band : bands) { if (band.getRasterHeight() == referenceRaster.getRasterHeight() && band.getRasterWidth() == referenceRaster.getRasterWidth()) { rangeRasterNames.add(band.getName()); } } final TiePointGrid[] tiePointGrids = product.getTiePointGrids(); for (TiePointGrid tiePointGrid : tiePointGrids) { if (tiePointGrid.getRasterHeight() == referenceRaster.getRasterHeight() && tiePointGrid.getRasterWidth() == referenceRaster.getRasterWidth()) { rangeRasterNames.add(tiePointGrid.getName()); } } return rangeRasterNames.toArray(new String[rangeRasterNames.size()]); } }
protected Mask createNewMask(Mask.ImageType type) { String maskName = getNewMaskName(getMaskForm().getProduct().getMaskGroup()); Dimension maskSize = getMaskForm().getTargetMaskSize(); Mask mask = new Mask(maskName, maskSize.width, maskSize.height, type); Preferences preferences = SnapApp.getDefault().getPreferences(); mask.setImageColor( StringUtils.parseColor(preferences.get("mask.color", StringUtils.formatColor(Mask.ImageType.DEFAULT_COLOR)))); mask.setImageTransparency(preferences.getDouble("mask.transparency", Mask.ImageType.DEFAULT_TRANSPARENCY)); return mask; }
void addBandMathMask(String code) { Product product = getMaskForm().getProduct(); RasterDataNode[] refRasters; try {
RasterDataNode referencedRaster = getMaskForm().getProduct().getRasterDataNode(model.getRasterName()); if (referencedRaster == null) { Dialogs.showError(String.format("Raster '%s' not found.", model.getRasterName()));
@Override public void actionPerformed(ActionEvent e) { Window window = getWindow(e); final Product sourcProduct = getMaskForm().getProduct(); Mask[] selectedMasks = getMaskForm().getSelectedMasks(); Product[] allProducts = SnapApp.getDefault().getProductManager().getProducts(); final TransferMaskDialog dialog = new TransferMaskDialog(window, sourcProduct, allProducts, selectedMasks); if (dialog.show() == AbstractDialog.ID_OK) { Product[] maskPixelTargetProducts = dialog.getMaskPixelTargets(); copyMaskPixel(selectedMasks, sourcProduct, maskPixelTargetProducts); Product[] maskDefinitionTargetProducts = dialog.getMaskDefinitionTargets(); copyMaskDefinition(selectedMasks, maskDefinitionTargetProducts); } }
ImageType type = selectedMask.getImageType(); if (type == Mask.BandMathsType.INSTANCE) { Product product = getMaskForm().getProduct(); ProductExpressionPane expressionPane = ProductExpressionPane.createBooleanExpressionPane( new Product[]{product}, product, null);