[josm-plugins] 238/369: Imported Upstream version 0.0.svn25845

Bas Couwenberg sebastic at xs4all.nl
Sat Oct 18 12:03:47 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch master
in repository josm-plugins.

commit 514e7c5f40475ef3cc5f1500c024cd2eb890bf49
Author: David Paleino <dapal at debian.org>
Date:   Fri Apr 15 11:41:53 2011 +0200

    Imported Upstream version 0.0.svn25845
---
 livegps/src/livegps/ILiveGpsSuppressor.java        |  20 ---
 livegps/src/livegps/LiveGpsAcquirer.java           |  74 +++++-----
 livegps/src/livegps/LiveGpsLayer.java              | 115 ++++++++++-----
 livegps/src/livegps/LiveGpsPlugin.java             | 162 +++++++++------------
 livegps/src/livegps/LiveGpsSuppressor.java         | 136 -----------------
 .../josm/plugin/routing/gui/RoutingDialog.java     |  18 +--
 .../josm/plugin/routing/gui/RoutingMenu.java       |   2 +-
 svn-info.xml                                       |   6 +-
 8 files changed, 190 insertions(+), 343 deletions(-)

diff --git a/livegps/src/livegps/ILiveGpsSuppressor.java b/livegps/src/livegps/ILiveGpsSuppressor.java
deleted file mode 100644
index 04aeb96..0000000
--- a/livegps/src/livegps/ILiveGpsSuppressor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package livegps;
-
-/**
- * Interface for class LiveGpsSuppressor, only has a query if currently an update is allowed.
- *
- * @author casualwalker
- *
- */
-public interface ILiveGpsSuppressor {
-
-    /**
-     * Query, if an update is currently allowed.
-     * When it is allowed, it will disable the allowUpdate flag as a side effect.
-     * (this means, one thread got to issue an update event)
-     *
-     * @return true, if an update is currently allowed; false, if the update shall be suppressed.
-     */
-    boolean isAllowUpdate();
-
-}
diff --git a/livegps/src/livegps/LiveGpsAcquirer.java b/livegps/src/livegps/LiveGpsAcquirer.java
index 10684c7..2c13349 100644
--- a/livegps/src/livegps/LiveGpsAcquirer.java
+++ b/livegps/src/livegps/LiveGpsAcquirer.java
@@ -21,6 +21,10 @@ import org.json.JSONObject;
 import org.json.JSONException;
 
 public class LiveGpsAcquirer implements Runnable {
+    private static final String DEFAULT_HOST = "localhost";
+    private static final int DEFAULT_PORT = 2947;
+    private static final String C_HOST = "livegps.gpsd.host";
+    private static final String C_PORT = "livegps.gpsd.port";
     private String gpsdHost;
     private int gpsdPort;
 
@@ -40,11 +44,11 @@ public class LiveGpsAcquirer implements Runnable {
     public LiveGpsAcquirer() {
         super();
 
-        gpsdHost = Main.pref.get("livegps.gpsd.host", "localhost");
-        gpsdPort = Main.pref.getInteger("livegps.gpsd.port", 2947);
+        gpsdHost = Main.pref.get(C_HOST, DEFAULT_HOST);
+        gpsdPort = Main.pref.getInteger(C_PORT, DEFAULT_PORT);
         // put the settings back in to the preferences, makes keys appear.
-        Main.pref.put("livegps.gpsd.host", gpsdHost);
-        Main.pref.putInteger("livegps.gpsd.port", gpsdPort);
+        Main.pref.put(C_HOST, gpsdHost);
+        Main.pref.putInteger(C_PORT, gpsdPort);
     }
 
     /**
@@ -120,11 +124,20 @@ public class LiveGpsAcquirer implements Runnable {
         shutdownFlag = false;
         while (!shutdownFlag) {
 
-            try {
-                if (!connected)
+	    while (!connected) {
+		try {
                     connect();
+		} catch (IOException iox) {
+		    fireGpsStatusChangeEvent( LiveGpsStatus.GpsStatus.CONNECTION_FAILED, tr("Connection Failed"));
+                    try {
+                        Thread.sleep(1000);
+                    } catch (InterruptedException ignore) {}
+		};
+	    }
+
+	    assert (connected);
 
-                if (connected) {
+	    try {
                     String line;
 
                     // <FIXXME date="23.06.2007" author="cdaller">
@@ -133,7 +146,7 @@ public class LiveGpsAcquirer implements Runnable {
                     line = gpsdReader.readLine();
                     // </FIXXME>
                     if (line == null)
-                        break;
+                        throw new IOException();
 
                     if (JSONProtocol == true)
                         gpsData = ParseJSON(line);
@@ -145,21 +158,12 @@ public class LiveGpsAcquirer implements Runnable {
 
                     fireGpsDataChangeEvent(oldGpsData, gpsData);
                     oldGpsData = gpsData;
-                } else {
-                    fireGpsStatusChangeEvent(LiveGpsStatus.GpsStatus.DISCONNECTED, tr("Not connected"));
-                    try {
-                        Thread.sleep(1000);
-                    } catch (InterruptedException ignore) {}
-                }
             } catch (IOException iox) {
-                connected = false;
-                if (gpsData != null) {
-                    gpsData.setFix(false);
-                    fireGpsDataChangeEvent(oldGpsData, gpsData);
-                }
+                System.out.println("LiveGps: lost connection to gpsd");
                 fireGpsStatusChangeEvent(
                         LiveGpsStatus.GpsStatus.CONNECTION_FAILED,
                         tr("Connection Failed"));
+		disconnect();
                 try {
                     Thread.sleep(1000);
                 } catch (InterruptedException ignore) {} ;
@@ -167,17 +171,10 @@ public class LiveGpsAcquirer implements Runnable {
             }
         }
 
+	System.out.println("LiveGps: Disconnected from gpsd");
         fireGpsStatusChangeEvent(LiveGpsStatus.GpsStatus.DISCONNECTED,
                 tr("Not connected"));
-        if (gpsdSocket != null) {
-            try {
-                gpsdSocket.close();
-                gpsdSocket = null;
-                System.out.println("LiveGps: Disconnected from gpsd");
-            } catch (Exception e) {
-                System.out.println("LiveGps: Unable to close socket; reconnection may not be possible");
-            }
-        }
+	disconnect();
     }
 
     public void shutdown() {
@@ -196,16 +193,14 @@ public class LiveGpsAcquirer implements Runnable {
             try {
                 gpsdSocket = new Socket(addrs[i], gpsdPort);
                 break;
-            } catch (Exception e) {
+            } catch (IOException e) {
                 System.out.println("LiveGps: Could not open connection to gpsd: " + e);
                 gpsdSocket = null;
             }
         }
 
-        if (gpsdSocket == null)
-            return;
-
-        fireGpsStatusChangeEvent(LiveGpsStatus.GpsStatus.CONNECTING, tr("Connecting"));
+        if (gpsdSocket == null || gpsdSocket.isConnected() == false)
+            throw new IOException();
 
         /*
          * First emit the "w" symbol. The older version will activate, the newer one will ignore it.
@@ -249,6 +244,19 @@ public class LiveGpsAcquirer implements Runnable {
         }
     }
 
+    private void disconnect() {
+	assert(gpsdSocket != null);
+
+	connected = false;
+
+        try {
+		gpsdSocket.close();
+		gpsdSocket = null;
+	} catch (Exception e) {
+		System.out.println("LiveGps: Unable to close socket; reconnection may not be possible");
+	}
+    }
+
     private LiveGpsData ParseJSON(String line) {
         JSONObject report;
         String type;
diff --git a/livegps/src/livegps/LiveGpsLayer.java b/livegps/src/livegps/LiveGpsLayer.java
index 92f7fbd..5c4b4c3 100644
--- a/livegps/src/livegps/LiveGpsLayer.java
+++ b/livegps/src/livegps/LiveGpsLayer.java
@@ -5,6 +5,8 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.Point;
+import java.awt.geom.Point2D;
+import java.awt.Rectangle;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.text.SimpleDateFormat;
@@ -24,6 +26,20 @@ import org.openstreetmap.josm.gui.layer.GpxLayer;
 public class LiveGpsLayer extends GpxLayer implements PropertyChangeListener {
     public static final String LAYER_NAME = tr("LiveGPS layer");
     public static final String KEY_LIVEGPS_COLOR = "color.livegps.position";
+
+    private static final int DEFAULT_REFRESH_INTERVAL = 250;
+    private static final int DEFAULT_CENTER_INTERVAL = 5000;
+    private static final int DEFAULT_CENTER_FACTOR = 80;
+    private static final String oldC_REFRESH_INTERVAL = "livegps.refreshinterval";     /* in seconds */
+    private static final String C_REFRESH_INTERVAL = "livegps.refresh_interval_msec";  /* in msec */
+    private static final String C_CENTER_INTERVAL = "livegps.center_interval_msec";  /* in msec */
+    private static final String C_CENTER_FACTOR = "livegps.center_factor" /* in percent */;
+    private int refreshInterval;
+    private int centerInterval;
+    private double centerFactor;
+    private long lastRedraw = 0;
+    private long lastCenter = 0;
+
     LatLon lastPos;
     WayPoint lastPoint;
     private final AppendableGpxTrackSegment trackSegment;
@@ -31,13 +47,7 @@ public class LiveGpsLayer extends GpxLayer implements PropertyChangeListener {
     float course;
     // JLabel lbl;
     boolean autocenter;
-    private SimpleDateFormat dateFormat = new SimpleDateFormat(
-    "yyyy-MM-dd'T'HH:mm:ss.SSS");
-
-    /**
-     * The suppressor is queried, if the GUI shall be re-drawn.
-     */
-    private ILiveGpsSuppressor suppressor;
+    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
 
     public LiveGpsLayer(GpxData data) {
         super(data, LAYER_NAME);
@@ -48,26 +58,24 @@ public class LiveGpsLayer extends GpxLayer implements PropertyChangeListener {
 
         GpxTrack trackBeingWritten = new SingleSegmentGpxTrack(trackSegment, attr);
         data.tracks.add(trackBeingWritten);
+
+	initIntervals();
     }
 
     void setCurrentPosition(double lat, double lon) {
-        // System.out.println("adding pos " + lat + "," + lon);
         LatLon thisPos = new LatLon(lat, lon);
-        if ((lastPos != null) && (thisPos.equalsEpsilon(lastPos))) {
+        if ((lastPos != null) && (thisPos.equalsEpsilon(lastPos)))
             // no change in position
             // maybe show a "paused" cursor or some such
             return;
-        }
 
         lastPos = thisPos;
         lastPoint = new WayPoint(thisPos);
         lastPoint.attr.put("time", dateFormat.format(new Date()));
         trackSegment.addWaypoint(lastPoint);
-        if (autocenter && allowRedraw()) {
-            center();
-        }
 
-        // Main.map.repaint();
+	if (autocenter)
+		conditionalCenter(thisPos);
     }
 
     public void center() {
@@ -75,6 +83,20 @@ public class LiveGpsLayer extends GpxLayer implements PropertyChangeListener {
             Main.map.mapView.zoomTo(lastPoint.getCoor());
     }
 
+    public void conditionalCenter(LatLon Pos) {
+	Point2D P = Main.map.mapView.getPoint2D(Pos);
+	Rectangle rv = Main.map.mapView.getBounds(null);
+	Date date = new Date();
+	long current = date.getTime();
+
+	rv.grow(-(int)(rv.getHeight() * centerFactor), -(int)(rv.getWidth() * centerFactor));
+
+	if (!rv.contains(P) || (centerInterval > 0 && current - lastCenter >= centerInterval)) {
+		Main.map.mapView.zoomTo(Pos);
+		lastCenter = current;
+	}
+    }
+
     // void setStatus(String status)
     // {
     // this.status = status;
@@ -84,12 +106,10 @@ public class LiveGpsLayer extends GpxLayer implements PropertyChangeListener {
 
     void setSpeed(float metresPerSecond) {
         speed = metresPerSecond;
-        // Main.map.repaint();
     }
 
     void setCourse(float degrees) {
         course = degrees;
-        // Main.map.repaint();
     }
 
     public void setAutoCenter(boolean ac) {
@@ -98,9 +118,8 @@ public class LiveGpsLayer extends GpxLayer implements PropertyChangeListener {
 
     @Override
     public void paint(Graphics2D g, MapView mv, Bounds bounds) {
-        // System.out.println("in paint");
-        // System.out.println("in synced paint");
         super.paint(g, mv, bounds);
+
         // int statusHeight = 50;
         // Rectangle mvs = mv.getBounds();
         // mvs.y = mvs.y + mvs.height - statusHeight;
@@ -146,38 +165,56 @@ public class LiveGpsLayer extends GpxLayer implements PropertyChangeListener {
                 if (!Float.isNaN(data.getCourse())) {
                     setCourse(data.getCourse());
                 }
-                if (!autocenter && allowRedraw()) {
+                if (allowRedraw())
                     Main.map.repaint();
-                }
             }
         }
     }
 
     /**
-     * @param suppressor the suppressor to set
-     */
-    public void setSuppressor(ILiveGpsSuppressor suppressor) {
-        this.suppressor = suppressor;
-    }
-
-    /**
-     * @return the suppressor
-     */
-    public ILiveGpsSuppressor getSuppressor() {
-        return suppressor;
-    }
-
-    /**
      * Check, if a redraw is currently allowed.
      *
      * @return true, if a redraw is permitted, false, if a re-draw
      * should be suppressed.
      */
     private boolean allowRedraw() {
-        if (this.suppressor != null) {
-            return this.suppressor.isAllowUpdate();
-        } else {
-            return true;
-        }
+	Date date = new Date();
+	long current = date.getTime();
+
+	if (current - lastRedraw >= refreshInterval) {
+		lastRedraw = current;
+		return true;
+	} else
+		return false;
+    }
+
+    /**
+     * Retrieve the refreshInterval and centerInterval from the configuration. Be compatible
+     * with old version that stored refreshInterval in seconds. If no such configuration key
+     * exists, it will be initialized here.
+     */
+    private void initIntervals() {
+	if ((refreshInterval = Main.pref.getInteger(oldC_REFRESH_INTERVAL, 0)) != 0) {
+		refreshInterval *= 1000;
+		Main.pref.put(oldC_REFRESH_INTERVAL, null);
+	} else
+		refreshInterval = Main.pref.getInteger(C_REFRESH_INTERVAL, DEFAULT_REFRESH_INTERVAL);
+
+	centerInterval = Main.pref.getInteger(C_CENTER_INTERVAL, DEFAULT_CENTER_INTERVAL);
+	centerFactor = Main.pref.getInteger(C_CENTER_FACTOR, DEFAULT_CENTER_FACTOR);
+	if (centerFactor <= 1 || centerFactor >= 99)
+		centerFactor = DEFAULT_CENTER_FACTOR;
+
+        Main.pref.putInteger(C_REFRESH_INTERVAL, refreshInterval);
+        Main.pref.putInteger(C_CENTER_INTERVAL, centerInterval);
+	Main.pref.putInteger(C_CENTER_FACTOR, (int )centerFactor);
+
+	/*
+	 * Do one time conversion of factor: user value means "how big is inner rectangle
+	 * comparing to screen in percent", machine value means "what is the shrink ratio
+	 * for each dimension on _both_ sides".
+	 */
+
+	centerFactor = (100 - centerFactor) / 2 / 100;
     }
 }
diff --git a/livegps/src/livegps/LiveGpsPlugin.java b/livegps/src/livegps/LiveGpsPlugin.java
index 19c24e2..b64bc00 100644
--- a/livegps/src/livegps/LiveGpsPlugin.java
+++ b/livegps/src/livegps/LiveGpsPlugin.java
@@ -27,27 +27,19 @@ import org.openstreetmap.josm.plugins.PluginInformation;
 import org.openstreetmap.josm.tools.Shortcut;
 
 public class LiveGpsPlugin extends Plugin implements LayerChangeListener {
+    private boolean enabled = false;
     private LiveGpsAcquirer acquirer = null;
     private Thread acquirerThread = null;
-    private JMenu lgpsmenu;
+    private JMenu lgpsmenu = null;
     private JCheckBoxMenuItem lgpscapture;
     private JCheckBoxMenuItem lgpsautocenter;
     private LiveGpsDialog lgpsdialog;
-    List<PropertyChangeListener> listenerQueue;
+    /* List of foreign (e.g. other plugins) subscribers */
+    List<PropertyChangeListener> listenerQueue = new ArrayList<PropertyChangeListener>();
 
     private GpxData data = new GpxData();
     private LiveGpsLayer lgpslayer = null;
 
-    /**
-     * The LiveGpsSuppressor is queried, if an event shall be suppressed.
-     */
-    private LiveGpsSuppressor suppressor;
-
-    /**
-     * separate thread, where the LiveGpsSuppressor executes.
-     */
-    private Thread suppressorThread;
-
     public class CaptureAction extends JosmAction {
         public CaptureAction() {
             super(
@@ -105,13 +97,12 @@ public class LiveGpsPlugin extends Plugin implements LayerChangeListener {
     }
 
     public void layerRemoved(Layer oldLayer) {
-        if (oldLayer == lgpslayer) {
-            enableTracking(false);
-            lgpscapture.setSelected(false);
-            removePropertyChangeListener(lgpslayer);
-            MapView.removeLayerChangeListener(this);
-            lgpslayer = null;
-        }
+        assert (oldLayer == lgpslayer);
+
+        enableTracking(false);
+        lgpscapture.setSelected(false);
+        MapView.removeLayerChangeListener(this);
+        lgpslayer = null;
     }
 
     public LiveGpsPlugin(PluginInformation info) {
@@ -133,8 +124,7 @@ public class LiveGpsPlugin extends Plugin implements LayerChangeListener {
         JosmAction autoCenterAction = new AutoCenterAction();
         lgpsautocenter = new JCheckBoxMenuItem(autoCenterAction);
         lgpsmenu.add(lgpsautocenter);
-        lgpsautocenter.setAccelerator(autoCenterAction.getShortcut()
-                .getKeyStroke());
+        lgpsautocenter.setAccelerator(autoCenterAction.getShortcut().getKeyStroke());
     }
 
     /**
@@ -164,82 +154,65 @@ public class LiveGpsPlugin extends Plugin implements LayerChangeListener {
      * @param enable if <code>true</code> tracking is started.
      */
     public void enableTracking(boolean enable) {
-        if ((acquirer != null) && (!enable)) {
-            acquirer.shutdown();
-            acquirerThread = null;
-
-            // also stop the suppressor
-            if (suppressor != null) {
-                suppressor.shutdown();
-                suppressorThread = null;
-                if (lgpslayer != null) {
-                    lgpslayer.setSuppressor(null);
-                }
-            }
-        } else if (enable) {
-            // also start the suppressor
-            if (suppressor == null) {
-                suppressor = new LiveGpsSuppressor();
-            }
-            if (suppressorThread == null) {
-                suppressorThread = new Thread(suppressor);
-                suppressorThread.start();
-            }
+	
+        if (enable && !enabled) {
+            assert (acquirer == null);
+            assert (acquirerThread == null);
 
-            if (acquirer == null) {
-                acquirer = new LiveGpsAcquirer();
-                if (lgpslayer == null) {
-                    lgpslayer = new LiveGpsLayer(data);
-                    Main.main.addLayer(lgpslayer);
-                    MapView.addLayerChangeListener(this);
-                    lgpslayer.setAutoCenter(isAutoCenter());
-                }
-                // connect layer with acquirer:
-                addPropertyChangeListener(lgpslayer);
-
-                // connect layer with suppressor:
-                lgpslayer.setSuppressor(suppressor);
-                // add all listeners that were added before the acquirer
-                // existed:
-                if (listenerQueue != null) {
-                    for (PropertyChangeListener listener : listenerQueue) {
-                        addPropertyChangeListener(listener);
-                    }
-                    listenerQueue.clear();
-                }
-            }
-            if (acquirerThread == null) {
-                acquirerThread = new Thread(acquirer);
-                acquirerThread.start();
-            }
+            acquirer = new LiveGpsAcquirer();
+            acquirerThread = new Thread(acquirer);
 
-        }
-    }
+	    if (lgpslayer == null) {
+		lgpslayer = new LiveGpsLayer(data);
+		Main.main.addLayer(lgpslayer);
+		MapView.addLayerChangeListener(this);
+		lgpslayer.setAutoCenter(isAutoCenter());
+	    }
 
-    /**
-     * Add a listener for gps events.
-     * @param listener the listener.
-     */
-    public void addPropertyChangeListener(PropertyChangeListener listener) {
-        if (acquirer != null) {
-            acquirer.addPropertyChangeListener(listener);
-        } else {
-            if (listenerQueue == null) {
-                listenerQueue = new ArrayList<PropertyChangeListener>();
-            }
-            listenerQueue.add(listener);
-        }
+            acquirer.addPropertyChangeListener(lgpslayer);
+            acquirer.addPropertyChangeListener(lgpsdialog);
+            for (PropertyChangeListener listener : listenerQueue)
+	        acquirer.addPropertyChangeListener(listener);
+
+            acquirerThread.start();
+
+	    enabled = true;
+
+        } else if (!enable && enabled) {
+	    assert (lgpslayer != null);
+            assert (acquirer != null);
+            assert (acquirerThread != null);
+
+	    acquirer.shutdown();
+	    acquirer = null;
+	    acquirerThread = null;
+
+	    enabled = false;
+	}
     }
 
-    /**
-     * Remove a listener for gps events.
-     * @param listener the listener.
-     */
-    public void removePropertyChangeListener(PropertyChangeListener listener) {
+    /** 
+     * Add a listener for gps events. 
+     * @param listener the listener. 
+     */ 
+    public void addPropertyChangeListener(PropertyChangeListener listener) { 
+        assert(!listenerQueue.contains(listener));
+
+        listenerQueue.add(listener); 
         if (acquirer != null)
-            acquirer.removePropertyChangeListener(listener);
-        else if (listenerQueue != null && listenerQueue.contains(listener))
-            listenerQueue.remove(listener);
+            acquirer.addPropertyChangeListener(listener); 
+    } 
+
+    /** 
+     * Remove a listener for gps events. 
+     * @param listener the listener. 
+     */ 
+    public void removePropertyChangeListener(PropertyChangeListener listener) { 
+        assert(listenerQueue.contains(listener));
+
+        listenerQueue.remove(listener); 
+        if (acquirer != null) 
+            acquirer.removePropertyChangeListener(listener); 
     }
 
     /* (non-Javadoc)
@@ -247,12 +220,8 @@ public class LiveGpsPlugin extends Plugin implements LayerChangeListener {
      */
     @Override
     public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
-        if (newFrame != null) {
-            // add dialog
+        if (newFrame != null)
             newFrame.addToggleDialog(lgpsdialog = new LiveGpsDialog(newFrame));
-            // connect listeners with acquirer:
-            addPropertyChangeListener(lgpsdialog);
-        }
     }
 
     /**
@@ -261,5 +230,4 @@ public class LiveGpsPlugin extends Plugin implements LayerChangeListener {
     public JMenu getLgpsMenu() {
         return this.lgpsmenu;
     }
-
 }
diff --git a/livegps/src/livegps/LiveGpsSuppressor.java b/livegps/src/livegps/LiveGpsSuppressor.java
deleted file mode 100644
index 78bcf17..0000000
--- a/livegps/src/livegps/LiveGpsSuppressor.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package livegps;
-
-import org.openstreetmap.josm.Main;
-
-/**
- * The LiveGpsSuppressor permits update events only once within a given timespan.
- * This is useful, when too frequent updates consume large parts of the CPU resources (esp.
- * on low-end devices, such as netbooks).
- *
- * Its own thread wakes up after the sleepTime and enables the allowUpdate flag.
- * When another thread (the LiveGpsAcquirere) "asks for permission",
- * the first call is permitted, but it also disables the updates for the following calls,
- * until the sleepTime has elapsed.
- *
- * @author casualwalker
- *
- */
-public class LiveGpsSuppressor implements Runnable, ILiveGpsSuppressor {
-
-    /**
-     * Default sleep time is 5 seconds.
-     */
-    private static final int DEFAULT_SLEEP_TIME = 5;
-
-    /**
-     * The currently used sleepTime.
-     */
-    private int sleepTime = DEFAULT_SLEEP_TIME;
-
-    /**
-     * The flag allowUpdate is enabled once during the sleepTime.
-     */
-    private boolean allowUpdate = false;
-
-    /**
-     * Controls if this thread is still in used.
-     */
-    private boolean shutdownFlag = false;
-
-    /**
-     * Run thread enables the allowUpdate flag once during its cycle.
-     * @see java.lang.Runnable#run()
-     */
-    public void run() {
-        initSleepTime();
-
-        shutdownFlag = false;
-        // stop the thread, when explicitely shut down or when disabled by
-        // config setting
-        while (!shutdownFlag && isEnabled()) {
-            setAllowUpdate(true);
-
-            try {
-                Thread.sleep(getSleepTime());
-            } catch (InterruptedException e) {
-                // TODO I never knew, how to handle this??? Probably just carry
-                // on
-            }
-        }
-
-    }
-
-    /**
-     * Retrieve the sleepTime from the configuration.
-     * If no such configuration key exists, it will be initialized here.
-     */
-    private void initSleepTime() {
-        // fetch it from the user setting, or use the default value.
-        int sleepSeconds = 0;
-        sleepSeconds = Main.pref.getInteger("livegps.refreshinterval",
-                DEFAULT_SLEEP_TIME);
-        // creates the setting, if none present.
-        Main.pref.putInteger("livegps.refreshinterval", sleepSeconds);
-
-        // convert seconds into milliseconds internally.
-        this.sleepTime = sleepSeconds * 1000;
-    }
-
-    /**
-     * Set the allowUpdate flag. May only privately accessible!
-     * @param allowUpdate the allowUpdate to set
-     */
-    private synchronized void setAllowUpdate(boolean allowUpdate) {
-        this.allowUpdate = allowUpdate;
-    }
-
-    /**
-     * Query, if an update is currently allowed.
-     * When it is allowed, it will disable the allowUpdate flag as a side effect.
-     * (this means, one thread got to issue an update event)
-     *
-     * @return true, if an update is currently allowed; false, if the update shall be suppressed.
-     * @see livegps.ILiveGpsSuppressor#isAllowUpdate()
-     */
-    public synchronized boolean isAllowUpdate() {
-
-        // if disabled, always permit a re-draw.
-        if (!isEnabled()) {
-            return true;
-        } else {
-
-            if (allowUpdate) {
-                allowUpdate = false;
-                return true;
-            } else {
-                return false;
-            }
-        }
-    }
-
-    /**
-     * A value below 1 disables this feature.
-     * This ensures that a small value does not run this thread
-     * in a tight loop.
-     *
-     * @return true, if suppressing is enabled
-     */
-    private boolean isEnabled() {
-        return this.sleepTime > 0;
-    }
-
-    /**
-     * Shut this thread down.
-     */
-    public void shutdown() {
-        shutdownFlag = true;
-    }
-
-    /**
-     * @return the defaultSleepTime
-     */
-    private int getSleepTime() {
-        return this.sleepTime;
-    }
-
-}
diff --git a/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java b/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java
index ed86883..9644632 100644
--- a/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java
+++ b/routing/src/com/innovant/josm/plugin/routing/gui/RoutingDialog.java
@@ -29,14 +29,15 @@ package com.innovant.josm.plugin.routing.gui;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.BorderLayout;
 import java.awt.ComponentOrientation;
 import java.awt.Font;
 import java.awt.event.KeyEvent;
 
 import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
 import javax.swing.DefaultListModel;
 import javax.swing.JList;
+import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.border.EtchedBorder;
 
@@ -67,15 +68,8 @@ public class RoutingDialog extends ToggleDialog {
     public RoutingDialog() {
         super(tr("Routing"), "routing", tr("Open a list of routing nodes"),
                 Shortcut.registerShortcut("subwindow:relations", tr("Toggle: {0}", tr("Routing")), KeyEvent.VK_R, Shortcut.GROUP_LAYER), 150);
-        model= new DefaultListModel();
-        this.setSize(456, 292);
-        this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
-        this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
-        this.setName("PrincipalDialog");
-        this.setFont(new Font("Dialog", Font.PLAIN, 12));
-        this.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
-        this.add(getJScrollPane(), null);
-
+        model = new DefaultListModel();
+        add(getJScrollPane(), BorderLayout.CENTER);
     }
 
     /**
@@ -86,12 +80,8 @@ public class RoutingDialog extends ToggleDialog {
     private JScrollPane getJScrollPane() {
         if (jScrollPane == null) {
             jScrollPane = new JScrollPane();
-            jScrollPane.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
-            jScrollPane.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
             jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
             jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
-            jScrollPane.setName("nList");
-            jScrollPane.setViewportBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
             jScrollPane.setViewportView(getJList());
         }
         return jScrollPane;
diff --git a/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java b/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java
index 29dff73..2b360b7 100644
--- a/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java
+++ b/routing/src/com/innovant/josm/plugin/routing/gui/RoutingMenu.java
@@ -119,7 +119,7 @@ public class RoutingMenu extends JMenu {
         criteriaM.add(rfaster);
 
         criteriaM.addSeparator();
-        JCheckBoxMenuItem cbmi = new JCheckBoxMenuItem("Ignore oneways");
+        JCheckBoxMenuItem cbmi = new JCheckBoxMenuItem(tr("Ignore oneways"));
         cbmi.addItemListener(new ItemListener() {
             public void itemStateChanged(ItemEvent e) {
                 if (Main.map.mapView.getActiveLayer() instanceof RoutingLayer) {
diff --git a/svn-info.xml b/svn-info.xml
index 212a54c..2574d66 100644
--- a/svn-info.xml
+++ b/svn-info.xml
@@ -3,16 +3,16 @@
 <entry
    kind="dir"
    path="plugins"
-   revision="25537">
+   revision="25850">
 <url>http://svn.openstreetmap.org/applications/editors/josm/plugins</url>
 <repository>
 <root>http://svn.openstreetmap.org</root>
 <uuid>b9d5c4c9-76e1-0310-9c85-f3177eceb1e4</uuid>
 </repository>
 <commit
-   revision="25527">
+   revision="25845">
 <author>stoecker</author>
-<date>2011-03-06T14:57:08.379261Z</date>
+<date>2011-04-14T14:32:17.341054Z</date>
 </commit>
 </entry>
 </info>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/josm-plugins.git



More information about the Pkg-grass-devel mailing list