X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fsave%2FKmlExporter.java;h=67ad261f62a5883583c2697ba4937dee7746aabf;hp=82b4f1c12ca7cc7f679f8896bbe86555142137a0;hb=54b9d8bc8f0025ccf97a67d9dd217ef1f9cf082f;hpb=52bf9e8686c916be37a26a0b75340393d4478b05 diff --git a/tim/prune/save/KmlExporter.java b/tim/prune/save/KmlExporter.java index 82b4f1c..67ad261 100644 --- a/tim/prune/save/KmlExporter.java +++ b/tim/prune/save/KmlExporter.java @@ -25,7 +25,6 @@ import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JFileChooser; -import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; @@ -33,7 +32,9 @@ import javax.swing.JProgressBar; import javax.swing.JTextField; import javax.swing.SwingConstants; +import tim.prune.App; import tim.prune.Config; +import tim.prune.GenericFunction; import tim.prune.I18nManager; import tim.prune.UpdateMessageBroker; import tim.prune.data.Altitude; @@ -49,9 +50,8 @@ import tim.prune.load.GenericFileFilter; * Class to export track information * into a specified Kml file */ -public class KmlExporter implements Runnable +public class KmlExporter extends GenericFunction implements Runnable { - private JFrame _parentFrame = null; private TrackInfo _trackInfo = null; private Track _track = null; private JDialog _dialog = null; @@ -71,27 +71,30 @@ public class KmlExporter implements Runnable /** - * Constructor giving frame and track - * @param inParentFrame parent frame - * @param inTrackInfo track info object to save + * Constructor + * @param inApp app object */ - public KmlExporter(JFrame inParentFrame, TrackInfo inTrackInfo) + public KmlExporter(App inApp) { - _parentFrame = inParentFrame; - _trackInfo = inTrackInfo; - _track = inTrackInfo.getTrack(); + super(inApp); + _trackInfo = inApp.getTrackInfo(); + _track = _trackInfo.getTrack(); } + /** Get name key */ + public String getNameKey() { + return "function.exportkml"; + } /** * Show the dialog to select options and export file */ - public void showDialog() + public void begin() { // Make dialog window including whether to compress to kmz (and include pictures) or not if (_dialog == null) { - _dialog = new JDialog(_parentFrame, I18nManager.getText("dialog.exportkml.title"), true); + _dialog = new JDialog(_parentFrame, I18nManager.getText(getNameKey()), true); _dialog.setLocationRelativeTo(_parentFrame); _dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); _dialog.getContentPane().add(makeDialogComponents()); @@ -99,7 +102,7 @@ public class KmlExporter implements Runnable } enableCheckboxes(); _progressBar.setVisible(false); - _dialog.show(); + _dialog.setVisible(true); } @@ -435,12 +438,12 @@ public class KmlExporter implements Runnable inWriter.write("\t\t\tabsolute\n"); } inWriter.write("\t\t\t"); - inWriter.write(inPoint.getLongitude().output(Coordinate.FORMAT_DEG_WITHOUT_CARDINAL)); + inWriter.write(inPoint.getLongitude().output(Coordinate.FORMAT_DECIMAL_FORCE_POINT)); inWriter.write(','); - inWriter.write(inPoint.getLatitude().output(Coordinate.FORMAT_DEG_WITHOUT_CARDINAL)); + inWriter.write(inPoint.getLatitude().output(Coordinate.FORMAT_DECIMAL_FORCE_POINT)); inWriter.write(","); if (inExportAltitude && inPoint.hasAltitude()) { - inWriter.write("" + inPoint.getAltitude().getStringValue(Altitude.FORMAT_METRES)); + inWriter.write("" + inPoint.getAltitude().getStringValue(Altitude.Format.METRES)); } else { inWriter.write("0"); @@ -481,12 +484,12 @@ public class KmlExporter implements Runnable inWriter.write("\t\t\tabsolute\n"); } inWriter.write("\t\t\t"); - inWriter.write(inPoint.getLongitude().output(Coordinate.FORMAT_DEG_WITHOUT_CARDINAL)); + inWriter.write(inPoint.getLongitude().output(Coordinate.FORMAT_DECIMAL_FORCE_POINT)); inWriter.write(','); - inWriter.write(inPoint.getLatitude().output(Coordinate.FORMAT_DEG_WITHOUT_CARDINAL)); + inWriter.write(inPoint.getLatitude().output(Coordinate.FORMAT_DECIMAL_FORCE_POINT)); inWriter.write(","); if (inExportAltitude && inPoint.hasAltitude()) { - inWriter.write("" + inPoint.getAltitude().getStringValue(Altitude.FORMAT_METRES)); + inWriter.write("" + inPoint.getAltitude().getStringValue(Altitude.Format.METRES)); } else { inWriter.write("0"); @@ -503,13 +506,13 @@ public class KmlExporter implements Runnable */ private void exportTrackpoint(DataPoint inPoint, Writer inWriter, boolean inExportAltitude) throws IOException { - inWriter.write(inPoint.getLongitude().output(Coordinate.FORMAT_DEG_WITHOUT_CARDINAL)); + inWriter.write(inPoint.getLongitude().output(Coordinate.FORMAT_DECIMAL_FORCE_POINT)); inWriter.write(','); - inWriter.write(inPoint.getLatitude().output(Coordinate.FORMAT_DEG_WITHOUT_CARDINAL)); + inWriter.write(inPoint.getLatitude().output(Coordinate.FORMAT_DECIMAL_FORCE_POINT)); // Altitude either absolute or locked to ground by Google Earth inWriter.write(","); if (inExportAltitude && inPoint.hasAltitude()) { - inWriter.write("" + inPoint.getAltitude().getStringValue(Altitude.FORMAT_METRES)); + inWriter.write("" + inPoint.getAltitude().getStringValue(Altitude.Format.METRES)); } else { inWriter.write("0"); @@ -525,12 +528,12 @@ public class KmlExporter implements Runnable private void exportThumbnails(ZipOutputStream inZipStream) throws IOException { // set up image writer - Iterator writers = ImageIO.getImageWritersByFormatName("jpg"); + Iterator writers = ImageIO.getImageWritersByFormatName("jpg"); if (writers == null || !writers.hasNext()) { throw new IOException("no JPEG writer found"); } - ImageWriter imageWriter = (ImageWriter) writers.next(); + ImageWriter imageWriter = writers.next(); int numPoints = _track.getNumPoints(); DataPoint point = null;