+++ /dev/null
-package tim.prune.function.compress;
-
-import javax.swing.JOptionPane;
-
-import tim.prune.App;
-import tim.prune.FunctionLibrary;
-import tim.prune.GenericFunction;
-import tim.prune.I18nManager;
-
-/**
- * Superclass of those functions which mark points for deletion
- * (and optionally delete them automatically)
- */
-public abstract class MarkAndDeleteFunction extends GenericFunction
-{
- /** flag to remember whether the automatic deletion has been set to always */
- private boolean _automaticallyDelete = false;
-
-
- /**
- * Constructor
- * @param inApp App object
- */
- public MarkAndDeleteFunction(App inApp)
- {
- super(inApp);
- }
-
- /**
- * optionally delete the marked points
- */
- protected void optionallyDeleteMarkedPoints(int inNumMarked)
- {
- // Allow calling of delete function with one click
- final String[] buttonTexts = {I18nManager.getText("button.yes"), I18nManager.getText("button.no"),
- I18nManager.getText("button.always")};
- int answer = _automaticallyDelete ? JOptionPane.YES_OPTION :
- JOptionPane.showOptionDialog(_parentFrame,
- I18nManager.getTextWithNumber("dialog.compress.confirm", inNumMarked),
- I18nManager.getText(getNameKey()), JOptionPane.YES_NO_CANCEL_OPTION,
- JOptionPane.WARNING_MESSAGE, null, buttonTexts, buttonTexts[1]);
- if (answer == JOptionPane.CANCEL_OPTION) {_automaticallyDelete = true;} // "always" is third option
-
- // Make sure function knows what to do, whether we'll call it now or later
- FunctionLibrary.FUNCTION_DELETE_MARKED_POINTS.setParentFunction(
- getNameKey(), getShouldSplitSegments());
- if (_automaticallyDelete || answer == JOptionPane.YES_OPTION)
- {
- new Thread(new Runnable() {
- public void run()
- {
- FunctionLibrary.FUNCTION_DELETE_MARKED_POINTS.begin();
- }
- }).start();
- }
- }
-
- /** by default, segments are not split at deleted points */
- protected boolean getShouldSplitSegments() {
- return false;
- }
-}