--- /dev/null
+package tim.prune.function.compress;
+
+import tim.prune.App;
+import tim.prune.GenericFunction;
+import tim.prune.I18nManager;
+import tim.prune.undo.UndoDeleteMarked;
+
+/**
+ * Function to delete the marked points in the track
+ */
+public class DeleteMarkedPointsFunction extends GenericFunction
+{
+ private boolean _splitSegments = false;
+ private String _parentFunctionKey = null;
+
+ /** Constructor */
+ public DeleteMarkedPointsFunction(App inApp) {
+ super(inApp);
+ }
+
+ @Override
+ public String getNameKey() {
+ return "function.deletemarked";
+ }
+
+ /**
+ * Get notification about parent function
+ * @param inKey parent function name key
+ * @param inSplitSegments true to split segment, false to not
+ */
+ public void setParentFunction(String inKey, boolean inSplitSegments)
+ {
+ _parentFunctionKey = inKey;
+ _splitSegments = inSplitSegments;
+ }
+
+ @Override
+ public void begin()
+ {
+ UndoDeleteMarked undo = new UndoDeleteMarked(_app.getTrackInfo().getTrack());
+ // call track to do the actual delete//
+ int numPointsDeleted = _app.getTrackInfo().deleteMarkedPoints(_splitSegments);
+ // add to undo stack if successful
+ if (numPointsDeleted > 0)
+ {
+ undo.setNumPointsDeleted(numPointsDeleted);
+ _app.completeFunction(undo, "" + numPointsDeleted + " "
+ + (numPointsDeleted==1?I18nManager.getText("confirm.deletepoint.single"):I18nManager.getText("confirm.deletepoint.multi")));
+ }
+ else
+ {
+ final String titleKey = (_parentFunctionKey == null ? getNameKey() : _parentFunctionKey);
+ _app.showErrorMessage(titleKey, "dialog.deletemarked.nonefound");
+ }
+ }
+}