public void write(VectorDataNode vectorDataNode, File file) throws IOException { FileWriter writer = new FileWriter(file); try { writeNodeProperties(vectorDataNode, writer); writeFeatures(vectorDataNode.getFeatureCollection(), writer); } finally { writer.close(); } }
private void addToVectorData(final Placemark placemark) { synchronized (vectorDataNode) { if (!vectorDataNode.getFeatureCollection().contains(placemark.getFeature())) { vectorDataNode.getFeatureCollection().add(placemark.getFeature()); } } }
private void removeFromVectorData(Placemark placemark) { synchronized (vectorDataNode) { vectorDataNode.getFeatureCollection().remove(placemark.getFeature()); } }
@Override public boolean add(VectorDataNode vectorDataNode) { Assert.notNull(vectorDataNode, "node"); VectorDataNode permanentNode = getPermanentNode(vectorDataNode.getName()); if (permanentNode != null) { permanentNode.getFeatureCollection().addAll(vectorDataNode.getFeatureCollection()); return false; } return super.add(vectorDataNode); }
@Override public void add(int index, VectorDataNode vectorDataNode) { Assert.notNull(vectorDataNode, "node"); VectorDataNode permanentNode = getPermanentNode(vectorDataNode.getName()); if (permanentNode != null) { permanentNode.getFeatureCollection().addAll(vectorDataNode.getFeatureCollection()); return; } super.add(index, vectorDataNode); }
private void setMaskRegionName(Mask selectedMask, VectorDataNode vectorDataNode) { FeatureIterator<SimpleFeature> features = vectorDataNode.getFeatureCollection().features(); mask2RegionName.put(selectedMask, Util.getFeatureName(features.next())); features.close(); }
private void handleVectorDataNodeAdded(ProductNodeEvent event) { final VectorDataNode sourceNode = (VectorDataNode) event.getSourceNode(); if (sourceNode.getFeatureCollection().size() > 0) { final Mask mask = getMask(sourceNode); if (mask == null) { addMask(sourceNode); } } }
@Override public void insertFigures(boolean performInsert, Figure... figures) { Debug.trace("VectorDataFigureEditor.insertFigures " + performInsert + ", " + figures.length); super.insertFigures(performInsert, figures); if (vectorDataNode != null) { vectorDataNode.getFeatureCollection().addAll(toSimpleFeatureList(figures)); } else { // warn } }
@Override public void deleteFigures(boolean performDelete, Figure... figures) { Debug.trace("VectorDataFigureEditor.deleteFigures " + performDelete + ", " + figures.length); super.deleteFigures(performDelete, figures); if (vectorDataNode != null) { vectorDataNode.getFeatureCollection().removeAll(toSimpleFeatureList(figures)); } else { // warn } }
@Test public void testCRS() throws Exception { InputStreamReader reader = new InputStreamReader(getClass().getResourceAsStream("input_with_only_one_point.csv")); final VectorDataNode dataNode = VectorDataNodeReader.read("blah", reader, createDummyProduct(), crsProvider, placemarkDescriptorProvider, DefaultGeographicCRS.WGS84, VectorDataNodeIO.DEFAULT_DELIMITER_CHAR, ProgressMonitor.NULL); FeatureCollection<SimpleFeatureType, SimpleFeature> fc = dataNode.getFeatureCollection(); SimpleFeatureType simpleFeatureType = fc.getSchema(); assertNotNull(simpleFeatureType); CoordinateReferenceSystem crs = simpleFeatureType.getCoordinateReferenceSystem(); assertNotNull(crs); }
private static void testVectorData(VectorDataNode vectorDataNode, String expectedName, SimpleFeatureType expectedType) { assertNotNull(vectorDataNode.getPlacemarkDescriptor()); assertEquals(expectedName, vectorDataNode.getName()); assertNotNull(vectorDataNode.getFeatureCollection()); assertSame(expectedType, vectorDataNode.getFeatureType()); assertSame(expectedType, vectorDataNode.getFeatureCollection().getSchema()); }
@Test public void testMaskIsRemovedWhenAllFeaturesAreRemoved() throws Exception { final Product p = new Product("P", "T", 1, 1); final SimpleFeatureType featureType = new GeometryDescriptor().getBaseFeatureType(); final VectorDataNode node = new VectorDataNode("V", featureType); p.getVectorDataGroup().add(node); node.getFeatureCollection().add(new SimpleFeatureBuilder(featureType).buildFeature("id1")); node.getFeatureCollection().add(new SimpleFeatureBuilder(featureType).buildFeature("id2")); node.getFeatureCollection().clear(); assertEquals(0, p.getMaskGroup().getNodeCount()); }
@Test public void testMaskIsNotAddedWhenFeatureIsAddedForTheSecondTime() throws Exception { final Product p = new Product("P", "T", 1, 1); final SimpleFeatureType featureType = new GeometryDescriptor().getBaseFeatureType(); final VectorDataNode node = new VectorDataNode("V", featureType); p.getVectorDataGroup().add(node); node.getFeatureCollection().add(new SimpleFeatureBuilder(featureType).buildFeature("id1")); node.getFeatureCollection().add(new SimpleFeatureBuilder(featureType).buildFeature("id2")); assertEquals(1, p.getMaskGroup().getNodeCount()); assertNotNull(p.getMaskGroup().get("V")); }
@Before() public void setup() { Product product = new Product("PinGroup Test", "TestType", 10, 10); VectorDataNode pinVectorDataNode = product.getVectorDataGroup().get("pins"); pinBuilder = new SimpleFeatureBuilder(pinVectorDataNode.getFeatureType()); placemarkGroup = pinVectorDataNode.getPlacemarkGroup(); pinFeatureCollection = pinVectorDataNode.getFeatureCollection(); }
@Test public void testMaskIsAddedWhenNonEmptyVdnIsAdded() throws Exception { final Product p = new Product("P", "T", 1, 1); final SimpleFeatureType featureType = new GeometryDescriptor().getBaseFeatureType(); final VectorDataNode node = new VectorDataNode("V", featureType); node.getFeatureCollection().add(new SimpleFeatureBuilder(featureType).buildFeature("id")); p.getVectorDataGroup().add(node); assertEquals(1, p.getMaskGroup().getNodeCount()); assertNotNull(p.getMaskGroup().get("V")); }
@Test public void testMaskIsAddedWhenFeatureIsAddedForTheFirstTime() throws Exception { final Product p = new Product("P", "T", 1, 1); final SimpleFeatureType featureType = new GeometryDescriptor().getBaseFeatureType(); final VectorDataNode node = new VectorDataNode("V", featureType); p.getVectorDataGroup().add(node); node.getFeatureCollection().add(new SimpleFeatureBuilder(featureType).buildFeature("id")); assertEquals(1, p.getMaskGroup().getNodeCount()); assertNotNull(p.getMaskGroup().get("V")); }
@Test public void testMaskIsRemovedWhenVdnIsRemoved() throws Exception { final Product p = new Product("P", "T", 1, 1); final SimpleFeatureType featureType = new GeometryDescriptor().getBaseFeatureType(); final VectorDataNode node = new VectorDataNode("V", featureType); p.getVectorDataGroup().add(node); node.getFeatureCollection().add(new SimpleFeatureBuilder(featureType).buildFeature("id1")); assertEquals(1, p.getMaskGroup().getNodeCount()); p.getVectorDataGroup().remove(node); assertEquals(0, p.getMaskGroup().getNodeCount()); } }
@Test public void imageIsUpdated() { assertTrue(0 == image.getImage(0).getData().getSample(0, 0, 0)); assertTrue(0 == image.getImage(0).getData().getSample(5, 5, 0)); pyramids.getFeatureCollection().add( createFeature("Cheops", new Rectangle2D.Double(2.0, 2.0, 7.0, 7.0))); assertTrue(0 == image.getImage(0).getData().getSample(0, 0, 0)); assertTrue(0 != image.getImage(0).getData().getSample(5, 5, 0)); }
@Test public void testInitialPinVectorDataNodeState() throws Exception { final Product p = new Product("n", "t", 1, 1); assertNotNull(p.getPinGroup()); final VectorDataNode node = p.getVectorDataGroup().get("pins"); assertNotNull(node); assertTrue(node.getPlacemarkDescriptor() instanceof PinDescriptor); assertSame(p.getPinGroup(), p.getPinGroup()); assertSame(p.getPinGroup(), node.getPlacemarkGroup()); assertTrue(node.getFeatureCollection().isEmpty()); assertEquals(0, node.getPlacemarkGroup().getNodeCount()); assertTrue(node.isPermanent()); }
@Test public void testInitialGcpVectorDataNodeState() throws Exception { final Product p = new Product("n", "t", 1, 1); assertNotNull(p.getGcpGroup()); final VectorDataNode node = p.getVectorDataGroup().get("ground_control_points"); assertNotNull(node); assertTrue(node.getPlacemarkDescriptor() instanceof GcpDescriptor); assertSame(p.getGcpGroup(), p.getGcpGroup()); assertSame(p.getGcpGroup(), node.getPlacemarkGroup()); assertTrue(node.getFeatureCollection().isEmpty()); assertEquals(0, node.getPlacemarkGroup().getNodeCount()); assertTrue(node.isPermanent()); }