@Override public void propertyChange(PropertyChangeEvent evt) { if (evt.getOldValue().equals(mask.getDescription())) { mask.setDescription((String) evt.getNewValue()); } else { // description my have been set by user, ignore change } } });
@Override public void propertyChange(PropertyChangeEvent evt) { final String oldText = evt.getOldValue().toString(); final String newText = evt.getNewValue().toString(); mask.setDescription(mask.getDescription().replace(oldText, newText)); } });
public static Mask create(String name, String description, int width, int height, String expression, Color color, double transparency) { final Mask mask = new Mask(name, width, height, BandMathsType.INSTANCE); if (description != null) { mask.setDescription(description); } mask.setImageColor(color); mask.setImageTransparency(transparency); BandMathsType.setExpression(mask, expression); return mask; }
@Override public final Mask createObjectFromXml(Element element, Product product) { final String name = getChildAttributeValue(element, TAG_NAME, ATTRIB_VALUE); final int width = product.getSceneRasterWidth(); final int height = product.getSceneRasterHeight(); final Mask mask = new Mask(name, width, height, createImageType()); mask.setDescription(getChildAttributeValue(element, TAG_DESCRIPTION, ATTRIB_VALUE)); mask.setImageTransparency(Double.parseDouble(getChildAttributeValue(element, TAG_TRANSPARENCY, ATTRIB_VALUE))); final int r = Integer.parseInt(getChildAttributeValue(element, TAG_COLOR, ATTRIB_RED)); final int g = Integer.parseInt(getChildAttributeValue(element, TAG_COLOR, ATTRIB_GREEN)); final int b = Integer.parseInt(getChildAttributeValue(element, TAG_COLOR, ATTRIB_BLUE)); final int a = Integer.parseInt(getChildAttributeValue(element, TAG_COLOR, ATTRIB_ALPHA)); mask.setImageColor(new Color(r, g, b, a)); configureMask(mask, element); return mask; }
private void handleMaskAdded(ProductNodeEvent event) { // TODO - move code to where masks are created final Mask mask = (Mask) event.getSourceNode(); if (StringUtils.isNullOrEmpty(mask.getDescription()) && mask.getImageType() == Mask.BandMathsType.INSTANCE) { String expression = Mask.BandMathsType.getExpression(mask); mask.setDescription(getSuitableBitmaskDefDescription(expression)); } }
void addBandMathMask(String code) { final Mask mask = createNewMask(Mask.BandMathsType.INSTANCE); final PropertyContainer imageConfig = mask.getImageConfig(); final String propertyNameExpression = Mask.BandMathsType.PROPERTY_NAME_EXPRESSION; imageConfig.setValue(propertyNameExpression, code); imageConfig.addPropertyChangeListener(propertyNameExpression, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if (evt.getOldValue().equals(mask.getDescription())) { mask.setDescription((String) evt.getNewValue()); } else { // description my have been set by user, ignore change } } }); mask.setDescription(code); getMaskForm().addMask(mask); } }
/** * Creates a new mask based on the geometries contained in a vector data node, * adds it to this product and returns it. * * @param maskName the new mask's name * @param vectorDataNode the vector data node * @param description the mask's description * @param color the display color * @param transparency the display transparency * * @return the new mask which has just been added * * @since BEAM 4.10 */ public Mask addMask(String maskName, VectorDataNode vectorDataNode, String description, Color color, double transparency) { final Mask mask = new Mask(maskName, getSceneRasterWidth(), getSceneRasterHeight(), Mask.VectorDataType.INSTANCE); Mask.VectorDataType.setVectorData(mask, vectorDataNode); mask.setDescription(description); mask.setImageColor(color); mask.setImageTransparency(transparency); getMaskGroup().add(mask); return mask; }
@Test public void testXmlCreationWithoutMaskDescription() { final Mask mask = new Mask("name", 10, 10, new TestImageType()); mask.setDescription(null); final DimapPersistable persistable = new TestMaskPersistable(); final Element element = persistable.createXmlFromObject(mask); final Element description = element.getChild(TAG_DESCRIPTION); assertNotNull(description); assertTrue(description.getAttribute(ATTRIB_VALUE).getValue().isEmpty()); }
mask.setDescription(variable.getDescription());
@Override public void actionPerformed(ActionEvent e) { Mask selectedMask = getMaskForm().getSelectedMask(); final Mask mask = createNewMask(selectedMask.getImageType()); mask.setName("Copy_of_" + selectedMask.getName()); mask.setDescription(selectedMask.getDescription()); PropertyContainer selectedConfig = selectedMask.getImageConfig(); Property[] models = selectedConfig.getProperties(); for (Property model : models) { mask.getImageConfig().setValue(model.getDescriptor().getName(), model.getValue()); } getMaskForm().addMask(mask); }
private void copyMasks(Product sourceProduct, boolean rename, String pattern) { ProductNodeGroup<Mask> maskGroup = sourceProduct.getMaskGroup(); final Mask[] masks = maskGroup.toArray(new Mask[maskGroup.getNodeCount()]); for (Mask mask : masks) { Mask.ImageType imageType = mask.getImageType(); final Mask newmask = new Mask(mask.getName(), targetProduct.getSceneRasterWidth(), targetProduct.getSceneRasterHeight(), imageType); newmask.setDescription(mask.getDescription()); for (Property property : mask.getImageConfig().getProperties()) { newmask.getImageConfig().setValue(property.getDescriptor().getName(), property.getValue()); } if (rename) { newmask.setName(pattern.replace(SOURCE_NAME_REFERENCE, mask.getName())); for (final Band targetBand : targetProduct.getBands()) { RasterDataNode srcRDN = sourceRasterMap.get(targetBand); if (srcRDN != null) { newmask.updateExpression( BandArithmetic.createExternalName(srcRDN.getName()), BandArithmetic.createExternalName(targetBand.getName())); } } } targetProduct.getMaskGroup().add(newmask); } }
@Test public void createXmlFromObject() { final Mask mask = new Mask("myRange", 10, 10, Mask.RangeType.INSTANCE); mask.setDescription("Carefully defined range"); mask.setImageColor(new Color(0, 255, 0, 128)); mask.setImageTransparency(0.78); final RangeTypeMaskPersistable maskPersistable = new RangeTypeMaskPersistable(); final Element element = maskPersistable.createXmlFromObject(mask); assertNotNull(element); assertEquals(TAG_MASK, element.getName()); assertEquals(Mask.RangeType.TYPE_NAME, getAttributeString(element, ATTRIB_TYPE)); final Element name = element.getChild(TAG_NAME); assertEquals("myRange", getAttributeString(name, ATTRIB_VALUE)); final Element description = element.getChild(TAG_DESCRIPTION); assertEquals("Carefully defined range", getAttributeString(description, ATTRIB_VALUE)); final Element color = element.getChild(TAG_COLOR); assertEquals(0, getAttributeInt(color, ATTRIB_RED)); assertEquals(255, getAttributeInt(color, ATTRIB_GREEN)); assertEquals(0, getAttributeInt(color, ATTRIB_BLUE)); assertEquals(128, getAttributeInt(color, ATTRIB_ALPHA)); final Element transparency = element.getChild(TAG_TRANSPARENCY); assertEquals(0.78, getAttributeDouble(transparency, ATTRIB_VALUE), 0.0); }
String code = expressionPane.getCode(); selectedMaskConfig.setValue("expression", code); selectedMask.setDescription(code); model.getMinValue(), model.getRasterName(), model.getMaxValue()); selectedMask.setDescription(description); selectedMaskConfig.setValue(Mask.RangeType.PROPERTY_NAME_MINIMUM, model.getMinValue()); selectedMaskConfig.setValue(Mask.RangeType.PROPERTY_NAME_MAXIMUM, model.getMaxValue());
@Override public Mask transferMask(Mask mask, Product product) { if (canTransferMask(mask, product)) { final String originalMaskName = mask.getName(); final String maskName = getAvailableMaskName(originalMaskName, product.getMaskGroup()); final int w = product.getSceneRasterWidth(); final int h = product.getSceneRasterHeight(); final Mask newMask = new Mask(maskName, w, h, this); newMask.setDescription(mask.getDescription()); setImageStyle(newMask.getImageConfig(), mask.getImageColor(), mask.getImageTransparency()); setRasterName(newMask, getRasterName(mask)); setMinimum(newMask, getMinimum(mask)); setMaximum(newMask, getMaximum(mask)); product.getMaskGroup().add(newMask); return newMask; } return null; }
fireTableCellUpdated(rowIndex, columnIndex); } else if (column == IDX_DESCRIPTION) { mask.setDescription((String) aValue); fireTableCellUpdated(rowIndex, columnIndex);
@Test public void createXmlFromObject() { final Mask mask = new Mask("myRange", 10, 10, Mask.RangeType.INSTANCE); mask.setDescription("Carefully defined range"); mask.setImageColor(new Color(0, 255, 0, 128)); mask.setImageTransparency(0.78);
@Override public void actionPerformed(ActionEvent e) { final Product product = getMaskForm().getProduct(); final String[] rasterNames = StringUtils.addArrays(product.getBandNames(), product.getTiePointGridNames()); final RangeEditorDialog.Model model = new RangeEditorDialog.Model(rasterNames); model.setMinValue(0.0); model.setMaxValue(1.0); model.setRasterName(rasterNames[0]); final RangeEditorDialog rangeEditorDialog = new RangeEditorDialog(getWindow(e), model); if (rangeEditorDialog.show() == AbstractDialog.ID_OK) { final Mask mask = createNewMask(Mask.RangeType.INSTANCE); final String externalName = Tokenizer.createExternalName(model.getRasterName()); mask.setDescription(model.getMinValue() + " <= " + externalName + " <= " + model.getMaxValue()); final PropertyContainer imageConfig = mask.getImageConfig(); imageConfig.setValue(Mask.RangeType.PROPERTY_NAME_MINIMUM, model.getMinValue()); imageConfig.setValue(Mask.RangeType.PROPERTY_NAME_MAXIMUM, model.getMaxValue()); imageConfig.setValue(Mask.RangeType.PROPERTY_NAME_RASTER, externalName); imageConfig.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { final String oldText = evt.getOldValue().toString(); final String newText = evt.getNewValue().toString(); mask.setDescription(mask.getDescription().replace(oldText, newText)); } }); getMaskForm().addMask(mask); } }