@Override public void undo() { final PlacemarkGroup placemarkGroup = placemarkDescriptor.getPlacemarkGroup(product); for (Placemark placemark : placemarks) { placemarkGroup.add(placemark); } }
@Override public void redo() { placemarkDescriptor.getPlacemarkGroup(product).add(newPlacemark); }
@Override public void redo() { placemarkDescriptor.getPlacemarkGroup(product).add(newPlacemark); }
@Before public void setup() throws TransformException, FactoryException { final AffineTransform i2m = new AffineTransform(); i2m.scale(2.0, 2.0); final GeoCoding geoCoding = new CrsGeoCoding(DefaultGeographicCRS.WGS84, new Rectangle(0, 0, 10, 10), i2m); final Product product = new Product("P", "T", 10, 10); product.setSceneGeoCoding(geoCoding); placemark = Placemark.createPointPlacemark(PinDescriptor.getInstance(), "P1", "L", "", new PixelPos(1.0f, 1.0f), null, product.getSceneGeoCoding()); product.getPinGroup().add(placemark); }
public static void main(String[] args) throws TransformException, FactoryException { Product product1 = new Product("A", "B", 360, 180); product1.setSceneGeoCoding(new CrsGeoCoding(DefaultGeographicCRS.WGS84, 360, 180, -180.0, 90.0, 1.0, 1.0, 0.0, 0.0)); PinDescriptor descriptor = PinDescriptor.getInstance(); Placemark pin1 = Placemark.createPointPlacemark(descriptor, "pin_1", "Pin 1", "Schnatter!", new PixelPos(0, 0), new GeoPos(), product1.getSceneGeoCoding()); product1.getPinGroup().add(pin1); showEditPlacemarkDialog(null, product1, pin1, descriptor); } }
private void insertPlacemark(ProductSceneView view) { Product product = view.getProduct(); final String[] uniqueNameAndLabel = PlacemarkNameFactory.createUniqueNameAndLabel(placemarkDescriptor, product); final String name = uniqueNameAndLabel[0]; final String label = uniqueNameAndLabel[1]; PixelPos rasterPos = new PixelPos(view.getCurrentPixelX() + 0.5f, view.getCurrentPixelY() + 0.5f); Point2D modelPos = view.getRaster().getImageToModelTransform().transform(rasterPos, new Point2D.Double()); Point2D scenePos = new Point2D.Double(); try { view.getRaster().getModelToSceneTransform().transform(modelPos, scenePos); final AffineTransform sceneToImage = Product.findImageToModelTransform(product.getSceneGeoCoding()).createInverse(); rasterPos = (PixelPos) sceneToImage.transform(modelPos, new PixelPos()); } catch (TransformException | NoninvertibleTransformException e) { Dialogs.showError("Could not place pin in image due to transformation exception: " + e.getMessage()); return; } final Placemark newPlacemark = Placemark.createPointPlacemark(placemarkDescriptor, name, label, "", rasterPos, null, product.getSceneGeoCoding()); PlacemarkGroup placemarkGroup = placemarkDescriptor.getPlacemarkGroup(product); String defaultStyleCss = placemarkGroup.getVectorDataNode().getDefaultStyleCss(); if(newPlacemark.getStyleCss().isEmpty()) { newPlacemark.setStyleCss(defaultStyleCss); } placemarkGroup.add(newPlacemark); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(product); if (undoManager != null) { undoManager.addEdit(UndoablePlacemarkActionFactory.createUndoablePlacemarkInsertion(product, newPlacemark, placemarkDescriptor)); } }
if (!belongsToProduct) { placemarkDescriptor.getPlacemarkGroup(product).add(placemark);