@Override public int getRowCount() { return vectorDataNode.getPlacemarkGroup().getNodeCount(); }
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; }
static ArrayList<Point2D> createPointList(Product product, Random random) { ArrayList<Point2D> pointList = new ArrayList<Point2D>(); if (product.getPinGroup().getNodeCount() > 0) { final PlacemarkGroup pinGroup = product.getPinGroup(); for (int i = 0; i < pinGroup.getNodeCount(); i++) { pointList.add(pinGroup.get(i).getPixelPos()); } } else { for (int i = 0; i < 2; i++) { final int x = (int) (random.nextFloat() * product.getSceneRasterWidth()); final int y = (int) (random.nextFloat() * product.getSceneRasterHeight()); pointList.add(new Point(x, y)); } } return pointList; } }
@Override protected void updateEnableState(ProductSceneView view) { setEnabled(view.getProduct().getGcpGroup().getNodeCount() > 0); }
@Override protected void updateEnableState(ProductSceneView view) { setEnabled(view.getProduct().getPinGroup().getNodeCount() > 0); }
@Override public void productRemoved(ProductManager.Event event) { final Product product = event.getProduct(); if (getCurrentProduct() == product) { chartPanel.getChart().getXYPlot().setDataset(null); setCurrentView(null); setCurrentProduct(null); } if (productToAllSpectraMap.containsKey(product)) { productToAllSpectraMap.remove(product); } if (productToBandsMap.containsKey(product)) { productToBandsMap.remove(product); } PlacemarkGroup pinGroup = product.getPinGroup(); for (int i = 0; i < pinGroup.getNodeCount(); i++) { chartHandler.removePinInformation(pinGroup.get(i)); } } });
private void handlePlacemarkChanged() { final boolean placemarksSet = currentView.getProduct().getPinGroup().getNodeCount() > 0; graphForm.setExportEnabled(placemarksSet); updateTimeSeries(getTimeSeries()); } }
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 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]; }
private void handleGeoCodingChange() { for (int i = 0; i < pinGroup.getNodeCount(); i++) { final Placemark pin = pinGroup.get(i); final PlacemarkDescriptor pinDescriptor = pin.getDescriptor(); final PixelPos pixelPos = pin.getPixelPos(); GeoPos geoPos = pin.getGeoPos(); if (pixelPos != null) { geoPos = pinDescriptor.updateGeoPos(getGeoCoding(), pixelPos, geoPos); } pin.setGeoPos(geoPos); } }
private static void assertAreEqual(PlacemarkGroup group, FeatureCollection<SimpleFeatureType, SimpleFeature> collection) { final SimpleFeature[] features = collection.toArray(new SimpleFeature[collection.size()]); assertEquals(group.getNodeCount(), features.length); for (int i = 0; i < group.getNodeCount(); i++) { SimpleFeature pinGroupFeature = group.get(i).getFeature(); assertTrue("Feature of pin group is not contained in feature collection\n", collection.contains(pinGroupFeature)); } }
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(); } } } }
private void updateUIState() { boolean hasView = getCurrentView() != null; boolean hasProduct = getCurrentProduct() != null; boolean hasSelectedPins = hasView && getCurrentView().getSelectedPins().length > 0; boolean hasPins = hasProduct && getCurrentProduct().getPinGroup().getNodeCount() > 0; filterButton.setEnabled(hasProduct); showSpectrumForCursorButton.setEnabled(hasView); showSpectraForSelectedPinsButton.setEnabled(hasSelectedPins); showSpectraForAllPinsButton.setEnabled(hasPins); showGridButton.setEnabled(hasView); // todo - not yet implemented for 4.1 but planned for 4.2 (mp - 31.10.2007) // showAveragePinSpectrumButton.setEnabled(hasPins); // todo - hasSpectraGraphs // showGraphPointsButton.setEnabled(chartHandlerHasDiagram); chartPanel.setEnabled(hasProduct); // todo - hasSpectraGraphs showGridButton.setSelected(hasView); chartHandler.setGridVisible(showGridButton.isSelected()); }
@Test public void testAddingEmptyPinVectorDataNode() throws Exception { final Product p = new Product("n", "t", 1, 1); assertNotNull(p.getPinGroup()); final VectorDataNode node = p.getVectorDataGroup().get("pins"); // add empty "pins" VDN final VectorDataNode node2 = new VectorDataNode("pins", node.getFeatureType()); final boolean added = p.getVectorDataGroup().add(node2); assertFalse(added); assertSame(node, p.getVectorDataGroup().get("pins")); assertTrue(node.getFeatureCollection().isEmpty()); assertEquals(0, node.getPlacemarkGroup().getNodeCount()); assertTrue(node.isPermanent()); }
@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 testAddingEmptyGcpVectorDataNode() throws Exception { final Product p = new Product("n", "t", 1, 1); assertNotNull(p.getGcpGroup()); final VectorDataNode node = p.getVectorDataGroup().get("ground_control_points"); // add empty "GCP" VDN final VectorDataNode node2 = new VectorDataNode("ground_control_points", node.getFeatureType()); final boolean added = p.getVectorDataGroup().add(node2); assertFalse(added); assertSame(node, p.getVectorDataGroup().get("ground_control_points")); 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()); }
@Test public void testAddingNonEmptyGcpVectorDataNode() throws Exception { final Product p = new Product("n", "t", 1, 1); assertNotNull(p.getGcpGroup()); final VectorDataNode node = p.getVectorDataGroup().get("ground_control_points"); // add non-empty "pins" VDN final VectorDataNode node2 = new VectorDataNode("ground_control_points", node.getFeatureType()); node2.getFeatureCollection().add(new SimpleFeatureBuilder(node.getFeatureType()).buildFeature("id")); final boolean added3 = p.getVectorDataGroup().add(node2); assertFalse(added3); assertSame(node, p.getVectorDataGroup().get("ground_control_points")); assertFalse(node.getFeatureCollection().isEmpty()); assertEquals(1, node.getPlacemarkGroup().getNodeCount()); assertTrue(node.isPermanent()); } }
@Test public void testAddingNonEmptyPinVectorDataNode() throws Exception { final Product p = new Product("n", "t", 1, 1); assertNotNull(p.getPinGroup()); final VectorDataNode node = p.getVectorDataGroup().get("pins"); // add non-empty "pins" VDN final VectorDataNode node2 = new VectorDataNode("pins", node.getFeatureType()); node2.getFeatureCollection().add(new SimpleFeatureBuilder(node.getFeatureType()).buildFeature("id")); final boolean added3 = p.getVectorDataGroup().add(node2); assertFalse(added3); assertSame(node, p.getVectorDataGroup().get("pins")); assertFalse(node.getFeatureCollection().isEmpty()); assertEquals(1, node.getPlacemarkGroup().getNodeCount()); assertTrue(node.isPermanent()); }
@Test public void testVectorDataNodeAndPlacemarkGroup() { Product p = new Product("p", "pt", 512, 512); ProductNodeGroup<VectorDataNode> vectorDataGroup = p.getVectorDataGroup(); Placemark placemark = Placemark.createPointPlacemark(PointDescriptor.getInstance(), "placemark_1", null, null, new PixelPos(10, 10), null, null); VectorDataNode vectorDataNode = new VectorDataNode("Features", Placemark.createPointFeatureType("feature")); FeatureCollection<SimpleFeatureType, SimpleFeature> featureCollection = vectorDataNode.getFeatureCollection(); vectorDataGroup.add(vectorDataNode); //Also: Sets the owner of the vectorDataNode vectorDataNode.getPlacemarkGroup(); //Also: Creates the PlacemarkGroup (owner has to be set!) featureCollection.add(placemark.getFeature()); assertEquals(1, vectorDataNode.getFeatureCollection().size()); assertEquals(vectorDataNode.getFeatureCollection().size(), vectorDataNode.getPlacemarkGroup().getNodeCount()); }