@Override public Viewport getViewport() { return layerCanvas.getViewport(); }
private void registerLayerCanvasListeners() { layerCanvasComponentHandler = new LayerCanvasComponentHandler(); layerCanvasMouseHandler = new LayerCanvasMouseHandler(); layerCanvas.addComponentListener(layerCanvasComponentHandler); layerCanvas.addMouseListener(layerCanvasMouseHandler); layerCanvas.addMouseMotionListener(layerCanvasMouseHandler); layerCanvas.addMouseWheelListener(layerCanvasMouseHandler); PopupMenuHandler popupMenuHandler = new PopupMenuHandler(this); layerCanvas.addMouseListener(popupMenuHandler); layerCanvas.addKeyListener(popupMenuHandler); }
private void clearPsvOverlayMap() { for (Map.Entry<ProductSceneView, ImageCursorOverlay> entry : psvOverlayMap.entrySet()) { final ProductSceneView view = entry.getKey(); view.getLayerCanvas().removeOverlay(entry.getValue()); } psvOverlayMap.clear(); }
public void setPanSupport(PanSupport panSupport) { layerCanvas.removeMouseListener(mouseHandler); layerCanvas.removeMouseMotionListener(mouseHandler); this.panSupport = panSupport; mouseHandler = new MouseHandler(); layerCanvas.addMouseListener(mouseHandler); layerCanvas.addMouseMotionListener(mouseHandler); }
private static void installLayerCanvasNavigation(final LayerCanvas layerCanvas, final NestWorldMapPaneDataModel dataModel) { MouseHandler mouseHandler = new MouseHandler(layerCanvas, dataModel); layerCanvas.addMouseListener(mouseHandler); layerCanvas.addMouseMotionListener(mouseHandler); layerCanvas.addMouseWheelListener(mouseHandler); }
public NestWorldMapPane(NestWorldMapPaneDataModel dataModel) { this.dataModel = dataModel; try { layerCanvas = new LayerCanvas(); layerCanvas.getModel().getViewport().setModelYAxisDown(false); installLayerCanvasNavigation(layerCanvas, dataModel); layerCanvas.addOverlay(new BoundaryOverlay()); final Layer rootLayer = layerCanvas.getLayer(); final Dimension dimension = new Dimension(400, 150); final Viewport viewport = layerCanvas.getViewport(); viewport.setViewBounds(new Rectangle(dimension)); setPreferredSize(dimension); setSize(dimension); setLayout(new BorderLayout()); add(layerCanvas, BorderLayout.CENTER); dataModel.addModelChangeListener(new ModelChangeListener()); worldMapLayer = dataModel.getWorldMapLayer(new WorldMapLayerContext(rootLayer)); layerCanvas.getLayer().getChildren().add(worldMapLayer); layerCanvas.getViewport().zoom(worldMapLayer.getModelBounds()); setNavControlVisible(true); } catch (Exception e) { SnapApp.getDefault().handleError("Error in worldmap initialization", e); } }
setOpaque(true); this.navigationWindow = navigationWindow; thumbnailCanvas = new LayerCanvas(); thumbnailCanvas.setBackground(ProductSceneView.DEFAULT_IMAGE_BACKGROUND_COLOR); thumbnailCanvas.setLayerFilter(new LayerFilter() { @Override public boolean accept(Layer layer) { thumbnailCanvas.addOverlay(new LayerCanvas.Overlay() { @Override public void paintOverlay(LayerCanvas canvas, Rendering rendering) {
this.layerCanvas = new LayerCanvas(rootLayer, viewport); rootLayer.addListener(new AbstractLayerListener() { @Override final boolean navControlShown = sceneImage.getConfiguration().getPropertyBool( PROPERTY_KEY_IMAGE_NAV_CONTROL_SHOWN, true); this.layerCanvas.setNavControlShown(navControlShown); this.layerCanvas.setAntialiasing( sceneImage.getConfiguration().getPropertyBool(PROPERTY_KEY_GRAPHICS_ANTIALIASING, true)); this.layerCanvas.setPreferredSize(new Dimension(400, 400)); this.layerCanvas.addOverlay(new LayerCanvas.Overlay() { @Override public void paintOverlay(LayerCanvas canvas, Rendering rendering) {
@Override protected void done() { try { error = null; final com.bc.ceres.glayer.Layer layer = get(); final LayerCanvas layerCanvas = new LayerCanvas(layer); layerCanvas.getViewport().setModelYAxisDown(false); addLayerCanvas(layerCanvas); } catch (ExecutionException e) { error = e.getCause(); showMessage(String.format("<html><b>Error:</b> <i>%s</i></html>", error.getMessage())); e.printStackTrace(); } catch (InterruptedException ignored) { // ok } finally { getContext().updateState(); } }
@Override public void setEnabled(boolean enabled) { if (enabled == isEnabled()) { return; } super.setEnabled(enabled); if (enabled) { worldMapPane.getLayerCanvas().addMouseMotionListener(cursorChanger); worldMapPane.getLayerCanvas().removeOverlay(greyOverlay); worldMapPane.setPanSupport(panSupport); } else { worldMapPane.getLayerCanvas().removeMouseMotionListener(cursorChanger); worldMapPane.getLayerCanvas().addOverlay(greyOverlay); worldMapPane.setPanSupport(new NullPanSupport()); } }
@Override public void handleViewportChanged(Viewport observedViewport, boolean orientationChanged) { if (!adjustingObservedViewport) { if (orientationChanged) { thumbnailCanvas.getViewport().setOrientation(observedViewport.getOrientation()); thumbnailCanvas.zoomAll(); } updateMoveSliderRect(); } } }
public void updateCursorOverlays(GeoPos geoPos, ProductSceneView sourceView) { if (!isActive()) { return; } for (Map.Entry<ProductSceneView, ImageCursorOverlay> entry : psvOverlayMap.entrySet()) { final ProductSceneView view = entry.getKey(); ImageCursorOverlay overlay = entry.getValue(); if (overlay == null) { if (view != sourceView) { overlay = new ImageCursorOverlay(view, geoPos); psvOverlayMap.put(view, overlay); view.getLayerCanvas().addOverlay(overlay); } } else { if (view != sourceView) { overlay.setGeoPosition(geoPos); view.getLayerCanvas().repaint(); } else { view.getLayerCanvas().removeOverlay(overlay); psvOverlayMap.put(view, null); } } } }
void handleViewChanged(ProductSceneView oldView, ProductSceneView newView) { if (debug) { System.out.println("NavigationCanvas.handleViewChanged(): " + System.currentTimeMillis()); System.out.println(" oldView = " + (oldView == null ? "null" : oldView.getSceneName())); System.out.println(" newView = " + (newView == null ? "null" : newView.getSceneName())); } if (oldView != null) { Viewport observedViewport = oldView.getLayerCanvas().getViewport(); observedViewport.removeListener(observedViewportHandler); } if (newView != null) { Viewport observedViewport = newView.getLayerCanvas().getViewport(); observedViewport.addListener(observedViewportHandler); final Rectangle bounds; if (getBounds().isEmpty()) { bounds = new Rectangle(0, 0, 100, 100); } else { bounds = getBounds(); } Viewport thumbnailViewport = new DefaultViewport(bounds, observedViewport.isModelYAxisDown()); thumbnailViewport.setOrientation(observedViewport.getOrientation()); LayerCanvasModel thumbnailCanvasModel = new DefaultLayerCanvasModel(newView.getRootLayer(), thumbnailViewport); thumbnailCanvas.setModel(thumbnailCanvasModel); thumbnailCanvas.zoomAll(); } else { thumbnailCanvas.setModel(NULL_MODEL); } updateMoveSliderRect(); }
/** * Called after VISAT preferences have changed. * This behaviour is deprecated since we want to uswe separate style editors for each layers. * * @param configuration the configuration. */ public void setLayerProperties(PropertyMap configuration) { setScrollBarsShown(configuration.getPropertyBool(PROPERTY_KEY_IMAGE_SCROLL_BARS_SHOWN, false)); layerCanvas.setAntialiasing(configuration.getPropertyBool(PROPERTY_KEY_GRAPHICS_ANTIALIASING, true)); layerCanvas.setNavControlShown(configuration.getPropertyBool(PROPERTY_KEY_IMAGE_NAV_CONTROL_SHOWN, true)); layerCanvas.setBackground( configuration.getPropertyColor("image.background.color", DEFAULT_IMAGE_BACKGROUND_COLOR)); final ImageLayer imageLayer = getBaseImageLayer(); if (imageLayer != null) { ProductSceneImage.setBaseImageLayerStyle(configuration, imageLayer); } final Layer noDataLayer = getNoDataLayer(false); if (noDataLayer != null) { ProductSceneImage.setNoDataLayerStyle(configuration, noDataLayer); } final Layer collectionLayer = getVectorDataCollectionLayer(false); if (collectionLayer != null) { ProductSceneImage.setFigureLayerStyle(configuration, collectionLayer); } final GraticuleLayer graticuleLayer = getGraticuleLayer(false); if (graticuleLayer != null) { ProductSceneImage.setGraticuleLayerStyle(configuration, graticuleLayer); } }
/** * None API. Don't use this method! * * @param navControlShown true, if this canvas uses a navigation control. */ public void setNavControlVisible(boolean navControlShown) { boolean oldValue = this.navControlShown; if (oldValue != navControlShown) { if (navControlShown) { final Action[] overlayActions = getOverlayActions(); final ButtonOverlayControl navControl = new ButtonOverlayControl(overlayActions.length, overlayActions); navControlWrapper = new WakefulComponent(navControl); navControlWrapper.setMinAlpha(0.3f); getLayerCanvas().add(navControlWrapper); } else { getLayerCanvas().remove(navControlWrapper); navControlWrapper = null; } validate(); this.navControlShown = navControlShown; } }
private void exchangeWorldMapLayer() { final List<Layer> children = layerCanvas.getLayer().getChildren(); for (Layer child : children) { child.dispose(); } children.clear(); final Layer rootLayer = layerCanvas.getLayer(); worldMapLayer = dataModel.getWorldMapLayer(new WorldMapLayerContext(rootLayer)); children.add(worldMapLayer); layerCanvas.getViewport().zoom(worldMapLayer.getModelBounds()); }
private void zoomToPixelResolution() { final ProductSceneView view = getCurrentView(); if (view != null) { final LayerCanvas layerCanvas = view.getLayerCanvas(); layerCanvas.getViewport().setZoomFactor(layerCanvas.getDefaultZoomFactor()); maybeSynchronizeCompatibleProductViews(); } }
public void updateCursorOverlays(GeoPos geoPos) { if (!isEnabled()) { return; } for (Map.Entry<ProductSceneView, ImageCursorOverlay> entry : psvOverlayMap.entrySet()) { final ProductSceneView view = entry.getKey(); ImageCursorOverlay overlay = entry.getValue(); if (overlay == null) { overlay = new ImageCursorOverlay(view, geoPos); psvOverlayMap.put(view, overlay); view.getLayerCanvas().addOverlay(overlay); } else { overlay.setGeoPosition(geoPos); view.getLayerCanvas().repaint(); } } }
@Override public void componentResized(ComponentEvent e) { layerCanvas.zoomAll(); } }
@Override public void resultChanged(LookupEvent ev) { ProductSceneView newView = SnapApp.getDefault().getSelectedProductSceneView(); if (lastView != newView) { final ProductSceneView oldView = lastView; if (oldView != null) { if (oldView.getLayerCanvas() != null) { oldView.getLayerCanvas().getModel().removeChangeListener(layerCanvasModelChangeHandler); } } lastView = newView; if (lastView != null) { syncImageViews(lastView); if (lastView.getLayerCanvas() != null) { lastView.getLayerCanvas().getModel().addChangeListener(layerCanvasModelChangeHandler); } } } }