1 package tim.prune.undo;
\r
3 import tim.prune.I18nManager;
\r
4 import tim.prune.data.DataPoint;
\r
5 import tim.prune.data.TrackInfo;
\r
8 * Operation to undo an insertion (eg average)
\r
10 public class UndoInsert implements UndoOperation
\r
12 private int _startPosition = 0;
\r
13 private int _numInserted = 0;
\r
14 private boolean _hasSegmentFlag = false;
\r
15 private boolean _segmentFlag = false;
\r
19 * Constructor without segment flag
\r
20 * @param inStart start of insert
\r
21 * @param inNumInserted number of points inserted
\r
23 public UndoInsert(int inStart, int inNumInserted)
\r
25 this(inStart, inNumInserted, false, false);
\r
30 * Constructor with segment flag
\r
31 * @param inStart start of insert
\r
32 * @param inNumInserted number of points inserted
\r
33 * @param inSegmentFlag segment flag of following point
\r
35 public UndoInsert(int inStart, int inNumInserted, boolean inSegmentFlag)
\r
37 this(inStart, inNumInserted, true, inSegmentFlag);
\r
43 * @param inStart start of insert
\r
44 * @param inNumInserted number of points inserted
\r
45 * @param inHasFlag is there a segment flag present
\r
46 * @param inFlag segment flag, if any
\r
48 public UndoInsert(int inStart, int inNumInserted, boolean inHasFlag, boolean inFlag)
\r
50 _startPosition = inStart;
\r
51 _numInserted = inNumInserted;
\r
52 _hasSegmentFlag = inHasFlag;
\r
53 _segmentFlag = inFlag;
\r
58 * @return description of operation including parameters
\r
60 public String getDescription()
\r
62 return I18nManager.getText("undo.insert") + " (" + _numInserted + ")";
\r
67 * Perform the undo operation on the given TrackInfo
\r
68 * @param inTrackInfo TrackInfo object on which to perform the operation
\r
70 public void performUndo(TrackInfo inTrackInfo) throws UndoException
\r
72 // restore track to previous values
\r
73 inTrackInfo.getTrack().deleteRange(_startPosition, _startPosition + _numInserted - 1);
\r
74 if (_hasSegmentFlag) {
\r
75 DataPoint nextPoint = inTrackInfo.getTrack().getNextTrackPoint(_startPosition);
\r
76 if (nextPoint != null) {nextPoint.setSegmentStart(_segmentFlag);}
\r
79 inTrackInfo.getSelection().clearAll();
\r