import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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;
_dialog.pack();
}
// Initialise progress bars, buttons
+ enableCheckboxes();
enableOkButton();
setupProgressBar(true);
+ _trackNameField.requestFocus();
_dialog.setVisible(true);
}
}
gridPanel.setAlignmentX(Component.CENTER_ALIGNMENT);
gridPanel.setBorder(BorderFactory.createEmptyBorder(10, 5, 5, 20));
mainPanel.add(gridPanel);
+ // close dialog when escape pressed
+ KeyAdapter closer = new KeyAdapter() {
+ public void keyReleased(KeyEvent e)
+ {
+ // close dialog if escape pressed
+ if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
+ _dialog.dispose();
+ }
+ }
+ };
+ _deviceField.addKeyListener(closer);
+ _formatField.addKeyListener(closer);
+ _trackNameField.addKeyListener(closer);
// checkboxes
ChangeListener checkboxListener = new ChangeListener() {
_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
Process process = Runtime.getRuntime().exec(commands);
String trackName = _trackNameField.getText();
- if (trackName == null || trackName.equals("")) {trackName = "prune";}
+ if (trackName == null || trackName.equals("")) {trackName = "gpsprune";}
// Generate the GPX file and send to the GPS
OutputStreamWriter writer = new OutputStreamWriter(process.getOutputStream());
- boolean[] saveFlags = {true, true, true, false, true}; // export everything
- GpxExporter.exportData(writer, _app.getTrackInfo(), trackName, null, saveFlags, false);
+ SettingsForExport settings = new SettingsForExport();
+ settings.setExportMissingAltitudesAsZero(true);
+ GpxExporter.exportData(writer, _app.getTrackInfo(), trackName, null, settings, null);
writer.close();
// Read the error stream to see if there's a better error message there