Layer getGcpLayer(boolean create) { final Product product = getProduct(); if (product != null) { final VectorDataNode vectorDataNode = product.getGcpGroup().getVectorDataNode(); final Layer vectorDataCollectionLayer = getVectorDataCollectionLayer(create); if (vectorDataCollectionLayer != null) { return LayerUtils.getChildLayer(getRootLayer(), LayerUtils.SEARCH_DEEP, VectorDataLayerFilterFactory.createNodeFilter(vectorDataNode)); } } return null; }
/** * Gets the number of raster datasets. * * @return the number of raster datasets, always {@code 1} for single banded palette images or {@code 3} * for RGB images */ public int getNumRasters() { return getSceneImage().getRasters().length; }
Layer getNoDataLayer(boolean create) { Layer layer = getLayer(ProductSceneView.NO_DATA_LAYER_ID); if (layer == null && create) { layer = createNoDataLayer(); addLayer(getFirstImageLayerIndex(), layer); } return layer; }
GraticuleLayer getGraticuleLayer(boolean create) { GraticuleLayer layer = (GraticuleLayer) getLayer(ProductSceneView.GRATICULE_LAYER_ID); if (layer == null && create) { layer = createGraticuleLayer(getImageToModelTransform()); addLayer(0, layer); } return layer; }
Layer getVectorDataCollectionLayer(boolean create) { Layer layer = getLayer(ProductSceneView.VECTOR_DATA_LAYER_ID); if (layer == null && create) { layer = createVectorDataCollectionLayer(); addLayer(getFirstImageLayerIndex(), layer); } return layer; }
private ProductSceneImage createProductSceneImage(final RasterDataNode raster, ProductSceneView existingView, com.bc.ceres.core.ProgressMonitor pm) { Debug.assertNotNull(raster); Debug.assertNotNull(pm); try { pm.beginTask("Creating image...", 1); ProductSceneImage sceneImage; if (existingView != null) { sceneImage = new ProductSceneImage(raster, existingView); } else { sceneImage = new ProductSceneImage(raster, SnapApp.getDefault().getPreferencesPropertyMap(), SubProgressMonitor.create(pm, 1)); } sceneImage.initVectorDataCollectionLayer(); sceneImage.initMaskCollectionLayer(); return sceneImage; } finally { pm.done(); } }
private Layer createBaseImageLayer() { final Layer layer; if (getRasters().length == 1) { final RasterImageLayerType type = LayerTypeRegistry.getLayerType(RasterImageLayerType.class); layer = type.createLayer(getRaster(), coloredBandImageMultiLevelSource); } else { final RgbImageLayerType type = LayerTypeRegistry.getLayerType(RgbImageLayerType.class); layer = type.createLayer(getRasters(), coloredBandImageMultiLevelSource); } layer.setName(getName()); layer.setVisible(true); layer.setId(ProductSceneView.BASE_IMAGE_LAYER_ID); applyBaseImageLayerStyle(configuration, layer); return layer; }
Layer getMaskCollectionLayer(boolean create) { Layer layer = getLayer(ProductSceneView.MASKS_LAYER_ID); if (layer == null && create) { layer = createMaskCollectionLayer(); addLayer(getFirstImageLayerIndex(), layer); } return layer; }
/** * Called after SNAP preferences have changed. * This behaviour is deprecated since we want to uswe separate style editors for each layers. * * @param configuration the configuration. */ public void appyLayerProperties(PropertyMap configuration) { setScrollBarsShown(configuration.getPropertyBool(PREFERENCE_KEY_IMAGE_SCROLL_BARS_SHOWN, false)); layerCanvas.setAntialiasing(true); layerCanvas.setNavControlShown(configuration.getPropertyBool(PREFERENCE_KEY_IMAGE_NAV_CONTROL_SHOWN, true)); layerCanvas.setBackground( configuration.getPropertyColor("image.background.color", DEFAULT_IMAGE_BACKGROUND_COLOR)); layerCanvasMouseHandler.setInvertZooming(configuration.getPropertyBool(PREFERENCE_KEY_INVERT_ZOOMING, false)); ImageLayer imageLayer = getBaseImageLayer(); if (imageLayer != null) { ProductSceneImage.applyBaseImageLayerStyle(configuration, imageLayer); } Layer noDataLayer = getNoDataLayer(false); if (noDataLayer != null) { ProductSceneImage.applyNoDataLayerStyle(configuration, noDataLayer); } Layer collectionLayer = getVectorDataCollectionLayer(false); if (collectionLayer != null) { ProductSceneImage.applyFigureLayerStyle(configuration, collectionLayer); } GraticuleLayer graticuleLayer = getGraticuleLayer(false); if (graticuleLayer != null) { ProductSceneImage.applyGraticuleLayerStyle(configuration, graticuleLayer); } }
public void testIsRGB() { ProductSceneView view; view = new ProductSceneView(new ProductSceneImage(r, new DefaultPropertyMap(), ProgressMonitor.NULL)); assertFalse(view.isRGB()); view = new ProductSceneView(new ProductSceneImage("RGB", r, g, b, new DefaultPropertyMap(), ProgressMonitor.NULL)); assertTrue(view.isRGB()); }
sceneImage.getConfiguration().removePropertyChangeListener(this); for (int i = 0; i < getSceneImage().getRasters().length; i++) { final RasterDataNode raster = getSceneImage().getRasters()[i]; if (raster instanceof RGBChannel) { RGBChannel rgbChannel = (RGBChannel) raster; rgbChannel.dispose(); sceneImage.getRasters()[i] = null;
@Override public Object getCoordinateReferenceSystem() { return getProduct().getSceneCRS(); }
private void initRootLayer() { rootLayer = new CollectionLayer(); addLayer(0, createBaseImageLayer()); }
private GraticuleLayer createGraticuleLayer(AffineTransform i2mTransform) { final LayerType layerType = LayerTypeRegistry.getLayerType(GraticuleLayerType.class); final PropertySet template = layerType.createLayerConfig(null); template.setValue(GraticuleLayerType.PROPERTY_NAME_RASTER, getRaster()); final GraticuleLayer graticuleLayer = (GraticuleLayer) layerType.createLayer(null, template); graticuleLayer.setId(ProductSceneView.GRATICULE_LAYER_ID); graticuleLayer.setVisible(false); graticuleLayer.setName("Graticule"); applyGraticuleLayerStyle(configuration, graticuleLayer); return graticuleLayer; }
private ProductSceneImage createProductSceneImageRGB(String name, final Product product, String[] rgbaExpressions, ProgressMonitor pm) throws Exception { Band[] rgbBands = null; boolean errorOccurred = false; ProductSceneImage productSceneImage = null; try { pm.beginTask("Creating RGB image...", 2); rgbBands = allocateRgbBands(product, rgbaExpressions); productSceneImage = new ProductSceneImage(name, rgbBands[0], rgbBands[1], rgbBands[2], SnapApp.getDefault().getPreferencesPropertyMap(), SubProgressMonitor.create(pm, 1)); productSceneImage.initVectorDataCollectionLayer(); productSceneImage.initMaskCollectionLayer(); } catch (Exception e) { errorOccurred = true; throw e; } finally { pm.done(); if (rgbBands != null) { releaseRgbBands(rgbBands, errorOccurred); } } return productSceneImage; }
public void testDispose() { final ProductSceneView view = new ProductSceneView(new ProductSceneImage(r, new DefaultPropertyMap(), ProgressMonitor.NULL)); view.dispose(); assertNull(view.getSceneImage()); }
@Override public void done() { UIUtils.setRootFrameDefaultCursor(snapApp.getMainFrame()); snapApp.setStatusBarMessage(""); try { ProductSceneImage sceneImage = get(); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(sceneImage.getProduct()); ProductSceneView view = new ProductSceneView(sceneImage, undoManager); // get the preferences: SnapApp.getInstance().getPreferences() // add the view (as listener) to it openDocumentWindow(view); } catch (Exception e) { snapApp.handleError(MessageFormat.format("Failed to open image view.\n\n{0}", e.getMessage()), e); } }
private static ProductSceneImage createProductSceneImageHSV(final String name, final Product product, final String[] hsvExpressions, final ProgressMonitor pm) throws Exception { UIUtils.setRootFrameWaitCursor(SnapApp.getDefault().getMainFrame()); Band[] rgbBands = null; boolean errorOccured = false; ProductSceneImage productSceneImage = null; try { pm.beginTask("Creating HSV image...", 2); final String[] rgbaExpressions = convertHSVToRGBExpressions(hsvExpressions); rgbBands = OpenRGBImageViewAction.allocateRgbBands(product, rgbaExpressions); productSceneImage = new ProductSceneImage(name, rgbBands[0], rgbBands[1], rgbBands[2], SnapApp.getDefault().getPreferencesPropertyMap(), SubProgressMonitor.create(pm, 1)); productSceneImage.initVectorDataCollectionLayer(); productSceneImage.initMaskCollectionLayer(); } catch (Exception e) { errorOccured = true; throw e; } finally { pm.done(); if (rgbBands != null) { OpenRGBImageViewAction.releaseRgbBands(rgbBands, errorOccured); } } return productSceneImage; }
Layer getPinLayer(boolean create) { final Product product = getProduct(); if (product != null) { final VectorDataNode vectorDataNode = product.getPinGroup().getVectorDataNode(); final Layer vectorDataCollectionLayer = getVectorDataCollectionLayer(create); if (vectorDataCollectionLayer != null) { return LayerUtils.getChildLayer(getRootLayer(), LayerUtils.SEARCH_DEEP, VectorDataLayerFilterFactory.createNodeFilter(vectorDataNode)); } } return null; }
/** * Gets the product raster of a single banded view. * * @return the product raster, in case of a 3-banded RGB view it returns the first raster. * * @see #isRGB() */ public RasterDataNode getRaster() { return getSceneImage().getRasters()[0]; }