Salome HOME
Menus are improved
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / Action.java
index 1606a892e1deff67862652fbc01c10750a06e39b..57f84062a2f729a5732bc980673b966be85a1d37 100644 (file)
@@ -5,9 +5,12 @@ import java.util.Comparator;
 import java.util.ResourceBundle;
 
 import javax.security.auth.login.LoginContext;
+import javax.servlet.http.HttpServletRequest;
 
 import com.opensymphony.xwork2.ActionSupport;
 
+import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.interceptor.ServletRequestAware;
 import org.apache.struts2.interceptor.SessionAware;
 import org.apache.log4j.Logger;
 import org.splat.dal.bo.kernel.User;
@@ -19,14 +22,24 @@ import org.splat.dal.bo.som.DocumentType;
 import org.splat.wapp.Menu;
 
 
-public class Action extends ActionSupport implements SessionAware {
+public class Action extends ActionSupport implements ServletRequestAware, SessionAware {
 
        private   Map<String, Object>  session;
        private   String               mercode;
        private OpenStudy _openStudy;
        private OpenKnowledge _openKnowledge;
-
+       
+       private MenuBarSettings _menuBarSettings;
+       
+       private HttpServletRequest  request;
+
+       /**
+        * Serial version ID.
+        */
        private   static final long    serialVersionUID = -895295026709526501L;
+       /**
+        * Action logger.
+        */
     protected static final Logger  logger           = Logger.getLogger(Action.class);
 
     public class DocumentTypeComparator implements Comparator<DocumentType> {
@@ -131,9 +144,64 @@ public class Action extends ActionSupport implements SessionAware {
          session.put("study.open", open);
          return open;
     }
+    
+    /**
+     * Initialization the Context for menubar.
+     */
+    public void initializationContext() {
+       getMenuBarSettings().initializeInitialMenuProperties();
+       
+       if (session.get("study.open") == null) {
+               getMenuBarSettings().setIsStudyNull(true);
+               logger.debug("MKA: setIsStudyNull = true");
+       } else {
+               getMenuBarSettings().setIsStudyNull(false);
+               logger.debug("MKA: setIsStudyNull = false");
+       }
+       
+       if (session.get("knowledge.open") == null) {
+               getMenuBarSettings().setIsKnowledgeNull(true);
+               logger.debug("MKA: setIsKnowledgeNull = true");
+       } else {
+               getMenuBarSettings().setIsKnowledgeNull(false);
+               logger.debug("MKA: setIsKnowledgeNull = false");
+       }
+       
+       ApplicationRights userRights  = (ApplicationRights)session.get("user.rights");
+       
+       if (userRights.canCreateStudy()) {
+               getMenuBarSettings().setCanUserCreateStudy(true);
+       } else {
+               getMenuBarSettings().setCanUserCreateStudy(false);
+       }
+       
+       if (userRights.canManageDatabase()) {
+               getMenuBarSettings().setCanUserManageDatabase(true);
+       } else {
+               getMenuBarSettings().setCanUserManageDatabase(false);
+       } 
+       
+    }
+    
+    /**
+        * Initialization of the screen context for menu bar.
+        */
+       public void initializationScreenContext(final String menuProperty) {
+               
+               initializationContext();
+               getMenuBarSettings().intializeMenuBar(menuProperty);
+       }
 //  ==============================================================================================================================
 //  Getters and setters
 //  ==============================================================================================================================
+    
+       public void setServletRequest (HttpServletRequest request) {
+               this.request = request;
+       }
+       
+       public HttpServletRequest getServletRequest() {
+               return request;
+       }
 
     public String getErrorCode () {
 //  -----------------------------
@@ -152,4 +220,20 @@ public class Action extends ActionSupport implements SessionAware {
 //  ----------------------------------------------------               
          this.session = session;
        }
+       
+       /**
+        * Get the menuBarSettings.
+        * @return the menuBarSettings
+        */
+       public MenuBarSettings getMenuBarSettings() {
+               return _menuBarSettings;
+       }
+
+       /**
+        * Set the menuBarSettings.
+        * @param menuBarSettings the menuBarSettings to set
+        */
+       public void setMenuBarSettings(final MenuBarSettings menuBarSettings) {
+               _menuBarSettings = menuBarSettings;
+       }
 }
\ No newline at end of file