]> SALOME platform Git repositories - tools/siman.git/commitdiff
Salome HOME
MenuAction mapping is fixed for the case if no item is selected. The default selectio...
authorrkv <rkv@opencascade.com>
Sun, 18 Nov 2012 11:35:46 +0000 (11:35 +0000)
committerrkv <rkv@opencascade.com>
Sun, 18 Nov 2012 11:35:46 +0000 (11:35 +0000)
The static menu is removed from Action class. The left menu is retrieved from the action context now.

Workspace/Siman/WebContent/jsp/menuitem.jsp
Workspace/Siman/src/org/splat/simer/Action.java
Workspace/Siman/src/org/splat/simer/MenuAction.java
Workspace/Siman/src/org/splat/wapp/Menu.java
Workspace/Siman/src/org/splat/wapp/SimpleMenu.java
Workspace/Siman/src/spring/applicationContext.xml
Workspace/Siman/src/struts.xml

index 2eb236ee822b0886c87bac375dd1cf26e713bd0b..57f88f809040d2aa0969d409d52c39dba4b20d58 100644 (file)
@@ -7,7 +7,8 @@
 <%@ page import="org.splat.simer.Action"%>
 <%@ taglib prefix="s" uri="/struts-tags"%>
 
-  <s:set var="menuname" value="leftMenuSettings.menuName" />
+  <%@page import="com.opensymphony.xwork2.ActionContext"%>
+<s:set var="menuname" value="leftMenuSettings.menuName" />
   <s:set var="namespace" value="leftMenuSettings.menuNamespace" />
 
 <!-- Display of the menu tab
@@ -21,7 +22,8 @@
   -->
   <div id=menuitem-box>
 <%
-       Menu menu = Action.getStaticMenu();
+    Action anAction = (Action)ActionContext.getContext().getActionInvocation().getAction();
+       Menu menu = anAction.getLeftMenuSettings().getMenu();
     boolean submenu = false;
     for (Iterator<MenuItem> listem = menu.asList().iterator(); listem.hasNext(); ) {
        MenuItem item  = listem.next();
index 40ee111325b32057fb65992153bffd8bf36590a4..4c0a974d44884447a467266cd2427f8474a7f37b 100644 (file)
@@ -106,11 +106,6 @@ public class Action extends ActionSupport implements ServletRequestAware,
         */
        private ApplicationSettings _applicationSettings;
 
-       /**
-        * Will be removed!!! It's temporary solution for menuitem.jsp
-        */
-       private static Menu staticMenu;
-
        /**
         * Comparator for sorting document types with localized names.
         */
@@ -379,7 +374,6 @@ public class Action extends ActionSupport implements ServletRequestAware,
                Menu menu = (Menu) _session.get("menu." + leftMenuProperty);
 
                getLeftMenuSettings().setMenu(menu);
-               setStaticMenu(menu);
                getLeftMenuSettings().setMenuName(menu.getName());
                getLeftMenuSettings().setMenuNamespace(menu.getNamespace());
        }
@@ -662,25 +656,6 @@ public class Action extends ActionSupport implements ServletRequestAware,
                return _leftMenuSettings;
        }
 
-       /**
-        * Get the staticMenu.
-        * 
-        * @return the staticMenu
-        */
-       public static Menu getStaticMenu() {
-               return staticMenu;
-       }
-
-       /**
-        * Set the staticMenu.
-        * 
-        * @param staticMenu
-        *            the staticMenu to set
-        */
-       public static void setStaticMenu(final Menu staticMenu) {
-               Action.staticMenu = staticMenu;
-       }
-
        /**
         * Set the leftMenuSettings.
         * 
index 3764e28160183124764026538f42b4c5ec3b2697..c9c0dc9eb6185b83b558fcf8ae8370392269adc3 100644 (file)
@@ -34,9 +34,12 @@ public class MenuAction extends Action {
 
                if (_item == null) { // Switch back to the menu, keeping the last selection
                        getSession().put("menu.open", menu); // Activates the menu
-                       _item = menu.getSelection();
-                       if (_item == null) {
-                               _item = "none";
+                       if (menu != null) {
+                               _item = menu.getSelection();
+                               if (_item == null) { // Select default menu item if nothing has been selected
+                                       _item = menu.getDefaultSelection();
+                                       menu.selects(_item);
+                               }
                        }
                } else { // Selection of another menu item
                        menu.selects(_item);
index b9016e39a6bae42bb6ba64474a8a4bd1d1e2abdf..e8a791e1f13289dea55737909f228b4dcb6ae2ae 100644 (file)
@@ -181,4 +181,22 @@ public class Menu {
                        _selection = name;
                }
        }
+
+       /**
+        * Get default selection.
+        * 
+        * @return the first item name or "none" if the menu is empty
+        */
+       public String getDefaultSelection() {
+               String res = Constants.NONE;
+               if ((!_indices.isEmpty()) && _indices.containsValue(0)) {
+                       for (String item : _indices.keySet()) {
+                               if (_indices.get(item) == 0) {
+                                       res = item;
+                                       break;
+                               }
+                       }
+               }
+               return res;
+       }
 }
\ No newline at end of file
index 5866d3ef0e69583a1d04bbafa93099c3c41226f0..2ea869b445316c3f31495c2457354d5934ed4733 100644 (file)
@@ -1,27 +1,28 @@
 package org.splat.wapp;
 
-
 public class SimpleMenu extends Menu {
 
-//  ==============================================================================================================================
-//  Constructors
-//  ==============================================================================================================================
+       // ==============================================================================================================================
+       // Constructors
+       // ==============================================================================================================================
+
+       public SimpleMenu(final String name) {
+               // -------------------------------
+               super(name);
+       }
 
-    public SimpleMenu (String name) {
-//  -------------------------------
-      super(name);
-    }
-    public SimpleMenu (String name, String scope) {
-//  ---------------------------------------------
-      super(name, scope);
-    }
+       public SimpleMenu(final String name, final String scope) {
+               // ---------------------------------------------
+               super(name, scope);
+       }
 
-//  ==============================================================================================================================
-//  Member functions
-//  ==============================================================================================================================
+       // ==============================================================================================================================
+       // Member functions
+       // ==============================================================================================================================
 
-    public void addItem (String name, String label, String icon, String url) {
-//  ------------------------------------------------------------------------
-      this.addItem(name, new MenuItem(label,icon,url) );
-    }
+       public void addItem(final String name, final String label,
+                       final String icon, final String url) {
+               // ------------------------------------------------------------------------
+               this.addItem(name, new MenuItem(label, icon, url));
+       }
 }
\ No newline at end of file
index d51647dc16ab9ba02c8e3a57f7097c284a9db63b..0fc145c7a57fe0ff3ca642b96c4be04ebbf146dd 100644 (file)
@@ -46,13 +46,13 @@ http://www.springframework.org/schema/context/spring-context-3.0.xsd">
        <bean id="titleBarSettings" class="org.splat.simer.TitleBarSettings"
                scope="session">
        </bean>
-       
-       <bean id="toolBarSettings"
-               class="org.splat.simer.ToolBarSettings" scope="session">
+
+       <bean id="toolBarSettings" class="org.splat.simer.ToolBarSettings"
+               scope="session">
        </bean>
-       
-       <bean id="leftMenuSettings"
-               class="org.splat.simer.LeftMenuSettings" scope="session">
+
+       <bean id="leftMenuSettings" class="org.splat.simer.LeftMenuSettings"
+               scope="session">
        </bean>
 
        <bean id="slidMenu" scope="session" abstract="true">
@@ -96,7 +96,7 @@ http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 
        <bean id="baseAction" class="org.splat.simer.Action"
                scope="prototype" abstract="true">
-        <property name="applicationSettings" ref="applicationSettings" />
+               <property name="applicationSettings" ref="applicationSettings" />
                <property name="openStudy" ref="openStudy" />
                <property name="openKnowledge" ref="openKnowledge" />
                <property name="menuBarSettings" ref="menuBarSettings" />
@@ -201,7 +201,7 @@ http://www.springframework.org/schema/context/spring-context-3.0.xsd">
        </bean>
 
        <bean id="menuAction" class="org.splat.simer.MenuAction"
-               scope="prototype">
+               scope="prototype" parent="baseAction">
        </bean>
 
        <bean id="notYetImplementedAction"
index c086ca465bf2c0d2f4650c7c7aa4ea2e8278f840..cee8182704683ab822201c459395b7c5d65eb7b2 100644 (file)
@@ -55,7 +55,8 @@
             <result name="admin-importuser" type="redirectAction">sadmin/select-file?nextAction=importuser</result>
             <result name="admin-scontext"   type="redirectAction">sadmin/scontext</result>
             <result name="admin-knowelm"    type="redirectAction">sadmin/knowlelm</result>
-            <result name="none">/menu.jsp?menu=%{menu}</result>
+            <!-- If no menu item is selected then go to home page -->
+            <result name="none" type="tiles">page.home</result>
         </action>
 
     </package>