package tim.prune.function.compress; import javax.swing.JOptionPane; import tim.prune.App; 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 if (_automaticallyDelete || answer == JOptionPane.YES_OPTION) { new Thread(new Runnable() { public void run() { _app.finishCompressTrack(); } }).start(); } } }