Palette browser - adds a view menu to perform the zoom and navigation actions 40/17040/2
Marcos CARDINOT [Sat, 15 Aug 2015 19:15:53 +0000 (16:15 -0300)]
Change-Id: I2dc01d75026e3ec4446f018781eef68bbe309ee2

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

index a827948..45f9739 100644 (file)
@@ -20,7 +20,10 @@ import javax.swing.JButton;
 
 import org.scilab.modules.commons.gui.FindIconHelper;
 import org.scilab.modules.commons.gui.ScilabLAF;
+import org.scilab.modules.gui.bridge.menuitem.SwingScilabMenuItem;
 import org.scilab.modules.gui.events.callback.CommonCallBack;
+import org.scilab.modules.gui.menuitem.MenuItem;
+import org.scilab.modules.gui.menuitem.ScilabMenuItem;
 import org.scilab.modules.xcos.palette.view.PaletteManagerView;
 import org.scilab.modules.xcos.utils.XcosMessages;
 
@@ -33,13 +36,13 @@ public class NavigationAction extends CommonCallBack {
 
     private static final long serialVersionUID = 1L;
 
-    private static final String LABEL_NEXT = XcosMessages.NEXT;
-    private static final String LABEL_PREV = XcosMessages.PREVIOUS;
     private static final String ICON_NEXT = FindIconHelper.findIcon("go-next");
     private static final String ICON_PREV = FindIconHelper.findIcon("go-previous");
 
     private static JButton btnNEXT;
     private static JButton btnPREV;
+    private static MenuItem miNEXT;
+    private static MenuItem miPREV;
 
     /**
      * Constructor
@@ -55,8 +58,9 @@ public class NavigationAction extends CommonCallBack {
     public static JButton createButtonNext() {
         btnNEXT = new JButton();
         ScilabLAF.setDefaultProperties(btnNEXT);
+        btnNEXT.setName(XcosMessages.NEXT);
         btnNEXT.setIcon(new ImageIcon(ICON_NEXT));
-        btnNEXT.setToolTipText(LABEL_NEXT);
+        btnNEXT.setToolTipText(XcosMessages.NEXT);
         btnNEXT.addActionListener(getCallBack());
         btnNEXT.setFocusable(true);
         setEnabledNext(false);
@@ -70,8 +74,9 @@ public class NavigationAction extends CommonCallBack {
     public static JButton createButtonPrev() {
         btnPREV = new JButton();
         ScilabLAF.setDefaultProperties(btnPREV);
+        btnPREV.setName(XcosMessages.PREVIOUS);
         btnPREV.setIcon(new ImageIcon(ICON_PREV));
-        btnPREV.setToolTipText(LABEL_PREV);
+        btnPREV.setToolTipText(XcosMessages.PREVIOUS);
         btnPREV.addActionListener(getCallBack());
         btnPREV.setFocusable(true);
         setEnabledPrev(false);
@@ -79,6 +84,32 @@ public class NavigationAction extends CommonCallBack {
     }
 
     /**
+     * Creates a menu item associated with the 'next' action
+     * @return the menuitem
+     */
+    public static MenuItem createMenuNext() {
+        miNEXT = ScilabMenuItem.createMenuItem();
+        miNEXT.setText(XcosMessages.NEXT);
+        miNEXT.setMnemonic('N');
+        miNEXT.setCallback(getCallBack());
+        ((SwingScilabMenuItem) miNEXT.getAsSimpleMenuItem()).setIcon(new ImageIcon(ICON_NEXT));
+        return miNEXT;
+    }
+
+    /**
+     * Creates a menu item associated with the 'previous' action
+     * @return the menuitem
+     */
+    public static MenuItem createMenuPrev() {
+        miPREV = ScilabMenuItem.createMenuItem();
+        miPREV.setText(XcosMessages.PREVIOUS);
+        miPREV.setMnemonic('P');
+        miPREV.setCallback(getCallBack());
+        ((SwingScilabMenuItem) miPREV.getAsSimpleMenuItem()).setIcon(new ImageIcon(ICON_PREV));
+        return miPREV;
+    }
+
+    /**
      * Create a new class instance
      * @return the instance
      */
@@ -107,10 +138,14 @@ public class NavigationAction extends CommonCallBack {
      * @param e ActionEvent
      */
     public void actionPerformed(ActionEvent e) {
-        Object src = e.getSource();
-        if (btnNEXT != null && src.equals(btnNEXT)) {
+        String cmd = e.getActionCommand();
+        if (cmd.isEmpty()) {
+            cmd = ((JButton) e.getSource()).getName();
+        }
+
+        if (cmd.equals(XcosMessages.NEXT)) {
             PaletteManagerView.get().getPanel().goNext();
-        } else if (btnPREV != null && src.equals(btnPREV)) {
+        } else if (cmd.equals(XcosMessages.PREVIOUS)) {
             PaletteManagerView.get().getPanel().goPrevious();
         }
     }
@@ -121,6 +156,7 @@ public class NavigationAction extends CommonCallBack {
      */
     public static void setEnabledNext(boolean enabled) {
         btnNEXT.setEnabled(enabled);
+        miNEXT.setEnabled(enabled);
     }
 
     /**
@@ -129,6 +165,7 @@ public class NavigationAction extends CommonCallBack {
      */
     public static void setEnabledPrev(boolean enabled) {
         btnPREV.setEnabled(enabled);
+        miPREV.setEnabled(enabled);
     }
 
     @Override
index 9cb911e..38db213 100644 (file)
@@ -28,7 +28,10 @@ import javax.swing.KeyStroke;
 import org.scilab.modules.commons.OS;
 import org.scilab.modules.commons.gui.FindIconHelper;
 import org.scilab.modules.commons.gui.ScilabLAF;
+import org.scilab.modules.gui.bridge.menuitem.SwingScilabMenuItem;
 import org.scilab.modules.gui.events.callback.CommonCallBack;
+import org.scilab.modules.gui.menuitem.MenuItem;
+import org.scilab.modules.gui.menuitem.ScilabMenuItem;
 import org.scilab.modules.xcos.palette.view.PaletteManagerView;
 import org.scilab.modules.xcos.utils.XcosMessages;
 
@@ -39,9 +42,7 @@ import org.scilab.modules.xcos.utils.XcosMessages;
 public class ZoomAction extends CommonCallBack {
 
     private static final long serialVersionUID = 1L;
-    
-    private static final String LABEL_ZOOMIN = XcosMessages.ZOOM_IN;
-    private static final String LABEL_ZOOMOUT = XcosMessages.ZOOM_OUT;
+
     private static final String ICON_ZOOMIN = FindIconHelper.findIcon("zoom-in");
     private static final String ICON_ZOOMOUT = FindIconHelper.findIcon("zoom-out");
 
@@ -51,6 +52,8 @@ public class ZoomAction extends CommonCallBack {
 
     private static JButton btnZoomIn;
     private static JButton btnZoomOut;
+    private static MenuItem miZoomIn;
+    private static MenuItem miZoomOut;
 
     /**
      * Constructor
@@ -114,8 +117,9 @@ public class ZoomAction extends CommonCallBack {
     public static JButton createButtonZoomIn() {
         btnZoomIn = new JButton();
         ScilabLAF.setDefaultProperties(btnZoomIn);
+        btnZoomIn.setName(XcosMessages.ZOOM_IN);
         btnZoomIn.setIcon(new ImageIcon(ICON_ZOOMIN));
-        btnZoomIn.setToolTipText(LABEL_ZOOMIN);
+        btnZoomIn.setToolTipText(XcosMessages.ZOOM_IN);
         btnZoomIn.addActionListener(getCallBack());
         btnZoomIn.setFocusable(true);
         setEnabledZoomIn(true);
@@ -129,8 +133,9 @@ public class ZoomAction extends CommonCallBack {
     public static JButton createButtonZoomOut() {
         btnZoomOut = new JButton();
         ScilabLAF.setDefaultProperties(btnZoomOut);
+        btnZoomOut.setName(XcosMessages.ZOOM_OUT);
         btnZoomOut.setIcon(new ImageIcon(ICON_ZOOMOUT));
-        btnZoomOut.setToolTipText(LABEL_ZOOMOUT);
+        btnZoomOut.setToolTipText(XcosMessages.ZOOM_OUT);
         btnZoomOut.addActionListener(getCallBack());
         btnZoomOut.setFocusable(true);
         setEnabledZoomOut(true);
@@ -138,6 +143,34 @@ public class ZoomAction extends CommonCallBack {
     }
 
     /**
+     * Creates a menu item associated with the 'zoom in' action
+     * @return the menuitem
+     */
+    public static MenuItem createMenuZoomIn() {
+        miZoomIn = ScilabMenuItem.createMenuItem();
+        miZoomIn.setText(XcosMessages.ZOOM_IN);
+        miZoomIn.setCallback(getCallBack());
+        SwingScilabMenuItem menu = ((SwingScilabMenuItem) miZoomIn.getAsSimpleMenuItem());
+        menu.setIcon(new ImageIcon(ICON_ZOOMIN));
+        menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, ACCELERATOR_KEY));
+        return miZoomIn;
+    }
+
+    /**
+     * Creates a menu item associated with the 'zoom out' action
+     * @return the menuitem
+     */
+    public static MenuItem createMenuZoomOut() {
+        miZoomOut = ScilabMenuItem.createMenuItem();
+        miZoomOut.setText(XcosMessages.ZOOM_OUT);
+        miZoomOut.setCallback(getCallBack());
+        SwingScilabMenuItem menu = ((SwingScilabMenuItem) miZoomOut.getAsSimpleMenuItem());
+        menu.setIcon(new ImageIcon(ICON_ZOOMOUT));
+        menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, ACCELERATOR_KEY));
+        return miZoomOut;
+    }
+
+    /**
      * Create a new class instance
      * @return the instance
      */
@@ -168,24 +201,17 @@ public class ZoomAction extends CommonCallBack {
     public void actionPerformed(ActionEvent e) {
         String cmd = e.getActionCommand();
         if (cmd.isEmpty()) {
-            Object src = e.getSource();
-            if (btnZoomIn != null && src.equals(btnZoomIn)) {
-                PaletteManagerView.get().getPanel().zoomIn();
-            } else if (btnZoomOut != null && src.equals(btnZoomOut)) {
-                PaletteManagerView.get().getPanel().zoomOut();
-            }
-        } else if (OS.get() == MAC) {
-            if (cmd.equals("/")) {
-                PaletteManagerView.get().getPanel().zoomIn();
-            } else if (cmd.equals("=")) {
-                PaletteManagerView.get().getPanel().zoomOut();
-            }
-        } else {
-            if (cmd.equals("+") || cmd.equals("=")) {
-                PaletteManagerView.get().getPanel().zoomIn();
-            } else if (cmd.equals("-") || cmd.equals("_")) {
-                PaletteManagerView.get().getPanel().zoomOut();
-            }
+            cmd = ((JButton) e.getSource()).getName();
+        } else if ((OS.get() == MAC && cmd.equals("=")) || cmd.equals("-") || cmd.equals("_")) {
+            cmd = XcosMessages.ZOOM_OUT;
+        } else if (cmd.equals("/") || cmd.equals("+") || cmd.equals("=")) {
+            cmd = XcosMessages.ZOOM_IN;
+        }
+
+        if (cmd.equals(XcosMessages.ZOOM_IN)) {
+            PaletteManagerView.get().getPanel().zoomIn();
+        } else if (cmd.equals(XcosMessages.ZOOM_OUT)) {
+            PaletteManagerView.get().getPanel().zoomOut();
         }
     }
 
@@ -195,6 +221,7 @@ public class ZoomAction extends CommonCallBack {
      */
     public static void setEnabledZoomIn(boolean enabled) {
         btnZoomIn.setEnabled(enabled);
+        miZoomIn.setEnabled(enabled);
     }
 
     /**
@@ -203,6 +230,7 @@ public class ZoomAction extends CommonCallBack {
      */
     public static void setEnabledZoomOut(boolean enabled) {
         btnZoomOut.setEnabled(enabled);
+        miZoomOut.setEnabled(enabled);
     }
 
     @Override
index 3e03cac..d306d1c 100644 (file)
@@ -161,14 +161,29 @@ public class PaletteManagerView extends SwingScilabDockablePanel implements Simp
         /* Create the menu bar */
         final MenuBar menuBar = ScilabMenuBar.createMenuBar();
 
-        final Menu menu = ScilabMenu.createMenu();
-        menu.setText(XcosMessages.PALETTES);
-        menu.setMnemonic('P');
-        menuBar.add(menu);
-
-        menu.add(LoadAsPalAction.createMenu(null));
-        menu.addSeparator();
-        menu.add(ClosePalettesAction.createMenu(null));
+        // Palettes
+        final Menu palettes = ScilabMenu.createMenu();
+        palettes.setText(XcosMessages.PALETTES);
+        palettes.setMnemonic('P');
+        menuBar.add(palettes);
+
+        palettes.add(LoadAsPalAction.createMenu(null));
+        palettes.addSeparator();
+        palettes.add(ClosePalettesAction.createMenu(null));
+
+        // View
+        final Menu view = ScilabMenu.createMenu();
+        view.setText(XcosMessages.VIEW);
+        view.setMnemonic('V');
+        menuBar.add(view);
+
+        view.add(ZoomAction.createMenuZoomIn());
+        view.addSeparator();
+        view.add(ZoomAction.createMenuZoomOut());
+        view.addSeparator();
+        view.add(NavigationAction.createMenuPrev());
+        view.addSeparator();
+        view.add(NavigationAction.createMenuNext());
 
         setMenuBar(menuBar);