final Mask mask = maskGroup.get(i); if ((raster.getRasterSize().equals(mask.getRasterSize()))) { maskNameList.add(mask.getName());
private void updateRoiMasks() { final Property property = bindingContext.getPropertySet().getProperty(PROPERTY_NAME_ROI_MASK); if (product != null && raster != null) { //todo [multisize_products] compare scenerastertransform (or its successor) rather than size final ProductNodeGroup<Mask> maskGroup = product.getMaskGroup(); List<ProductNode> maskList = new ArrayList<>(); final Dimension refRrasterSize = raster.getRasterSize(); for (int i = 0; i < maskGroup.getNodeCount(); i++) { final Mask mask = maskGroup.get(i); if (refRrasterSize.equals(mask.getRasterSize())) { maskList.add(mask); } } property.getDescriptor().setValueSet(new ValueSet(maskList.toArray(new ProductNode[maskList.size()]))); } else { property.getDescriptor().setValueSet(new ValueSet(new Mask[0])); } useRoiEnablement.apply(); roiMaskEnablement.apply(); }
private void resetMaskListState() { maskNameListModel = new DefaultListModel<>(); final String[] currentSelectedMaskNames = getSelectedMaskNames(); if (product != null && raster != null) { //todo [multisize_products] compare scenerastertransform (or its successor) rather than size (tf) final ProductNodeGroup<Mask> maskGroup = product.getMaskGroup(); for (int i = 0; i < maskGroup.getNodeCount(); i++) { final Mask mask = maskGroup.get(i); if (mask.getRasterSize().equals(raster.getRasterSize())) { maskNameListModel.addElement(mask.getName()); } } maskNameList.setModel(maskNameListModel); } final String[] allNames = StringUtils.toStringArray(maskNameListModel.toArray()); indexesInMaskNameList = new int[allNames.length]; for (int i = 0; i < allNames.length; i++) { String name = allNames[i]; if (StringUtils.contains(currentSelectedMaskNames, name)) { maskNameList.getCheckBoxListSelectionModel().addSelectionInterval(i, i); } indexesInMaskNameList[i] = i; } updateEnablement(); }
private synchronized Layer createMaskCollectionLayer() { final LayerType maskCollectionType = LayerTypeRegistry.getLayerType(MaskCollectionLayerType.class); final PropertySet layerConfig = maskCollectionType.createLayerConfig(null); layerConfig.setValue(MaskCollectionLayerType.PROPERTY_NAME_RASTER, getRaster()); final Layer maskCollectionLayer = maskCollectionType.createLayer(this, layerConfig); ProductNodeGroup<Mask> productNodeGroup = getRaster().getProduct().getMaskGroup(); final RasterDataNode raster = getRaster(); for (int i = 0; i < productNodeGroup.getNodeCount(); i++) { final Mask mask = productNodeGroup.get(i); //todo add all mask layers as soon as the masks have been scaled to fit the raster if (raster.getRasterSize().equals(mask.getRasterSize())) { Layer layer = MaskLayerType.createLayer(raster, mask); maskCollectionLayer.getChildren().add(layer); } } return maskCollectionLayer; }
@Override public void areaSelected(PlotAreaSelectionTool.AreaType areaType, Shape shape) { Product product = pagePanel.getProduct(); final RasterDataNode raster = pagePanel.getRaster(); if (product == null || raster == null) { return; } String expression = createMaskExpression(areaType, shape); Mask mask = product.getMaskGroup().get(maskName); if (mask != null) { if (!mask.getRasterSize().equals(raster.getRasterSize())) { // if sizes are different we need to remove the mask first and add it as new one product.getMaskGroup().remove(mask); mask = addMask(product, raster, expression); } else { mask.getImageConfig().setValue("expression", expression); } } else { mask = addMask(product, raster, expression); } ProductNodeGroup<Mask> overlayMaskGroup = raster.getOverlayMaskGroup(); if (!overlayMaskGroup.contains(mask)) { overlayMaskGroup.add(mask); } }