Changeset 16585 in osm


Ignore:
Timestamp:
2009-07-19T18:52:06+02:00 (15 years ago)
Author:
jttt
Message:

Made plug-in work with JOSM new ProgressMonitor API

Location:
applications/editors/josm/plugins/globalsat
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/globalsat/build.xml

    r14015 r16585  
    3232                <attribute name="Plugin-Description" value="Download GPS points from Globalsat dg100 data logger directly in JOSM."/>
    3333                <attribute name="Plugin-Link" value="http://www.raphael-mack.de/josm-globalsat-gpx-import-plugin/"/>
    34                 <attribute name="Plugin-Mainversion" value="1465"/>
     34                <attribute name="Plugin-Mainversion" value="1813"/>
    3535                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    3636            </manifest>
  • applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatDg100.java

    r13497 r16585  
    66package org.openstreetmap.josm.plugins.globalsat;
    77
    8 import java.util.*;
    9 import java.util.logging.*;
    10 import java.io.FileOutputStream;
    11 import java.io.OutputStream;
     8import gnu.io.CommPortIdentifier;
     9import gnu.io.PortInUseException;
     10import gnu.io.SerialPort;
     11import gnu.io.UnsupportedCommOperationException;
     12
    1213import java.io.IOException;
    1314import java.io.InputStream;
     15import java.io.OutputStream;
    1416import java.nio.ByteBuffer;
    15 import java.lang.Exception;
    16 
    17 import gnu.io.*;
    18 
    19 import org.kaintoch.gps.globalsat.dg100.Response;
     17import java.util.ArrayList;
     18import java.util.Collection;
     19import java.util.List;
     20
     21import org.kaintoch.gps.globalsat.dg100.ByteHelper;
    2022import org.kaintoch.gps.globalsat.dg100.Dg100Config;
    2123import org.kaintoch.gps.globalsat.dg100.FileInfoRec;
    2224import org.kaintoch.gps.globalsat.dg100.GpsRec;
    23 import org.kaintoch.gps.globalsat.dg100.ByteHelper;
    24 
    25 import org.openstreetmap.josm.Main;
     25import org.kaintoch.gps.globalsat.dg100.Response;
     26import org.openstreetmap.josm.data.coor.LatLon;
    2627import org.openstreetmap.josm.data.gpx.GpxData;
    2728import org.openstreetmap.josm.data.gpx.GpxTrack;
    2829import org.openstreetmap.josm.data.gpx.WayPoint;
    29 import org.openstreetmap.josm.data.coor.LatLon;
     30import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    3031
    3132/**
     
    132133     * @param port DG-100 is connected to port.
    133134     */
    134     public GpxData readData() throws ConnectionException {
    135         GpxData result = null;
    136         int cnt = 0;
    137         cancelled = false;
    138         if(port == null){
    139             connect();
    140         }
    141         Main.pleaseWaitDlg.progress.setValue(0);
    142 
    143         List<FileInfoRec> fileInfoList = readFileInfoList();
    144         List<GpsRec> gpsRecList = readGpsRecList(fileInfoList);
    145 
    146         Main.pleaseWaitDlg.progress.setMaximum(gpsRecList.size());
    147         if(gpsRecList.size() > 0){
    148             GpsRec last = null;
    149             GpxTrack trk = new GpxTrack();
    150             Collection<WayPoint> seg = new ArrayList<WayPoint>(100);
    151             result = new GpxData();
    152             result.tracks.add(trk);
    153             trk.trackSegs.add(seg);
    154             for(GpsRec r:gpsRecList){
    155                 if(cancelled){
    156                     return result;
    157                 }
    158                 WayPoint p = wayPointFrom(r);
    159                 if(r.equals(last)){
    160                     result.waypoints.add(p);
    161                 }else{
    162                     seg.add(p);
    163                 }
    164                 last = r;
    165                 Main.pleaseWaitDlg.progress.setValue(cnt++);
    166             }
    167         }
    168         return result;
     135    public GpxData readData(ProgressMonitor progressMonitor) throws ConnectionException {
     136        progressMonitor.beginTask(null);
     137        try {
     138                GpxData result = null;
     139                cancelled = false;
     140                if(port == null){
     141                        connect();
     142                }
     143
     144                List<FileInfoRec> fileInfoList = readFileInfoList();
     145                List<GpsRec> gpsRecList = readGpsRecList(fileInfoList);
     146
     147                progressMonitor.setTicksCount(gpsRecList.size());
     148                if(gpsRecList.size() > 0){
     149                        GpsRec last = null;
     150                        GpxTrack trk = new GpxTrack();
     151                        Collection<WayPoint> seg = new ArrayList<WayPoint>(100);
     152                        result = new GpxData();
     153                        result.tracks.add(trk);
     154                        trk.trackSegs.add(seg);
     155                        for(GpsRec r:gpsRecList){
     156                                if(cancelled){
     157                                        return result;
     158                                }
     159                                WayPoint p = wayPointFrom(r);
     160                                if(r.equals(last)){
     161                                        result.waypoints.add(p);
     162                                }else{
     163                                        seg.add(p);
     164                                }
     165                                last = r;
     166                                progressMonitor.worked(1);
     167                        }
     168                }
     169                return result;
     170        } finally {
     171                progressMonitor.finishTask();
     172        }
    169173    }
    170174
  • applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatPlugin.java

    r13497 r16585  
    22/// @author Raphael Mack <ramack@raphael-mack.de>
    33import static org.openstreetmap.josm.tools.I18n.tr;
     4import gnu.io.CommPortIdentifier;
    45
    5 import java.io.IOException;
    6 import org.xml.sax.SAXException;
    7 
    8 import java.util.Enumeration;
    96import java.awt.event.ActionEvent;
    107import java.awt.event.KeyEvent;
     8import java.io.IOException;
     9import java.util.Enumeration;
    1110
    1211import javax.swing.JDialog;
    1312import javax.swing.JOptionPane;
    14 import javax.swing.JPanel;
    1513
    1614import org.openstreetmap.josm.Main;
    17 import org.openstreetmap.josm.gui.IconToggleButton;
    18 import org.openstreetmap.josm.gui.MapFrame;
    19 import org.openstreetmap.josm.gui.layer.Layer;
    20 import org.openstreetmap.josm.gui.layer.GpxLayer;
    21 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    22 import org.openstreetmap.josm.plugins.Plugin;
    2315import org.openstreetmap.josm.actions.JosmAction;
    2416import org.openstreetmap.josm.data.gpx.GpxData;
     17import org.openstreetmap.josm.gui.PleaseWaitRunnable;
     18import org.openstreetmap.josm.gui.layer.GpxLayer;
     19import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     20import org.openstreetmap.josm.plugins.Plugin;
    2521import org.openstreetmap.josm.tools.Shortcut;
    26 
    27 import gnu.io.*;
     22import org.xml.sax.SAXException;
    2823
    2924public class GlobalsatPlugin extends Plugin {
     
    5146
    5247        @Override public void realRun() throws IOException, SAXException {
    53             Main.pleaseWaitDlg.progress.setValue(0);
    54             Main.pleaseWaitDlg.currentAction.setText(tr("Importing data from DG100..."));
     48                progressMonitor.subTask(tr("Importing data from DG100..."));
    5549            try{
    56                 data = GlobalsatPlugin.dg100().readData();
     50                data = GlobalsatPlugin.dg100().readData(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, true));
    5751            }catch(Exception e){
    5852                eee = e;
Note: See TracChangeset for help on using the changeset viewer.