public Object getPropertyValue(String propertyName) { Object result = null; if (propertySet.isPropertyDefined(propertyName)) { result = propertySet.getProperty(propertyName).getValue(); } return result; }
private VectorDataLayer createLayerInternal(LayerContext ctx, VectorDataNode vectorDataNode) { final PropertySet configuration = createLayerConfig(ctx); // Save the name of the vectorDataNode, so that we can reconstruct the layer later (e.g. if // loaded from session file). configuration.setValue(PROPERTY_NAME_VECTOR_DATA, vectorDataNode.getName()); return createLayer(vectorDataNode, configuration); }
private void addParameters( final OperatorSpi operatorSpi, final AppContext appContext, final String helpID) { // OperatorMenu operatorMenu = new OperatorMenu(this.getJDialog(), // operatorSpi.getOperatorClass(), // parameterSupport, // helpID); final PropertySet propertyContainer = parameterSupport.getPopertySet(); final List<SourceProductSelector> sourceProductSelectorList = ioParametersPanel.getSourceProductSelectorList(); sourceProductSelectorList .get(0) .addSelectionChangeListener( new AbstractSelectionChangeListener() { @Override public void selectionChanged(SelectionChangeEvent event) { final Product selectedProduct = (Product) event.getSelection().getSelectedValue(); if (selectedProduct != null) { final TargetProductSelectorModel targetProductSelectorModel = getTargetProductSelector().getModel(); targetProductSelectorModel.setProductName( selectedProduct.getName() + getTargetProductNameSuffix()); opUI.setSourceProducts(new Product[] {selectedProduct}); } } }); if (propertyContainer.getProperties().length > 0) { if (!sourceProductSelectorList.isEmpty()) { Property[] properties = propertyContainer.getProperties(); List<PropertyDescriptor> rdnTypeProperties = new ArrayList<PropertyDescriptor>(properties.length); for (Property property : properties) { PropertyDescriptor parameterDescriptor = property.getDescriptor(); if (parameterDescriptor.getAttribute(RasterDataNodeValues.ATTRIBUTE_NAME) != null) { rdnTypeProperties.add(parameterDescriptor); } } rasterDataNodeTypeProperties = rdnTypeProperties.toArray(new PropertyDescriptor[rdnTypeProperties.size()]); } final JComponent paremetersPanel = opUI.CreateOpTab(operatorName, parameterSupport.getParameterMap(), appContext); paremetersPanel.setBorder(new EmptyBorder(4, 4, 4, 4)); this.form.add("Processing Parameters", new JScrollPane(paremetersPanel)); // getJDialog().setJMenuBar(operatorMenu.createDefaultMenu()); } }
private void updateTargetProductFields() { TargetProductSelectorModel model = targetProductSelector.getModel(); Property property = propertySet.getProperty(ToolAdapterConstants.TOOL_TARGET_PRODUCT_FILE); if (!operatorDescriptor.isHandlingOutputName()) { Object value = property.getValue(); if (value != null) { File file = operatorDescriptor.resolveVariables(new File(property.getValueAsText())); String productName = FileUtils.getFilenameWithoutExtension(file); if (fileExtension == null) { fileExtension = FileUtils.getExtension(file); } model.setProductName(productName); } } else { try { model.setProductName("Output Product"); if (property != null) { property.setValue(null); } } catch (ValidationException e) { Logger.getLogger(ToolExecutionForm.class.getName()).severe(e.getMessage()); } } model.setSaveToFileSelected(false); targetProductSelector.getProductDirTextField().setEnabled(false); }
private synchronized void updateChildren() { // Collect all current mask layers LayerFilter layerFilter = layer -> { PropertySet conf = layer.getConfiguration(); return conf.isPropertyDefined(MaskLayerType.PROPERTY_NAME_MASK) && conf.getValue(MaskLayerType.PROPERTY_NAME_MASK) != null; }; List<Layer> maskLayers = LayerUtils.getChildLayers( LayerUtils.getRootLayer(this), LayerUtils.SEARCH_DEEP, layerFilter); HashMap<Mask, Layer> currentLayers = new HashMap<>(); for (Layer maskLayer : maskLayers) { Mask mask = maskLayer.getConfiguration().getValue(MaskLayerType.PROPERTY_NAME_MASK); currentLayers.put(mask, maskLayer); } // Allign mask layers with available masks if (raster != null && getProduct() != null) { Mask[] availableMasks = getProduct().getMaskGroup().toArray(new Mask[0]); HashSet<Layer> unusedLayers = new HashSet<>(maskLayers); for (Mask availableMask : availableMasks) { // todo add all mask layers as soon as the masks have been scaled to fit the raster if (raster.getRasterSize().equals(availableMask.getRasterSize())) { Layer layer = currentLayers.get(availableMask); if (layer != null) { unusedLayers.remove(layer); } else { layer = createLayer(availableMask); getChildren().add(layer); } layer.setVisible(raster.getOverlayMaskGroup().contains(availableMask)); } } // Remove unused layers for (Layer layer : unusedLayers) { layer.dispose(); Layer layerParent = layer.getParent(); if (layerParent != null) { layerParent.getChildren().remove(layer); } } } }
@Override public Layer createLayer(LayerContext ctx, PropertySet configuration) { Assert.notNull(ctx, "ctx"); final ProductLayerContext plc = (ProductLayerContext) ctx; final String vectorDataName = (String) configuration.getValue(PROPERTY_NAME_VECTOR_DATA); final VectorDataNode vectorDataNode = plc.getProduct().getVectorDataGroup().get(vectorDataName); return createLayer(vectorDataNode, configuration); }
static boolean insertImageLayer(LayerSourcePageContext pageContext) { AffineTransform transform = (AffineTransform) pageContext.getPropertyValue(PROPERTY_NAME_WORLD_TRANSFORM); String imageFilePath = (String) pageContext.getPropertyValue(PROPERTY_NAME_IMAGE_FILE_PATH); try { ProductSceneView sceneView = SnapApp.getDefault().getSelectedProductSceneView(); final ImageFileLayerType type = LayerTypeRegistry.getLayerType(ImageFileLayerType.class); final PropertySet configuration = type.createLayerConfig(sceneView); configuration.setValue(ImageFileLayerType.PROPERTY_NAME_IMAGE_FILE, new File(imageFilePath)); configuration.setValue(ImageFileLayerType.PROPERTY_NAME_WORLD_TRANSFORM, transform); Layer layer = type.createLayer(sceneView, configuration); layer.setName(FileUtils.getFileNameFromPath(imageFilePath)); Layer rootLayer = sceneView.getRootLayer(); rootLayer.getChildren().add(sceneView.getFirstImageLayerIndex(), layer); return true; } catch (Exception e) { pageContext.showErrorDialog(e.getMessage()); return false; } }
@Override public Layer createLayer(LayerContext ctx, PropertySet configuration) { CoordinateReferenceSystem targetCrs = null; if (ctx != null) { targetCrs = (CoordinateReferenceSystem) ctx.getCoordinateReferenceSystem(); } FeatureCollection<SimpleFeatureType, SimpleFeature> fc; fc = (FeatureCollection<SimpleFeatureType, SimpleFeature>) configuration.getValue(FeatureLayerType.PROPERTY_NAME_FEATURE_COLLECTION); if (fc == null) { try { final URL url = (URL) configuration.getValue(FeatureLayerType.PROPERTY_NAME_FEATURE_COLLECTION_URL); FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = FeatureUtils.getFeatureSource(url); fc = featureSource.getFeatures(); } catch (IOException e) { throw new IllegalArgumentException(e); } } final CoordinateReferenceSystem featureCrs = (CoordinateReferenceSystem) configuration.getValue(FeatureLayerType.PROPERTY_NAME_FEATURE_COLLECTION_CRS); final Geometry clipGeometry = (Geometry) configuration.getValue(FeatureLayerType.PROPERTY_NAME_FEATURE_COLLECTION_CLIP_GEOMETRY); fc = FeatureUtils.clipCollection( fc, featureCrs, clipGeometry, DefaultGeographicCRS.WGS84, null, targetCrs, ProgressMonitor.NULL); return new FeatureLayer(this, fc, configuration); }
public static TOPSBurstsLayer createLayer(final RasterDataNode raster) { final LayerType type = LayerTypeRegistry.getLayerType(TOPSBurstLayerType.class); final PropertySet template = type.createLayerConfig(null); template.setValue("raster", raster); return new TOPSBurstsLayer(type, template); }