public void setSelectedGeoBoundaries(final GeoPos[][] geoBoundarys) { final Boundary[] oldGeoBoundarys = getSelectedGeoBoundaries(); if (geoBoundarys != null) { final List<Boundary> boundaryList = new ArrayList<>(); for (GeoPos[] geoBoundary : geoBoundarys) { boundaryList.add(new Boundary(geoBoundary)); } selectedGeoBoundaryList = boundaryList.toArray(new Boundary[boundaryList.size()]); } firePropertyChange(PROPERTY_SELECTED_GEO_BOUNDARIES, oldGeoBoundarys, selectedGeoBoundaryList); }
public void zoomToProduct(Product product) { final NestWorldMapPaneDataModel.Boundary[] selGeoBoundaries = dataModel.getSelectedGeoBoundaries(); final GeneralPath[] generalPaths; if (product != null && product.getSceneGeoCoding() != null) { generalPaths = getGeoBoundaryPaths(product); } else if (selGeoBoundaries.length > 0) { generalPaths = assemblePathList(selGeoBoundaries[0].geoBoundary);//selGeoBoundaries[0].boundaryPaths; } else { return; } Rectangle2D modelArea = new Rectangle2D.Double(); final Viewport viewport = layerCanvas.getViewport(); for (GeneralPath generalPath : generalPaths) { final Rectangle2D rectangle2D = generalPath.getBounds2D(); if (modelArea.isEmpty()) { if (!viewport.isModelYAxisDown()) { modelArea.setFrame(rectangle2D.getX(), rectangle2D.getMaxY(), rectangle2D.getWidth(), rectangle2D.getHeight()); } modelArea = rectangle2D; } else { modelArea.add(rectangle2D); } } Rectangle2D modelBounds = modelArea.getBounds2D(); modelBounds.setFrame(modelBounds.getX() - 2, modelBounds.getY() - 2, modelBounds.getWidth() + 4, modelBounds.getHeight() + 4); modelBounds = cropToMaxModelBounds(modelBounds); viewport.zoom(modelBounds); }
@Override public void paintOverlay(LayerCanvas canvas, Rendering rendering) { for (final NestWorldMapPaneDataModel.Boundary extraGeoBoundary : dataModel.getAdditionalGeoBoundaries()) { drawGeoBoundary(rendering.getGraphics(), assemblePathList(extraGeoBoundary.geoBoundary), extraGeoBoundary.isClosed, transWhiteColor, borderWhiteColor); } for (final NestWorldMapPaneDataModel.Boundary selectGeoBoundary : dataModel.getSelectedGeoBoundaries()) { drawGeoBoundary(rendering.getGraphics(), assemblePathList(selectGeoBoundary.geoBoundary), selectGeoBoundary.isClosed, transRedColor, borderRedColor); } final Product selectedProduct = dataModel.getSelectedProduct(); for (final Product product : dataModel.getProducts()) { if (product != null && selectedProduct != product) { drawProduct(rendering.getGraphics(), product, transWhiteColor, Color.WHITE); } } if (selectedProduct != null) { drawProduct(rendering.getGraphics(), selectedProduct, transWhiteColor, Color.RED); } final NestWorldMapPaneDataModel.Boundary selectionBox = dataModel.getSelectionBoundary(); drawGeoBoundary(rendering.getGraphics(), assemblePathList(selectionBox.geoBoundary),//selectionBox.boundaryPaths, selectionBox.isClosed, selectionFillColor, selectionBorderColor); }