private static boolean mustShowVectorData(Product product) { final ProductNodeGroup<VectorDataNode> vectorNodeGroup = product.getVectorDataGroup(); VectorDataNode gcpVectorDataNode = product.getGcpGroup().getVectorDataNode(); VectorDataNode pinVectorDataNode = product.getPinGroup().getVectorDataNode(); for (int i = 0; i < vectorNodeGroup.getNodeCount(); i++) { final VectorDataNode vectorDataNode = vectorNodeGroup.get(i); boolean isPinOrGcpNode = vectorDataNode.equals(gcpVectorDataNode) || vectorDataNode.equals(pinVectorDataNode); if (isPinOrGcpNode) { if(vectorDataNode.getPlacemarkGroup().getNodeCount() > 0) { return true; } } else { return true; } } return false; }
public boolean selectPlacemarks(PlacemarkGroup placemarkGroup, Placemark[] placemarks) { VectorDataLayer layer = selectVectorDataLayer(placemarkGroup.getVectorDataNode()); if (layer != null) { FigureCollection figureCollection = layer.getFigureCollection(); Figure[] figures = figureCollection.getFigures(); ArrayList<SimpleFeatureFigure> selectedFigures = new ArrayList<SimpleFeatureFigure>(figures.length); HashSet<Placemark> placemarkSet = new HashSet<Placemark>(Arrays.asList(placemarks)); for (Figure figure : figures) { if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) figure; Placemark placemark = placemarkGroup.getPlacemark(featureFigure.getSimpleFeature()); if (placemarkSet.contains(placemark)) { selectedFigures.add(featureFigure); } } } figureEditor.getFigureSelection().removeAllFigures(); figureEditor.getFigureSelection().addFigures(selectedFigures.toArray(new Figure[selectedFigures.size()])); final int selectionStage = Math.min(selectedFigures.size(), 2); figureEditor.getFigureSelection().setSelectionStage(selectionStage); return true; } return false; }
@Override public void selectionChanged(SelectionChangeEvent event) { if (synchronizingPlacemarkSelectedState) { return; } Layer layer = getSceneView().getSelectedLayer(); if (layer instanceof VectorDataLayer) { VectorDataLayer vectorDataLayer = (VectorDataLayer) layer; if (vectorDataLayer.getVectorDataNode() == getProduct().getPinGroup().getVectorDataNode() || vectorDataLayer.getVectorDataNode() == getProduct().getGcpGroup().getVectorDataNode()) { updateUIState(); } } }
Layer getGcpLayer(boolean create) { final VectorDataNode vectorDataNode = getProduct().getGcpGroup().getVectorDataNode(); final Layer vectorDataCollectionLayer = getVectorDataCollectionLayer(create); if (vectorDataCollectionLayer != null) { return LayerUtils.getChildLayer(getRootLayer(), LayerUtils.SEARCH_DEEP, VectorDataLayerFilterFactory.createNodeFilter(vectorDataNode)); } else { return null; } }
Layer getPinLayer(boolean create) { final VectorDataNode vectorDataNode = getProduct().getPinGroup().getVectorDataNode(); final Layer vectorDataCollectionLayer = getVectorDataCollectionLayer(create); if (vectorDataCollectionLayer != null) { return LayerUtils.getChildLayer(getRootLayer(), LayerUtils.SEARCH_DEEP, VectorDataLayerFilterFactory.createNodeFilter(vectorDataNode)); } else { return null; } }
@Override public void mouseReleased(MouseEvent event) { if (started) { ProductSceneView sceneView = getProductSceneView(event); if (sceneView != null) { sceneView.selectVectorDataLayer(getPlacemarkGroup(sceneView.getProduct()).getVectorDataNode()); if (isSingleButton1Click(event)) { insertPlacemark(sceneView); } stopInteraction(event); } } }