Revision: 5503
          http://sourceforge.net/p/jump-pilot/code/5503
Author:   ma15569
Date:     2017-09-23 05:56:16 +0000 (Sat, 23 Sep 2017)
Log Message:
-----------
Added Syncronize windows zoom (only) tool

Modified Paths:
--------------
    core/trunk/ChangeLog
    core/trunk/src/language/jump.properties
    core/trunk/src/language/jump_cz.properties
    core/trunk/src/language/jump_de.properties
    core/trunk/src/language/jump_es.properties
    core/trunk/src/language/jump_fi.properties
    core/trunk/src/language/jump_fr.properties
    core/trunk/src/language/jump_hu.properties
    core/trunk/src/language/jump_it.properties
    core/trunk/src/language/jump_ja_JP.properties
    core/trunk/src/language/jump_ml.properties
    core/trunk/src/language/jump_pt.properties
    core/trunk/src/language/jump_pt_BR.properties
    core/trunk/src/language/jump_ta_IN.properties
    core/trunk/src/language/jump_te.properties
    core/trunk/src/language/jump_zh_CN.properties
    core/trunk/src/language/jump_zh_HK.properties
    core/trunk/src/org/openjump/core/ui/plugin/window/SynchronizationPlugIn.java

Modified: core/trunk/ChangeLog
===================================================================
--- core/trunk/ChangeLog        2017-09-22 08:34:37 UTC (rev 5502)
+++ core/trunk/ChangeLog        2017-09-23 05:56:16 UTC (rev 5503)
@@ -3,7 +3,10 @@
 # 2. make sure that lines break at 80 chars for constricted display situations
 #<-------------------------------- 80 chars 
---------------------------------->#
 
-2017-09-17 Giuseppe Aruta
+2017-09-23 Giuseppe Aruta
+  * Added Syncronize windows zoom (only) tool
+
+2017-09-22 Giuseppe Aruta
   * Added radius/circumference/area display to DrawConstrainedCircleTool as
     suggested by Jucca  [JPP-Devel] Show area while drawing circles? Sept 21 
2017
 

Modified: core/trunk/src/language/jump.properties
===================================================================
--- core/trunk/src/language/jump.properties     2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump.properties     2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1744,6 +1744,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
Synchronization
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Synchronize pan and zoom
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Synchronize pan only
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
= Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS Layer
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS Layer
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Bounding 
Box(es) for

Modified: core/trunk/src/language/jump_cz.properties
===================================================================
--- core/trunk/src/language/jump_cz.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_cz.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1505,6 +1505,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
Synchronizace
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Synchronizovat posun a zm\u011Bnu m\u011B\u0159\u00EDtka
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Synchronizovat pouze posun
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS vrstva
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS vrstva
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = 
Ohrani\u010Duj\u00EDc\u00ED obd\u00E9ln\u00EDk (obd\u00E9ln\u00EDky) pro

Modified: core/trunk/src/language/jump_de.properties
===================================================================
--- core/trunk/src/language/jump_de.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_de.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1561,6 +1561,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
Synchronisierung
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Synchronisiere Verschieben und Zoomen
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Synchronisiere nur Verschiebemodus
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS-Ebene
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS-Ebene
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Bounding 
Box(es) f\u00FCr

Modified: core/trunk/src/language/jump_es.properties
===================================================================
--- core/trunk/src/language/jump_es.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_es.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1491,6 +1491,7 @@
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization=Sincronizar
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom=Sincronizar
 panoramica y zoom
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only=Sincronizar
 panoramica solamente
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=Sincronizar zoom solamente
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard=Capa WMS
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer=WMS Layer
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for=Marco de 
L\u00edmites (BoundingBox) para

Modified: core/trunk/src/language/jump_fi.properties
===================================================================
--- core/trunk/src/language/jump_fi.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_fi.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1554,6 +1554,7 @@
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization=Synkronoi
 ikkunat
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom=Synkronoi
 sek\u00e4 siirtyminen ett\u00e4 zoomaus
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only=Synkronoi
 vain siirtyminen
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard=WMS-taso
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer=WMS-taso
 org.openjump.core.ui.plugin.wms.WMSLegendPlugIn=N\u00e4yt\u00e4 WMS-tason 
selite

Modified: core/trunk/src/language/jump_fr.properties
===================================================================
--- core/trunk/src/language/jump_fr.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_fr.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1511,6 +1511,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
Synchronisation
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Synchroniser les d\u00e9placements et les zooms
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Synchroniser les d\u00e9placements
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = Couche WMS
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = Couche WMS
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Rectangle 
englobant pour

Modified: core/trunk/src/language/jump_hu.properties
===================================================================
--- core/trunk/src/language/jump_hu.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_hu.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1501,6 +1501,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
Szinkroniz\u00e1l\u00e1s
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Eltol\u00e1s \u00e9s nagy\u00edt\u00e1s szinkroniz\u00e1l\u00e1s
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Csak az eltol\u00e1s szinkroniz\u00e1l\u00e1sa
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS r\u00e9teg
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS 
r\u00e9teg
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = 
Befoglal\u00f3 t\u00e9glalap ehhez

Modified: core/trunk/src/language/jump_it.properties
===================================================================
--- core/trunk/src/language/jump_it.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_it.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1497,8 +1497,9 @@
 org.openjump.core.ui.plugin.window.MosaicInternalFramesPlugIn.Mosaic=Mosaica
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Desynchronize=Annulla
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization=Sincronizza
-org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom=Panoramica
 e zoom
-org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only=Panoramica
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom=Sincronizza
 panoramica e zoom
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only=Sincronizza
 solo panoramica 
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=Sincronizza solo zoom
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard=Livello WMS
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer=Livello WMS
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for=Bounding Box 
per

Modified: core/trunk/src/language/jump_ja_JP.properties
===================================================================
--- core/trunk/src/language/jump_ja_JP.properties       2017-09-22 08:34:37 UTC 
(rev 5502)
+++ core/trunk/src/language/jump_ja_JP.properties       2017-09-23 05:56:16 UTC 
(rev 5503)
@@ -1500,6 +1500,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
\u540c\u671f
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = \u79fb\u52d5\u3068\u30ba\u30fc\u30e0\u3092\u540c\u671f
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
\u79fb\u52d5\u306e\u307f\u540c\u671f
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS \u30ec\u30a4\u30e4
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS 
\u30ec\u30a4\u30e4
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = 
\u30d0\u30a6\u30f3\u30c7\u30a3\u30b0\u30dc\u30c3\u30af\u30b9

Modified: core/trunk/src/language/jump_ml.properties
===================================================================
--- core/trunk/src/language/jump_ml.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_ml.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -2213,6 +2213,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = \#T\:
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = \#T\:
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
\#T\:
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = \#T\:
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = \#T\:
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = \#T\:

Modified: core/trunk/src/language/jump_pt.properties
===================================================================
--- core/trunk/src/language/jump_pt.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_pt.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1501,6 +1501,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
Sincroniza\u00e7\u00f5o
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Sicronizar o pan e o zoom
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Sicronizar apenas o pan
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=Simcronizar apenas o zoom
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS Layer
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS Layer
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Caixa de 
Limite(s) para

Modified: core/trunk/src/language/jump_pt_BR.properties
===================================================================
--- core/trunk/src/language/jump_pt_BR.properties       2017-09-22 08:34:37 UTC 
(rev 5502)
+++ core/trunk/src/language/jump_pt_BR.properties       2017-09-23 05:56:16 UTC 
(rev 5503)
@@ -1501,6 +1501,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
Sincroniza\u00e7\u00f5o
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Sicronizar o pan e o zoom
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Sicronizar apenas o pan
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=Sincronizar apenas o zoom
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS Layer
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS Layer
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Caixa de 
Limite(s) para 

Modified: core/trunk/src/language/jump_ta_IN.properties
===================================================================
--- core/trunk/src/language/jump_ta_IN.properties       2017-09-22 08:34:37 UTC 
(rev 5502)
+++ core/trunk/src/language/jump_ta_IN.properties       2017-09-23 05:56:16 UTC 
(rev 5503)
@@ -1499,6 +1499,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
\u0b92\u0bb0\u0bc1\u0b99\u0bcd\u0b95\u0bbf\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Synchronize pan and zoom
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Synchronize pan only
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS Layer
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS Layer
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Bounding 
Box(es) for

Modified: core/trunk/src/language/jump_te.properties
===================================================================
--- core/trunk/src/language/jump_te.properties  2017-09-22 08:34:37 UTC (rev 
5502)
+++ core/trunk/src/language/jump_te.properties  2017-09-23 05:56:16 UTC (rev 
5503)
@@ -1751,6 +1751,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
Synchronization
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = Synchronize pan and zoom
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
Synchronize pan only
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS Layer
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = WMS Layer
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = Bounding 
Box(es) for

Modified: core/trunk/src/language/jump_zh_CN.properties
===================================================================
--- core/trunk/src/language/jump_zh_CN.properties       2017-09-22 08:34:37 UTC 
(rev 5502)
+++ core/trunk/src/language/jump_zh_CN.properties       2017-09-23 05:56:16 UTC 
(rev 5503)
@@ -1620,6 +1620,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
\u540c\u6b65
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = \u540c\u6b65\u5e73\u79fb\u548c\u7f29\u653e
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
\u4ec5\u540c\u6b65\u5e73\u79fb
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS\u56fe\u5c42
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = 
WMS\u56fe\u5c42
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = 
\u8fb9\u6846\uff08ES\uff09\u7684\u4e3a

Modified: core/trunk/src/language/jump_zh_HK.properties
===================================================================
--- core/trunk/src/language/jump_zh_HK.properties       2017-09-22 08:34:37 UTC 
(rev 5502)
+++ core/trunk/src/language/jump_zh_HK.properties       2017-09-23 05:56:16 UTC 
(rev 5503)
@@ -1619,6 +1619,7 @@
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization = 
\u540c\u6b65
 
org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom
 = \u540c\u6b65\u5e73\u79fb\u548c\u7e2e\u653e
 org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only = 
\u50c5\u540c\u6b65\u5e73\u79fb
+org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only 
=#T:Synchronize zoom only
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard = WMS\u5716\u5c64
 org.openjump.core.ui.plugin.wms.AddWmsLayerWizard.Add-WMS-Layer = 
WMS\u5716\u5c64
 org.openjump.core.ui.plugin.wms.ZoomToWMSPlugIn.bounding-box-for = 
\u908a\u6846\uff08ES\uff09\u7684\u70ba

Modified: 
core/trunk/src/org/openjump/core/ui/plugin/window/SynchronizationPlugIn.java
===================================================================
--- 
core/trunk/src/org/openjump/core/ui/plugin/window/SynchronizationPlugIn.java    
    2017-09-22 08:34:37 UTC (rev 5502)
+++ 
core/trunk/src/org/openjump/core/ui/plugin/window/SynchronizationPlugIn.java    
    2017-09-23 05:56:16 UTC (rev 5503)
@@ -25,7 +25,16 @@
 
 package org.openjump.core.ui.plugin.window;
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.geom.Point2D;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JInternalFrame;
+import javax.swing.JRadioButtonMenuItem;
+
 import org.openjump.core.ui.plugin.AbstractUiPlugIn;
+
 import com.vividsolutions.jts.geom.Envelope;
 import com.vividsolutions.jump.I18N;
 import com.vividsolutions.jump.workbench.WorkbenchContext;
@@ -38,13 +47,6 @@
 import com.vividsolutions.jump.workbench.ui.Viewport;
 import com.vividsolutions.jump.workbench.ui.ViewportListener;
 
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.geom.Point2D;
-import javax.swing.ButtonGroup;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.JInternalFrame;
-
 /**
  * A plugin to synchronize / desynchronize LayerViewPanels.
  * 
@@ -51,6 +53,8 @@
  * @author Michael Michaud
  * @version 0.1 (2008-04-06)
  * @since 1.2F
+ * 
+ *        Giuseppe Aruta [2017-09-23] Added Syncronize zoom only
  */
 public class SynchronizationPlugIn extends AbstractUiPlugIn {
 
@@ -57,7 +61,7 @@
     static ViewportListener vpl;
 
     public SynchronizationPlugIn() {
-      super();
+        super();
     }
 
     public SynchronizationPlugIn(String name) {
@@ -64,59 +68,83 @@
         super(name);
     }
 
+    @Override
     public void initialize(final PlugInContext context) throws Exception {
 
         // Set the workbenchContext used in getEnableCheck method
         super.initialize(context);
 
-        final JRadioButtonMenuItem desynchronizeMI =
-            new 
JRadioButtonMenuItem(I18N.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Desynchronize"));
-        final JRadioButtonMenuItem synchronizePanMI =
-            new 
JRadioButtonMenuItem(I18N.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only"));
-        final JRadioButtonMenuItem synchronizeAllMI =
-            new 
JRadioButtonMenuItem(I18N.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom"));
+        final JRadioButtonMenuItem desynchronizeMI = new JRadioButtonMenuItem(
+                
I18N.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Desynchronize"));
+        final JRadioButtonMenuItem synchronizePanMI = new JRadioButtonMenuItem(
+                
I18N.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-only"));
+        final JRadioButtonMenuItem synchronizeZoomMI = new 
JRadioButtonMenuItem(
+                
I18N.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-zoom-only"));
+        final JRadioButtonMenuItem synchronizeAllMI = new JRadioButtonMenuItem(
+                
I18N.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronize-pan-and-zoom"));
 
         ButtonGroup bgroup = new ButtonGroup();
         bgroup.add(desynchronizeMI);
         bgroup.add(synchronizePanMI);
+        bgroup.add(synchronizeZoomMI);
         bgroup.add(synchronizeAllMI);
-        
+
         desynchronizeMI.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {desynchronize();}
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                desynchronize();
+            }
         });
         synchronizePanMI.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {synchronize(false);}
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                synchronize(false);
+            }
         });
         synchronizeAllMI.addActionListener(new ActionListener() {
-            public void actionPerformed(ActionEvent e) {synchronize(true);}
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                synchronize(true);
+            }
         });
+        synchronizeZoomMI.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                synchronizeZoom(true);
+            }
+        });
 
         context.getFeatureInstaller().addMainMenuItem(
-            new String[]{MenuNames.WINDOW, MenuNames.WINDOW_SYNCHRONIZATION},
-            this,
-            synchronizePanMI,
-            0);
+                new String[] { MenuNames.WINDOW,
+                        MenuNames.WINDOW_SYNCHRONIZATION }, this,
+                synchronizePanMI, 0);
         context.getFeatureInstaller().addMainMenuItem(
-            new String[]{MenuNames.WINDOW, MenuNames.WINDOW_SYNCHRONIZATION},
-            this,
-            synchronizeAllMI,
-            1);
+                new String[] { MenuNames.WINDOW,
+                        MenuNames.WINDOW_SYNCHRONIZATION }, this,
+                synchronizeZoomMI, 1);
         context.getFeatureInstaller().addMainMenuItem(
-            new String[]{MenuNames.WINDOW, MenuNames.WINDOW_SYNCHRONIZATION},
-            this,
-            desynchronizeMI,
-            2);
+                new String[] { MenuNames.WINDOW,
+                        MenuNames.WINDOW_SYNCHRONIZATION }, this,
+                synchronizeAllMI, 2);
+        context.getFeatureInstaller().addMainMenuItem(
+                new String[] { MenuNames.WINDOW,
+                        MenuNames.WINDOW_SYNCHRONIZATION }, this,
+                desynchronizeMI, 3);
 
     }
 
+    @Override
     public String getName() {
-        return 
I18N.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization");
+        return I18N
+                
.get("org.openjump.core.ui.plugin.window.SyncronizationPlugIn.Synchronization");
     }
 
+    @Override
     public EnableCheck getEnableCheck() {
-        EnableCheckFactory checkFactory = new 
EnableCheckFactory(workbenchContext);
-        return new MultiEnableCheck()
-            
.add(checkFactory.createWindowWithLayerViewPanelMustBeActiveCheck());
+        EnableCheckFactory checkFactory = new EnableCheckFactory(
+                workbenchContext);
+        return new MultiEnableCheck().add(checkFactory
+                .createWindowWithLayerViewPanelMustBeActiveCheck());
     }
 
     public void synchronize(boolean panAndZoom) {
@@ -123,67 +151,155 @@
         ViewportListener oldViewportListener = vpl;
         vpl = createViewportListener(panAndZoom);
         // add the listener to every active map window
-        JInternalFrame[] iframes = 
workbenchContext.getWorkbench().getFrame().getInternalFrames();
-            for (JInternalFrame iframe : iframes) {
-                if (iframe instanceof TaskFrame) {
-                    // Remove the old listener if any before adding a new one
-                    // Thus, one can reinitialize synchronization if the number
-                    // of map windows change
-                    // Ideally, one should intercept new window creation or 
window focus
-                    // change to add new listeners to new windows..
-                    
((TaskFrame)iframe).getLayerViewPanel().getViewport().removeListener(oldViewportListener);
-                    
((TaskFrame)iframe).getLayerViewPanel().getViewport().addListener(vpl);
-                }
+        JInternalFrame[] iframes = workbenchContext.getWorkbench().getFrame()
+                .getInternalFrames();
+        for (JInternalFrame iframe : iframes) {
+            if (iframe instanceof TaskFrame) {
+                // Remove the old listener if any before adding a new one
+                // Thus, one can reinitialize synchronization if the number
+                // of map windows change
+                // Ideally, one should intercept new window creation or window
+                // focus
+                // change to add new listeners to new windows..
+                ((TaskFrame) iframe).getLayerViewPanel().getViewport()
+                        .removeListener(oldViewportListener);
+                ((TaskFrame) iframe).getLayerViewPanel().getViewport()
+                        .addListener(vpl);
             }
+        }
     }
 
+    public void synchronizeZoom(boolean zoom) {
+        ViewportListener oldViewportListener = vpl;
+        vpl = createViewportListenerZoom(zoom);
+        // add the listener to every active map window
+        JInternalFrame[] iframes = workbenchContext.getWorkbench().getFrame()
+                .getInternalFrames();
+        for (JInternalFrame iframe : iframes) {
+            if (iframe instanceof TaskFrame) {
+                // Remove the old listener if any before adding a new one
+                // Thus, one can reinitialize synchronization if the number
+                // of map windows change
+                // Ideally, one should intercept new window creation or window
+                // focus
+                // change to add new listeners to new windows..
+                ((TaskFrame) iframe).getLayerViewPanel().getViewport()
+                        .removeListener(oldViewportListener);
+                ((TaskFrame) iframe).getLayerViewPanel().getViewport()
+                        .addListener(vpl);
+
+            }
+        }
+    }
+
     public void desynchronize() {
         ViewportListener oldViewPortListener = vpl;
         vpl = null;
         // add the listener to every active map window
-        JInternalFrame[] iframes = 
workbenchContext.getWorkbench().getFrame().getInternalFrames();
+        JInternalFrame[] iframes = workbenchContext.getWorkbench().getFrame()
+                .getInternalFrames();
         for (JInternalFrame iframe : iframes) {
             if (iframe instanceof TaskFrame) {
                 // Remove the old listener if any before adding a new one
                 // Thus, one can reinitialize synchronization if the number
                 // of map windows change
-                // Ideally, one should intercept new window creation or window 
focus
+                // Ideally, one should intercept new window creation or window
+                // focus
                 // change to add new listeners to new windows..
-                
((TaskFrame)iframe).getLayerViewPanel().getViewport().removeListener(oldViewPortListener);
+                ((TaskFrame) iframe).getLayerViewPanel().getViewport()
+                        .removeListener(oldViewPortListener);
             }
         }
     }
 
-    private ViewportListener createViewportListener(final boolean panAndZoom) {
+    private ViewportListener createViewportListener(final boolean zoom) {
         final WorkbenchContext context = workbenchContext;
         return new ViewportListener() {
+            @Override
             public void zoomChanged(Envelope modelEnvelope) {
-                JInternalFrame[] iframes = 
context.getWorkbench().getFrame().getInternalFrames();
+                JInternalFrame[] iframes = context.getWorkbench().getFrame()
+                        .getInternalFrames();
                 for (JInternalFrame iframe : iframes) {
-                    if (iframe instanceof TaskFrame &&
-                        ((TaskFrame)iframe).getLayerViewPanel().getViewport() 
!=
-                        context.getLayerViewPanel().getViewport()) {
+                    if (iframe instanceof TaskFrame
+                            && ((TaskFrame) iframe).getLayerViewPanel()
+                                    .getViewport() != context
+                                    .getLayerViewPanel().getViewport()) {
                         try {
                             // Copy of method viewport.zoom(envelope)
-                            // without the statement 
fireZoomChanged(modelEnvelope)
+                            // without the statement
+                            // fireZoomChanged(modelEnvelope)
                             // to avoid entering an infinite loop
-                            // window 1 change --> window 2 change --> window 
1 change ...
-                            Viewport viewport = 
((TaskFrame)iframe).getLayerViewPanel().getViewport();
+                            // window 1 change --> window 2 change --> window 1
+                            // change ...
+                            Viewport viewport = ((TaskFrame) iframe)
+                                    .getLayerViewPanel().getViewport();
                             double w = viewport.getPanel().getWidth();
                             double h = viewport.getPanel().getHeight();
                             double scale = viewport.getScale();
+                            if (zoom) {
+                                scale = Math.min(w / modelEnvelope.getWidth(),
+                                        h / modelEnvelope.getHeight());
+                            }
+                            double xCenteringOffset = ((w / scale) - 
modelEnvelope
+                                    .getWidth()) / 2.0;
+                            double yCenteringOffset = ((h / scale) - 
modelEnvelope
+                                    .getHeight()) / 2.0;
+                            Point2D.Double viewOriginAsPerceivedByModel = new 
Point2D.Double(
+                                    modelEnvelope.getMinX() - xCenteringOffset,
+                                    modelEnvelope.getMinY() - 
yCenteringOffset);
+                            viewport.initialize(scale,
+                                    viewOriginAsPerceivedByModel);
+                            viewport.update();
+                        } catch (Exception e) {
+                        }
+                    }
+                }
+            }
+        };
+    }
+
+    private ViewportListener createViewportListenerZoom(final boolean 
panAndZoom) {
+        final WorkbenchContext context = workbenchContext;
+        return new ViewportListener() {
+            @Override
+            public void zoomChanged(Envelope modelEnvelope) {
+                JInternalFrame[] iframes = context.getWorkbench().getFrame()
+                        .getInternalFrames();
+                for (JInternalFrame iframe : iframes) {
+                    if (iframe instanceof TaskFrame
+                            && ((TaskFrame) iframe).getLayerViewPanel()
+                                    .getViewport() != context
+                                    .getLayerViewPanel().getViewport()) {
+                        try {
+                            // Copy of method viewport.zoom(envelope)
+                            // without the statement
+                            // fireZoomChanged(modelEnvelope)
+                            // to avoid entering an infinite loop
+                            // window 1 change --> window 2 change --> window 1
+                            // change ...
+                            Viewport viewport = ((TaskFrame) iframe)
+                                    .getLayerViewPanel().getViewport();
+                            double w = viewport.getPanel().getWidth();
+                            double h = viewport.getPanel().getHeight();
+                            double scale = viewport.getScale();
+
                             if (panAndZoom) {
                                 scale = Math.min(w / modelEnvelope.getWidth(),
-                                                 h / 
modelEnvelope.getHeight());
+                                        h / modelEnvelope.getHeight());
                             }
-                            double xCenteringOffset = ((w / scale) - 
modelEnvelope.getWidth()) / 2.0; 
-                            double yCenteringOffset = ((h / scale) - 
modelEnvelope.getHeight()) / 2.0; 
-                            Point2D.Double viewOriginAsPerceivedByModel =
-                                new Point2D.Double(modelEnvelope.getMinX() - 
xCenteringOffset,
+
+                            double xCenteringOffset = ((w / scale) - 
modelEnvelope
+                                    .getWidth()) / 2.0;
+                            double yCenteringOffset = ((h / scale) - 
modelEnvelope
+                                    .getHeight()) / 2.0;
+                            Point2D.Double viewOriginAsPerceivedByModel = new 
Point2D.Double(
+                                    modelEnvelope.getMinX() - xCenteringOffset,
                                     modelEnvelope.getMinY() - 
yCenteringOffset);
-                            viewport.initialize(scale, 
viewOriginAsPerceivedByModel);
+                            viewport.initialize(scale,
+                                    viewport.getOriginInModelCoordinates());
                             viewport.update();
-                        } catch(Exception e) {}
+                        } catch (Exception e) {
+                        }
                     }
                 }
             }
@@ -191,10 +307,11 @@
     }
 
     /**
-     * For this plugin, this method is unused
-     * All the work is defined in action listeners
+     * For this plugin, this method is unused All the work is defined in action
+     * listeners
      */
-    public boolean execute(PlugInContext context) throws Exception{
+    @Override
+    public boolean execute(PlugInContext context) throws Exception {
         return true;
     }
 


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to