@Override public void undoableEditHappened(UndoableEditEvent e) { assert component != null; if (edit == null) { startNewEdit(component, e.getEdit()); processDocumentChange(component); return; } AbstractDocument.DefaultDocumentEvent event = (AbstractDocument.DefaultDocumentEvent) e.getEdit(); if (event.getType().equals(DocumentEvent.EventType.CHANGE)) { edit.addEdit(e.getEdit()); return; } int offsetChange = component.getCaretPosition() - lastOffset; int lengthChange = component.getDocument().getLength() - lastLength; if (Math.abs(offsetChange) == 1 && Math.abs(lengthChange) == 1) { lastOffset = component.getCaretPosition(); lastLength = component.getDocument().getLength(); super.undoableEditHappened(e); processDocumentChange(component); } else { // last change consists of multiple chars, start new compound edit startNewEdit(component, e.getEdit()); } }
@Override public String getRedoPresentationName() { // The following code does an original code of: return this.canRedo() ? super.getRedoPresentationName() : ""; if (canRedo()) { // UndoManager.getRedoPresentationName() follows UndoableEdit last = lastEdit(); if (last != null) { if (inProgress) { if (canRedo()) { return editToBeRedone().getRedoPresentationName(); } else { return UIManager.getString("AbstractUndoableEdit.redoText"); } } else { return super.getRedoPresentationName(); } } else { String name = getPresentationName(); if (!"".equals(name)) { name = UIManager.getString("AbstractUndoableEdit.redoText") + " " + name; } else { name = UIManager.getString("AbstractUndoableEdit.redoText"); } return name; } } else { return ""; } }
@Override public String getUndoPresentationName() { // The following code does an original code of: return this.canUndo() ? super.getUndoPresentationName() : ""; if (canUndo()) { // UndoManager.getUndoPresentationName() follows if (inProgress) { if (canUndo()) { return editToBeUndone().getUndoPresentationName(); } else { return UIManager.getString("AbstractUndoableEdit.undoText"); } } else { UndoableEdit last = lastEdit(); if (last != null) { return last.getUndoPresentationName(); } else { String name = getPresentationName(); if (!"".equals(name)) { name = UIManager.getString("AbstractUndoableEdit.undoText") + " " + name; } else { name = UIManager.getString("AbstractUndoableEdit.undoText"); } return name; } } } else { return ""; } }
undoManager.addEdit(new UndoableProductNodeInsertion<>(bandGroup, band));
getUndoRedo().undoableEditHappened( new UndoableEditEvent(this, new BeforeSaveEdit(lastSaveTime)));
getUndoRedo().undoableEditHappened( new UndoableEditEvent(this, new BeforeSaveEdit(lastSaveTime)));
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)); } }
getUndoRedo().undoableEditHappened( new UndoableEditEvent(this, new BeforeSaveEdit(lastSaveTime)));
getUndoRedo().undoableEditHappened( new UndoableEditEvent(this, new BeforeSaveEdit(lastSaveTime)));
return; undoRedoManager.discardAllEdits (); DocumentInterfaceImpl loadingDocumentInterface = new DocumentInterfaceImpl (context, undoRedoManager); documentInterfaces.add (new WeakReference<DocumentInterface> (loadingDocumentInterface));
@Override protected void onOK() { String uncertaintyExpression = targetExprArea.getText(); Product targetProduct = sourceBand.getProduct(); int width = sourceBand.getRasterWidth(); int height = sourceBand.getRasterHeight(); ProductNodeGroup<Band> bandGroup = targetProduct.getBandGroup(); VirtualBand uncertaintyBand = new VirtualBand(getBandName(), ProductData.TYPE_FLOAT32, width, height, uncertaintyExpression); uncertaintyBand.setDescription("Uncertainty propagated from band " + sourceBand.getName() + " = " + sourceBand.getExpression()); uncertaintyBand.setUnit(sourceBand.getUnit()); uncertaintyBand.setNoDataValue(Double.NaN); uncertaintyBand.setNoDataValueUsed(true); uncertaintyBand.setValidPixelExpression(sourceBand.getValidPixelExpression()); ProductUtils.copySpectralBandProperties(sourceBand, uncertaintyBand); bandGroup.add(uncertaintyBand); sourceBand.addAncillaryVariable(uncertaintyBand, relation); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(targetProduct); if (undoManager != null) { undoManager.addEdit(new UndoableProductNodeInsertion<>(bandGroup, uncertaintyBand)); } hide(); uncertaintyBand.setModified(true); if (SnapApp.getDefault().getPreferences().getBoolean(BandMathsDialog.PREF_KEY_AUTO_SHOW_NEW_BANDS, true)) { OpenImageViewAction.openImageView(uncertaintyBand); } }
/** Is called under getLock () to close the document. */ private boolean doCloseDocument() { boolean fireEvent = false; // notifies the support that cesEnv().removePropertyChangeListener(getListener()); try { LOCAL_CLOSE_DOCUMENT.set(Boolean.TRUE); callNotifyUnmodified(); } finally { LOCAL_CLOSE_DOCUMENT.set(Boolean.FALSE); } StyledDocument d = getDoc(); if (d != null) { d.removeUndoableEditListener(getUndoRedo()); addRemoveDocListener(d, false); } if (positionManager != null) { positionManager.documentClosed(); } documentStatus = DOCUMENT_NO; fireEvent = true; setDoc(null, false); kit = null; getUndoRedo().discardAllEdits(); updateLineSet(true); return fireEvent; }
boolean added = super.addEdit(wrapEdit); if (isAtSavepoint()) { checkLogOp("addEdit-atSavepoint", wrapEdit); // NOI18N
void copyActivePlacemark() { Guardian.assertNotNull("product", product); Placemark activePlacemark = getSelectedPlacemark(); Guardian.assertNotNull("activePlacemark", activePlacemark); Placemark newPlacemark = Placemark.createPointPlacemark(activePlacemark.getDescriptor(), "copy_of_" + activePlacemark.getName(), activePlacemark.getLabel(), activePlacemark.getDescription(), activePlacemark.getPixelPos(), activePlacemark.getGeoPos(), activePlacemark.getProduct().getSceneGeoCoding()); newPlacemark.setStyleCss(activePlacemark.getStyleCss()); if (PlacemarkDialog.showEditPlacemarkDialog( SwingUtilities.getWindowAncestor(this), product, newPlacemark, placemarkDescriptor)) { makePlacemarkNameUnique(newPlacemark); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(product); if (undoManager != null) { undoManager.addEdit(UndoablePlacemarkActionFactory.createUndoablePlacemarkCopying(product, newPlacemark, placemarkDescriptor)); } updateUIState(); } }
/** Is called under getLock () to close the document. */ private void doCloseDocument () { prepareTask = null; // notifies the support that env ().removePropertyChangeListener(getListener()); notifyUnmodified (); if (doc != null) { doc.removeUndoableEditListener (getUndoRedo ()); doc.removeDocumentListener(getListener()); } if (positionManager != null) { positionManager.documentClosed (); documentStatus = DOCUMENT_NO; fireDocumentChange(doc, true); } documentStatus = DOCUMENT_NO; doc = null; kit = null; getUndoRedo().discardAllEdits(); updateLineSet (true); }
void editActivePin() { Guardian.assertNotNull("product", product); Placemark activePlacemark = getSelectedPlacemark(); Placemark originalPlacemark = Placemark.createPointPlacemark(activePlacemark.getDescriptor(), activePlacemark.getName(), activePlacemark.getLabel(), activePlacemark.getDescription(), activePlacemark.getPixelPos(), activePlacemark.getGeoPos(), activePlacemark.getProduct().getSceneGeoCoding()); Guardian.assertNotNull("activePlacemark", activePlacemark); if (PlacemarkDialog.showEditPlacemarkDialog(SwingUtilities.getWindowAncestor(this), product, activePlacemark, placemarkDescriptor)) { makePlacemarkNameUnique(activePlacemark); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(product); if (undoManager != null) { undoManager.addEdit(UndoablePlacemarkActionFactory.createUndoablePlacemarkEditing(product, originalPlacemark, activePlacemark, placemarkDescriptor)); } updateUIState(); } }
/** Is called under getLock () to close the document. */ private void doCloseDocument () { prepareTask = null; // notifies the support that env ().removePropertyChangeListener(getListener()); notifyUnmodified (); if (doc != null) { doc.removeUndoableEditListener (getUndoRedo ()); doc.removeDocumentListener(getListener()); } if (positionManager != null) { positionManager.documentClosed (); documentStatus = DOCUMENT_NO; fireDocumentChange(doc, true); } documentStatus = DOCUMENT_NO; doc = null; kit = null; getUndoRedo().discardAllEdits(); updateLineSet (true); }
void newPin() { Guardian.assertNotNull("product", product); String[] uniquePinNameAndLabel = PlacemarkNameFactory.createUniqueNameAndLabel(placemarkDescriptor, product); Placemark newPlacemark = Placemark.createPointPlacemark(placemarkDescriptor, uniquePinNameAndLabel[0], uniquePinNameAndLabel[1], "", new PixelPos(0, 0), null, product.getSceneGeoCoding()); if (PlacemarkDialog.showEditPlacemarkDialog( SwingUtilities.getWindowAncestor(this), product, newPlacemark, placemarkDescriptor)) { makePlacemarkNameUnique(newPlacemark); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(product); if (undoManager != null) { undoManager.addEdit(UndoablePlacemarkActionFactory.createUndoablePlacemarkInsertion(product, newPlacemark, placemarkDescriptor)); } updateUIState(); } }
void removeSelectedPins() { final List<Placemark> placemarks = getSelectedPlacemarks(); for (Placemark placemark : placemarks) { getPlacemarkGroup(product).remove(placemark); } int selectedRow = placemarkTable.getSelectedRow(); if (selectedRow >= getPlacemarkGroup(product).getNodeCount()) { selectedRow = getPlacemarkGroup(product).getNodeCount() - 1; } if (selectedRow >= 0) { placemarkTable.getSelectionModel().setSelectionInterval(selectedRow, selectedRow); } UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(product); if (undoManager != null) { undoManager.addEdit(UndoablePlacemarkActionFactory.createUndoablePlacemarkRemoval(product, placemarks, placemarkDescriptor)); } updateUIState(); }
@Override protected Throwable doInBackground() throws Exception { try { GeoCoding geoCoding = product.getSceneGeoCoding(); if (geoCoding instanceof BasicPixelGeoCoding) { final BasicPixelGeoCoding pixelGeoCoding = (BasicPixelGeoCoding) geoCoding; final GeoCoding delegate = pixelGeoCoding.getPixelPosEstimator(); product.setSceneGeoCoding(delegate); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(product); if (undoManager != null) { undoManager.addEdit(new UndoableDetachGeoCoding<>(product, pixelGeoCoding)); } } } catch (Throwable e) { return e; } return null; }