private static int getValidGcpCount(PlacemarkGroup gcpGroup) { int count = 0; for (int i = 0; i < gcpGroup.getNodeCount(); i++) { final Placemark p = gcpGroup.get(i); if (isValid(p)) { count++; } } return count; }
@Override public void registerRelation(Placemark placemark, GeoPos insituGeopos) { pinRelationMap.put(placemark, insituGeopos); tsProduct.getPinGroup().add(placemark); }
private void generatePlacemarkForFeature(SimpleFeature feature) { final Placemark placemark = getPlacemarkGroup().getPlacemark(feature); if (placemark == null) { placemarkGroup.add(placemarkDescriptor.createPlacemark(feature)); } }
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; }
product.getGeoCoding()); product.getPinGroup().add(pin1); product.getPinGroup().add(pin2); product.getPinGroup().add(pin3); product.getGcpGroup().add(gcp1); product.getGcpGroup().add(gcp2); product.getGcpGroup().add(gcp3); assertEquals(3, product.getPinGroup().getNodeCount()); assertEquals(3, product.getGcpGroup().getNodeCount()); assertEquals(3, product2.getPinGroup().getNodeCount()); assertEquals(3, product2.getGcpGroup().getNodeCount()); assertEquals("P1", product2.getPinGroup().get(0).getName()); assertEquals("P2", product2.getPinGroup().get(1).getName()); assertEquals("P3", product2.getPinGroup().get(2).getName()); assertEquals("G1", product2.getGcpGroup().get(0).getName()); assertEquals("G2", product2.getGcpGroup().get(1).getName()); assertEquals("G3", product2.getGcpGroup().get(2).getName());
@Override public int getRowCount() { return vectorDataNode.getPlacemarkGroup().getNodeCount(); }
product.getGeoCoding()); assertEquals(0, product.getPinGroup().getNodeCount()); assertEquals(0, events.size()); assertEquals(0, eventTypes.size()); product.getPinGroup().add(placemark1); assertEquals(1, product.getPinGroup().getNodeCount()); assertEquals(1, events.size()); assertEquals(1, eventTypes.size()); assertEquals(1, product.getPinGroup().getNodeCount()); assertEquals(2, events.size()); assertEquals(2, eventTypes.size()); assertEquals(1, product.getPinGroup().getNodeCount()); assertEquals(4, events.size()); assertEquals(4, eventTypes.size()); assertEquals(1, product.getPinGroup().getNodeCount()); assertEquals(5, events.size()); assertEquals(5, eventTypes.size()); product.getPinGroup().remove(placemark1); assertEquals(0, product.getPinGroup().getNodeCount()); assertEquals(6, events.size()); assertEquals(6, eventTypes.size());
public Placemark[] getPinPositionsToDisplay() { if (pinSupport.isShowingAllPins()) { final PlacemarkGroup pinGroup = timeSeries.getTsProduct().getPinGroup(); return pinGroup.toArray(new Placemark[pinGroup.getNodeCount()]); } else if (pinSupport.isShowingSelectedPins()) { return pinSupport.getSelectedPins(); } return new Placemark[0]; }
@Test public void testChangingFeature() { placemarkGroup.add(createPlacemark("p1", new PixelPos(3, 1), new GeoPos(12, 34))); placemarkGroup.add(createPlacemark("p2", new PixelPos(5, 4), new GeoPos(16, 48))); placemarkGroup.add(createPlacemark("p3", new PixelPos(6, 2), new GeoPos(-45, 80))); assertAreEqual(placemarkGroup, pinFeatureCollection); final CoordinateArraySequence coordinates = new CoordinateArraySequence( new Coordinate[]{new Coordinate(-30, 70)}); final SimpleFeature changedFeature = placemarkGroup.get(2).getFeature(); changedFeature.setDefaultGeometry(new Point(coordinates, new GeometryFactory())); assertAreEqual(placemarkGroup, pinFeatureCollection); final SimpleFeature[] features = pinFeatureCollection.toArray(new SimpleFeature[pinFeatureCollection.size()]); assertEquals(changedFeature.getDefaultGeometry(), features[2].getDefaultGeometry()); }
@Test public void testManipulatingPinGroup() { assertAreEqual(placemarkGroup, pinFeatureCollection); placemarkGroup.add(createPlacemark("p1", new PixelPos(3, 1), new GeoPos(12, 34))); assertAreEqual(placemarkGroup, pinFeatureCollection); final Placemark placemark2 = createPlacemark("p2", new PixelPos(5, 4), new GeoPos(16, 48)); placemarkGroup.add(placemark2); assertAreEqual(placemarkGroup, pinFeatureCollection); placemarkGroup.add(createPlacemark("p3", new PixelPos(6, 2), new GeoPos(-45, 80))); assertAreEqual(placemarkGroup, pinFeatureCollection); placemarkGroup.remove(placemark2); assertAreEqual(placemarkGroup, pinFeatureCollection); placemarkGroup.add(1, createPlacemark("p4", new PixelPos(6, 3), new GeoPos(-60, 47))); assertAreEqual(placemarkGroup, pinFeatureCollection); }
@Override public Object getValueAt(int rowIndex, int columnIndex) { return vectorDataNode.getPlacemarkGroup().get(rowIndex).getFeature().getAttribute(columnIndex); } }
@Test public void testMaskIsRemovedWhenAllPinsAreRemoved() throws Exception { final Product p = new Product("P", "T", 1, 1); p.getPinGroup().add(Placemark.createPointPlacemark(PinDescriptor.getInstance(), "a", "a", "a", new PixelPos(), new GeoPos(), null)); p.getPinGroup().removeAll(); assertEquals(0, p.getMaskGroup().getNodeCount()); }
private Placemark[] getSelectedPlacemarks(PlacemarkGroup placemarkGroup) { Figure[] figures = figureEditor.getFigureSelection().getFigures(); ArrayList<Placemark> selectedPlacemarks = new ArrayList<Placemark>(figures.length); for (Figure figure : figures) { if (figure instanceof SimpleFeatureFigure) { SimpleFeatureFigure featureFigure = (SimpleFeatureFigure) figure; Placemark placemark = placemarkGroup.getPlacemark(featureFigure.getSimpleFeature()); if (placemark != null) { selectedPlacemarks.add(placemark); } } } return selectedPlacemarks.toArray(new Placemark[selectedPlacemarks.size()]); }
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; }
private void initPlacemarkList(Product product) { if (product != null) { Placemark[] placemarks = placemarkDescriptor.getPlacemarkGroup(product).toArray(new Placemark[0]); placemarkList.addAll(Arrays.asList(placemarks)); } }
@Override public void clearInsituPlacemarks() { final PlacemarkGroup pinGroup = tsProduct.getPinGroup(); for (Placemark insituPin : pinRelationMap.keySet()) { pinGroup.remove(insituPin); } pinRelationMap.clear(); }
@Override public void nodeChanged(ProductNodeEvent event) { // exclude geo-coding changes to prevent recursion if (Product.PROPERTY_NAME_GEOCODING.equals(event.getPropertyName())) { return; } final ProductNode sourceNode = event.getSourceNode(); if (sourceNode instanceof Placemark) { if (currentProduct.getGcpGroup().contains((Placemark) sourceNode)) { updateGcpGeoCoding(); } } }
product.getGeoCoding()); product.getPinGroup().add(pin1); product.getPinGroup().add(pin2); product.getPinGroup().add(pin3); product.getGcpGroup().add(gcp1); product.getGcpGroup().add(gcp2); product.getGcpGroup().add(gcp3); final Product product2 = ProductSubsetBuilder.createProductSubset(product, subsetDef, "subset", ""); assertEquals(1, product2.getPinGroup().getNodeCount()); assertEquals(2, product2.getGcpGroup().getNodeCount()); assertEquals("P2", product2.getPinGroup().get(0).getName()); assertEquals("G1", product2.getGcpGroup().get(0).getName()); assertEquals("G2", product2.getGcpGroup().get(1).getName());
@Override protected void updateEnableState(ProductSceneView view) { setEnabled(view.getProduct().getGcpGroup().getNodeCount() > 0); }
private void updateGcpGeoCoding() { final GeoCoding geoCoding = currentProduct.getGeoCoding(); if (geoCoding instanceof GcpGeoCoding) { final GcpGeoCoding gcpGeoCoding = ((GcpGeoCoding) geoCoding); final PlacemarkGroup gcpGroup = currentProduct.getGcpGroup(); final int gcpCount = gcpGroup.getNodeCount(); if (gcpCount < gcpGeoCoding.getMethod().getTermCountP()) { detachGeoCoding(currentProduct); } else { gcpGeoCoding.setGcps(gcpGroup.toArray(new Placemark[gcpCount])); currentProduct.fireProductNodeChanged(Product.PROPERTY_NAME_GEOCODING); updateUIState(); } } } }