import javax.swing.table.TableModel;
import tim.prune.App;
+import tim.prune.Config;
import tim.prune.I18nManager;
import tim.prune.UpdateMessageBroker;
import tim.prune.data.Altitude;
import tim.prune.data.FieldList;
import tim.prune.data.Timestamp;
import tim.prune.data.Track;
+import tim.prune.load.GenericFileFilter;
import tim.prune.load.OneCharDocument;
/**
private JRadioButton[] _timestampUnitsRadios = null;
private static final int[] FORMAT_COORDS = {Coordinate.FORMAT_NONE, Coordinate.FORMAT_DEG_MIN_SEC,
Coordinate.FORMAT_DEG_MIN, Coordinate.FORMAT_DEG};
- private static final int[] FORMAT_ALTS = {Altitude.FORMAT_NONE, Altitude.FORMAT_METRES, Altitude.FORMAT_FEET};
+ private static final Altitude.Format[] FORMAT_ALTS = {Altitude.Format.NO_FORMAT, Altitude.Format.METRES, Altitude.Format.FEET};
private static final int[] FORMAT_TIMES = {Timestamp.FORMAT_ORIGINAL, Timestamp.FORMAT_LOCALE, Timestamp.FORMAT_ISO_8601};
}
// Initialise dialog and show it
initDialog(_model, inDefaultDelimiter);
- _dialog.show();
+ _dialog.setVisible(true);
}
// header checkbox
firstCard.add(Box.createRigidArea(new Dimension(0,10)));
- _headerRowCheckbox = new JCheckBox(I18nManager.getText("dialog.save.headerrow"));
+ _headerRowCheckbox = new JCheckBox(I18nManager.getText("dialog.save.headerrow"), true);
firstCard.add(_headerRowCheckbox);
_cards.add(firstCard, "card1");
boolean saveOK = true;
FileWriter writer = null;
if (_fileChooser == null)
+ {
_fileChooser = new JFileChooser();
- _fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
+ _fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
+ _fileChooser.addChoosableFileFilter(new GenericFileFilter("filetype.txt", new String[] {"txt", "text"}));
+ _fileChooser.addChoosableFileFilter(new GenericFileFilter("filetype.gpx", new String[] {"gpx"}));
+ _fileChooser.addChoosableFileFilter(new GenericFileFilter("filetype.kml", new String[] {"kml"}));
+ _fileChooser.setAcceptAllFileFilterUsed(true);
+ // start from directory in config which should be set
+ File configDir = Config.getWorkingDirectory();
+ if (configDir != null) {_fileChooser.setCurrentDirectory(configDir);}
+ }
if (_fileChooser.showSaveDialog(_parentFrame) == JFileChooser.APPROVE_OPTION)
{
File saveFile = _fileChooser.getSelectedFile();
for (int i=0; i<_coordUnitsRadios.length; i++)
if (_coordUnitsRadios[i].isSelected())
coordFormat = FORMAT_COORDS[i];
- int altitudeFormat = Altitude.FORMAT_NONE;
+ Altitude.Format altitudeFormat = Altitude.Format.NO_FORMAT;
for (int i=0; i<_altitudeUnitsRadios.length; i++)
{
if (_altitudeUnitsRadios[i].isSelected())
{
try
{
- buffer.append(point.getAltitude().getValue(altitudeFormat));
+ buffer.append(point.getAltitude().getStringValue(altitudeFormat));
}
catch (NullPointerException npe) {}
}
writer.write(buffer.toString());
writer.write(lineSeparator);
}
+ // Store directory in config for later
+ Config.setWorkingDirectory(saveFile.getParentFile());
// Save successful
UpdateMessageBroker.informSubscribers(I18nManager.getText("confirm.save.ok1")
+ " " + numPoints + " " + I18nManager.getText("confirm.save.ok2")
catch (IOException ioe)
{
saveOK = false;
- JOptionPane.showMessageDialog(_parentFrame,
- I18nManager.getText("error.save.failed") + ioe.getMessage(),
- I18nManager.getText("error.save.dialogtitle"),
- JOptionPane.ERROR_MESSAGE);
+ _app.showErrorMessageNoLookup("error.save.dialogtitle",
+ I18nManager.getText("error.save.failed") + " : " + ioe.getMessage());
}
finally
{