X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fsave%2FGpsSaver.java;fp=tim%2Fprune%2Fsave%2FGpsSaver.java;h=3fa66c3096146e7fb57389e6816749e61eead45c;hp=672234fab4896b27e960189267631b6bda3e177b;hb=c055cf54834e2e5c32276b5b354e777ee8a828c1;hpb=6f96fb8a39cd8dadff3602eec8a26ed2a7d1fca8 diff --git a/tim/prune/save/GpsSaver.java b/tim/prune/save/GpsSaver.java index 672234f..3fa66c3 100644 --- a/tim/prune/save/GpsSaver.java +++ b/tim/prune/save/GpsSaver.java @@ -42,6 +42,7 @@ public class GpsSaver extends GenericFunction implements Runnable private JTextField _deviceField = null, _formatField = null; private JTextField _trackNameField = null; private JCheckBox _waypointCheckbox = null, _trackCheckbox = null; + private boolean _switchedWaypointsOff = false, _switchedTrackpointsOff = false; private JButton _okButton = null; private JProgressBar _progressBar = null; private boolean _cancelled = false; @@ -84,8 +85,10 @@ public class GpsSaver extends GenericFunction implements Runnable _dialog.pack(); } // Initialise progress bars, buttons + enableCheckboxes(); enableOkButton(); setupProgressBar(true); + _trackNameField.requestFocus(); _dialog.setVisible(true); } } @@ -197,6 +200,42 @@ public class GpsSaver extends GenericFunction implements Runnable _progressBar.setValue(0); } + /** + * Enable or disable the waypoints and trackpoints checkboxes + */ + private void enableCheckboxes() + { + // Enable or disable waypoints checkbox depending on whether data is available + if (_waypointCheckbox.isSelected()) + { + if (!_app.getTrackInfo().getTrack().hasWaypoints()) + { + _waypointCheckbox.setSelected(false); + _switchedWaypointsOff = true; + } + else _switchedWaypointsOff = false; + } + else if (_app.getTrackInfo().getTrack().hasWaypoints() && _switchedWaypointsOff) + { + _waypointCheckbox.setSelected(true); + _switchedWaypointsOff = false; + } + // ... and the same for track points + if (_trackCheckbox.isSelected()) + { + if (!_app.getTrackInfo().getTrack().hasTrackPoints()) + { + _trackCheckbox.setSelected(false); + _switchedTrackpointsOff = true; + } + else _switchedTrackpointsOff = false; + } + else if (_app.getTrackInfo().getTrack().hasTrackPoints() && _switchedTrackpointsOff) + { + _trackCheckbox.setSelected(true); + _switchedTrackpointsOff = false; + } + } /** * Enable or disable the ok button