import tim.prune.I18nManager;
import tim.prune.UpdateMessageBroker;
import tim.prune.config.Config;
-import tim.prune.data.Altitude;
import tim.prune.data.Coordinate;
import tim.prune.data.DataPoint;
import tim.prune.data.Field;
import tim.prune.data.FieldList;
+import tim.prune.data.RecentFile;
import tim.prune.data.Timestamp;
import tim.prune.data.Track;
+import tim.prune.data.Unit;
+import tim.prune.data.UnitSetLibrary;
import tim.prune.load.GenericFileFilter;
import tim.prune.load.OneCharDocument;
private static final int[] FORMAT_COORDS = {Coordinate.FORMAT_NONE, Coordinate.FORMAT_DEG_MIN_SEC,
Coordinate.FORMAT_DEG_MIN, Coordinate.FORMAT_DEG};
- private static final Altitude.Format[] FORMAT_ALTS = {Altitude.Format.NO_FORMAT, Altitude.Format.METRES, Altitude.Format.FEET};
+ private static final Unit[] UNIT_ALTS = {null, UnitSetLibrary.UNITS_METRES, UnitSetLibrary.UNITS_FEET};
private static final int[] FORMAT_TIMES = {Timestamp.FORMAT_ORIGINAL, Timestamp.FORMAT_LOCALE, Timestamp.FORMAT_ISO_8601};
for (int i=0; i<_coordUnitsRadios.length; i++)
if (_coordUnitsRadios[i].isSelected())
coordFormat = FORMAT_COORDS[i];
- Altitude.Format altitudeFormat = Altitude.Format.NO_FORMAT;
+ Unit altitudeUnit = null;
for (int i=0; i<_altitudeUnitsRadios.length; i++)
{
if (_altitudeUnitsRadios[i].isSelected()) {
- altitudeFormat = FORMAT_ALTS[i];
+ altitudeUnit = UNIT_ALTS[i];
}
}
// Get timestamp format
if (!firstField) {
buffer.append(delimiter);
}
- saveField(buffer, point, info.getField(), coordFormat, altitudeFormat, timestampFormat);
+ saveField(buffer, point, info.getField(), coordFormat, altitudeUnit, timestampFormat);
firstField = false;
}
}
}
// Store directory in config for later
Config.setConfigString(Config.KEY_TRACK_DIR, saveFile.getParentFile().getAbsolutePath());
+ // Add to recent file list
+ Config.getRecentFileList().addFile(new RecentFile(inSaveFile, true));
// Save successful
+ UpdateMessageBroker.informSubscribers();
UpdateMessageBroker.informSubscribers(I18nManager.getText("confirm.save.ok1")
+ " " + numSaved + " " + I18nManager.getText("confirm.save.ok2")
+ " " + saveFile.getAbsolutePath());
* @param inPoint point object
* @param inField field object
* @param inCoordFormat coordinate format
- * @param inAltitudeFormat altitude format
+ * @param inAltitudeUnit altitude unit
* @param inTimestampFormat timestamp format
*/
private void saveField(StringBuffer inBuffer, DataPoint inPoint, Field inField,
- int inCoordFormat, Altitude.Format inAltitudeFormat, int inTimestampFormat)
+ int inCoordFormat, Unit inAltitudeUnit, int inTimestampFormat)
{
// Output field according to type
if (inField == Field.LATITUDE)
{
try
{
- inBuffer.append(inPoint.getAltitude().getStringValue(inAltitudeFormat));
+ inBuffer.append(inPoint.getAltitude().getStringValue(inAltitudeUnit));
}
catch (NullPointerException npe) {}
}
{
if (inTimestampFormat == Timestamp.FORMAT_ORIGINAL) {
// output original string
- inBuffer.append(inPoint.getFieldValue(Field.TIMESTAMP));
+ inBuffer.append(inPoint.getTimestamp().getText(Timestamp.FORMAT_ORIGINAL));
}
else {
// format value accordingly