X-Git-Url: https://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Fundo%2FUndoMergeTrackSegments.java;fp=tim%2Fprune%2Fundo%2FUndoMergeTrackSegments.java;h=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hp=edd0aefa1be13a85521b76b02286278572f32eb4;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465;p=GpsPrune.git diff --git a/tim/prune/undo/UndoMergeTrackSegments.java b/tim/prune/undo/UndoMergeTrackSegments.java deleted file mode 100644 index edd0aef..0000000 --- a/tim/prune/undo/UndoMergeTrackSegments.java +++ /dev/null @@ -1,75 +0,0 @@ -package tim.prune.undo; - -import tim.prune.I18nManager; -import tim.prune.UpdateMessageBroker; -import tim.prune.data.DataPoint; -import tim.prune.data.Track; -import tim.prune.data.TrackInfo; - -/** - * Undo merging of track segments - */ -public class UndoMergeTrackSegments implements UndoOperation -{ - /** Start index */ - private int _startIndex; - /** array of segment flags */ - private boolean[] _segmentFlags = null; - /** Following point, if any */ - private DataPoint _nextTrackPoint = null; - /** Segment flag of next point */ - private boolean _nextSegmentFlag = false; - - - /** - * Constructor - * @param inTrack track object for copying segment flags - * @param inStart start index of section - * @param inEnd end index of section - */ - public UndoMergeTrackSegments(Track inTrack, int inStart, int inEnd) - { - _startIndex = inStart; - // Store booleans for all points within selection - int numPoints = inEnd - inStart + 1; - _segmentFlags = new boolean[numPoints]; - for (int i=inStart; i<=inEnd; i++) { - _segmentFlags[i-inStart] = inTrack.getPoint(i).getSegmentStart(); - } - // Look for following track point, store flag - _nextTrackPoint = inTrack.getNextTrackPoint(inEnd + 1); - if (_nextTrackPoint != null) { - _nextSegmentFlag = _nextTrackPoint.getSegmentStart(); - } - } - - - /** - * @return description of operation - */ - public String getDescription() - { - return I18nManager.getText("undo.mergetracksegments"); - } - - - /** - * Perform the undo operation on the given Track - * @param inTrackInfo TrackInfo object on which to perform the operation - */ - public void performUndo(TrackInfo inTrackInfo) throws UndoException - { - // Loop through points replacing segment start flags - for (int i=0; i<_segmentFlags.length; i++) { - DataPoint point = inTrackInfo.getTrack().getPoint(_startIndex + i); - if (!point.isWaypoint()) { - point.setSegmentStart(_segmentFlags[i]); - } - } - // Restore segment start flag for following point - if (_nextTrackPoint != null) { - _nextTrackPoint.setSegmentStart(_nextSegmentFlag); - } - UpdateMessageBroker.informSubscribers(); - } -}