private ProductNodeGroup<Placemark> getPlacemarkGroup(Product product) { return placemarkDescriptor.getPlacemarkGroup(product); }
private Cursor createCursor() { final Image cursorImage = placemarkDescriptor.getCursorImage(); if (cursorImage == null) { return Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR); } return Toolkit.getDefaultToolkit().createCustomCursor(cursorImage, placemarkDescriptor.getCursorHotSpot(), placemarkDescriptor.getRoleName()); }
@Override public String getPresentationName() { return "Editing " + placemarkDescriptor.getRoleLabel(); }
boolean belongsToProduct = placemark.getProduct() != null; String titlePrefix = belongsToProduct ? "Edit" : "New"; String roleLabel = StringUtils.firstLetterUp(placemarkDescriptor.getRoleLabel()); if (!belongsToProduct) { placemarkDescriptor.getPlacemarkGroup(product).add(placemark);
placemarkDescriptor.updatePixelPos(geoCoding, placemark.getGeoPos(), pixelPos); Dialogs.showWarning(MessageFormat.format( "One or more {0}s have not been imported,\n{1}because they can not be assigned to a product without a geo-coding.", placemarkDescriptor.getRoleLabel(), intoProductMessage)); placemarkDescriptor.getRoleLabel(), intoProductMessage)); MessageFormat.format( "No {0}s have been imported,\n{1}because their pixel positions\nare outside the product''s bounds.", placemarkDescriptor.getRoleLabel(), intoProductMessage) ); } else { MessageFormat.format( "{0} {1}s have not been imported,\n{2}because their pixel positions\nare outside the product''s bounds.", numPinsOutOfBounds, placemarkDescriptor.getRoleLabel(), intoProductMessage) );
void exportPlacemarks() { final SnapFileChooser fileChooser = new SnapFileChooser(); fileChooser.setDialogTitle(MessageFormat.format("Export {0}(s)", StringUtils.firstLetterUp(placemarkDescriptor.getRoleLabel()))); setComponentName(fileChooser, "Export_Selected"); fileChooser.addChoosableFileFilter(PlacemarkIO.createTextFileFilter()); final File ioDir = getIODir(); fileChooser.setCurrentDirectory(ioDir); fileChooser.setSelectedFile(new File(ioDir, placemarkDescriptor.getRoleName())); int result = fileChooser.showSaveDialog(SwingUtilities.getWindowAncestor(this)); if (result == JFileChooser.APPROVE_OPTION) { placemarkDescriptor.getRoleLabel(), ioe.getMessage())); ioe.printStackTrace();
final SimpleFeatureType placemarkFT = placemarkDescriptor.getBaseFeatureType(); SimpleFeatureBuilder fb = new SimpleFeatureBuilder(placemarkFT); AttributeType at = new AttributeTypeImpl(new NameImpl("label"), String.class, f.getUserData().put("originalAttributes", attributeValues); f.setAttribute(Placemark.PROPERTY_NAME_DATETIME, coordinate.getDateTime()); final Placemark placemark = placemarkDescriptor.createPlacemark(f); placemark.setGeoPos(new GeoPos(coordinate.getLat(), coordinate.getLon())); placemark.setName(coordinate.getName());
private void updatePixelPos() { if (canGetPixelPos && !adjusting) { adjusting = true; PixelPos pixelPos = placemarkDescriptor.updatePixelPos(product.getSceneGeoCoding(), getGeoPos(), getPixelPos()); setPixelPos(pixelPos); adjusting = false; } }
private void updateGeoPos() { if (canGetGeoPos && !adjusting) { adjusting = true; GeoPos geoPos = placemarkDescriptor.updateGeoPos(product.getSceneGeoCoding(), getPixelPos(), getGeoPos()); setGeoPos(geoPos); adjusting = false; } }
@Override public void actionPerformed(ActionEvent ae) { final File file = Dialogs.requestFileForOpen(Bundle.CTL_ImportSeadasTrackActionName(), false, null, "importTrack.lastDir"); if (file == null) { return; } final Product product = SnapApp.getDefault().getSelectedProduct(AUTO); FeatureCollection<SimpleFeatureType, SimpleFeature> featureCollection; try { featureCollection = readTrack(file, product.getSceneGeoCoding()); } catch (IOException e) { Dialogs.showError(Bundle.CTL_ImportSeadasTrackActionName(), "Failed to load track file:\n" + e.getMessage()); return; } if (featureCollection.isEmpty()) { Dialogs.showError(Bundle.CTL_ImportSeadasTrackActionName(), "No records found."); return; } String name = FileUtils.getFilenameWithoutExtension(file); final PlacemarkDescriptor placemarkDescriptor = PlacemarkDescriptorRegistry.getInstance().getPlacemarkDescriptor(featureCollection.getSchema()); placemarkDescriptor.setUserDataOf(featureCollection.getSchema()); VectorDataNode vectorDataNode = new VectorDataNode(name, featureCollection, placemarkDescriptor); product.getVectorDataGroup().add(vectorDataNode); final ProductSceneView view = SnapApp.getDefault().getSelectedProductSceneView(); if (view != null) { view.setLayersVisible(vectorDataNode); } }
@Override public void redo() { final PlacemarkGroup placemarkGroup = placemarkDescriptor.getPlacemarkGroup(product); for (Placemark placemark : placemarks) { placemarkGroup.remove(placemark); } }
@Override public String getPresentationName() { return "Copying " + placemarkDescriptor.getRoleLabel(); }
@Override public void undo() { final PlacemarkGroup placemarkGroup = placemarkDescriptor.getPlacemarkGroup(product); for (Placemark placemark : placemarks) { placemarkGroup.add(placemark); } }
@Override public String getPresentationName() { return "Removing " + placemarkDescriptor.getRoleLabel(); }
private void initPlacemarkList(Product product) { if (product != null) { Placemark[] placemarks = placemarkDescriptor.getPlacemarkGroup(product).toArray(new Placemark[0]); placemarkList.addAll(Arrays.asList(placemarks)); } }
@Override public String getPresentationName() { return "Insert " + placemarkDescriptor.getRoleLabel(); }
@Override public void redo() { placemarkDescriptor.getPlacemarkGroup(product).add(newPlacemark); }
@Override public int compare(PlacemarkDescriptor o1, PlacemarkDescriptor o2) { return o1.getRoleLabel().compareTo(o2.getRoleLabel()); } });
@Override public void undo() { placemarkDescriptor.getPlacemarkGroup(product).remove(newPlacemark); }
private void makePlacemarkNameUnique(Placemark newPlacemark) { if (makePlacemarkNameUnique0(newPlacemark, product)) { Dialogs.showWarning(MessageFormat.format("{0} has been renamed to ''{1}'',\n" + "because a {2} with the former name already exists.", StringUtils.firstLetterUp(placemarkDescriptor.getRoleLabel()), newPlacemark.getName(), placemarkDescriptor.getRoleLabel())); } }