ZoomAction must work when a block is selected on the palette browser 90/16690/3
Marcos CARDINOT [Sat, 13 Jun 2015 00:03:00 +0000 (21:03 -0300)]
- open xcos & palette browser
- select a block on the palette browser
- zoom in/out

Change-Id: I12d0c051aa13af5b7ad35426361bce1c2fdebc4d

scilab/modules/xcos/src/java/org/scilab/modules/xcos/palette/actions/ZoomAction.java
scilab/modules/xcos/src/java/org/scilab/modules/xcos/palette/view/PaletteBlockView.java
scilab/modules/xcos/src/java/org/scilab/modules/xcos/palette/view/PaletteManagerView.java

index 87555e6..d23efad 100644 (file)
@@ -61,26 +61,15 @@ public class ZoomAction extends CommonCallBack {
 
     /**
      * Register the key for the action
-     * @param view PaletteManagerPanel instance
+     * @param am the ActionMap
+     * @param im the InputMap
      */
-    public static void registerKeyAction(PaletteManagerView view) {
-        // Multi-shortcut action
-        ActionMap[] ams = new ActionMap[] {
-                view.getTree().getActionMap(),
-                view.getPanel().getActionMap()
-        };
-        InputMap[] maps = new InputMap[] {
-                view.getTree().getInputMap(),
-                view.getPanel().getInputMap()
-        };
-
-        // register the action to a unique action keyword
-        for (ActionMap am : ams) {
-            am.put(ZOOM_IN, new ZoomAction());
-            am.put(ZOOM_OUT, new ZoomAction());
-        }
+    public static void registerKeyAction(ActionMap am, InputMap im) {
+        // register the actions to a unique action keyword
+        am.put(ZOOM_IN, new ZoomAction());
+        am.put(ZOOM_OUT, new ZoomAction());
 
-        // add custom key stroke for this action
+        // add custom key stroke for these action
         final KeyStroke[] keystrokesIn;
         final KeyStroke[] keystrokesOut;
         if (OS.get() == MAC) {
@@ -110,13 +99,11 @@ public class ZoomAction extends CommonCallBack {
             };
         }
 
-        for (InputMap map : maps) {
-            for (KeyStroke k : keystrokesIn) {
-                map.put(k, ZOOM_IN);
-            }
-            for (KeyStroke k : keystrokesOut) {
-                map.put(k, ZOOM_OUT);
-            }
+        for (KeyStroke k : keystrokesIn) {
+            im.put(k, ZOOM_IN);
+        }
+        for (KeyStroke k : keystrokesOut) {
+            im.put(k, ZOOM_OUT);
         }
     }
 
index 9157a82..2f5e6f5 100644 (file)
@@ -23,6 +23,7 @@ import javax.swing.border.Border;
 
 import org.flexdock.plaf.common.border.ShadowBorder;
 import org.scilab.modules.xcos.palette.PaletteBlockCtrl;
+import org.scilab.modules.xcos.palette.actions.ZoomAction;
 import org.scilab.modules.xcos.utils.XcosConstants.PaletteBlockSize;
 
 /**
@@ -53,6 +54,7 @@ public final class PaletteBlockView extends JLabel {
               SwingConstants.CENTER);
         this.controller = controller;
         this.palBlockSize = palBlockSize;
+        ZoomAction.registerKeyAction(getActionMap(), getInputMap());
         initComponents(palBlockSize);
     }
 
index 2a7b6ea..6dba5e8 100644 (file)
@@ -183,8 +183,8 @@ public class PaletteManagerView extends SwingScilabDockablePanel implements Simp
 
         stb.add(ZoomAction.createButtonZoomIn());
         stb.add(ZoomAction.createButtonZoomOut());
-
-        ZoomAction.registerKeyAction(this);
+        ZoomAction.registerKeyAction(getPanel().getActionMap(), getPanel().getInputMap());
+        ZoomAction.registerKeyAction(getTree().getActionMap(), getTree().getInputMap());
 
         setToolBar(toolbar);