[portal-commits] JBoss Portal SVN: r11802 - in branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui: coordination and 1 other directory.

portal-commits at lists.jboss.org portal-commits at lists.jboss.org
Thu Sep 4 07:29:23 EDT 2008


Author: thomas.heute at jboss.com
Date: 2008-09-04 07:29:22 -0400 (Thu, 04 Sep 2008)
New Revision: 11802

Modified:
   branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java
   branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/AliasBindingManagerBean.java
   branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/CoordinationManagerBean.java
Log:
Fixing persistence issue.
More issues to fix:
	- renaming an alias fails
	- deleting an alias fails
	- there is probably places that requires a CoordinationManagerBean.refresh() call
	(i've only tested aliases)

Modified: branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java	2008-09-03 22:56:23 UTC (rev 11801)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java	2008-09-04 11:29:22 UTC (rev 11802)
@@ -517,6 +517,7 @@
          if (object != null)
          {
             selectObject(poid);
+            selectedObject = object;
 
             //
             switch (object.getType())

Modified: branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/AliasBindingManagerBean.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/AliasBindingManagerBean.java	2008-09-03 22:56:23 UTC (rev 11801)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/AliasBindingManagerBean.java	2008-09-04 11:29:22 UTC (rev 11802)
@@ -144,6 +144,7 @@
             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
          }
       }
+      managerBean.refresh();
       return resetSelection();
    }
 

Modified: branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/CoordinationManagerBean.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/CoordinationManagerBean.java	2008-09-03 22:56:23 UTC (rev 11801)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/CoordinationManagerBean.java	2008-09-04 11:29:22 UTC (rev 11802)
@@ -22,6 +22,15 @@
 
 package org.jboss.portal.core.admin.ui.coordination;
 
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+
 import org.jboss.portal.common.util.ParameterValidation;
 import org.jboss.portal.core.admin.ui.PortalObjectManagerBean;
 import org.jboss.portal.core.controller.coordination.CoordinationConfigurator;
@@ -38,13 +47,6 @@
 import org.jboss.portal.core.model.portal.Window;
 import org.jboss.portal.portlet.info.PortletInfo;
 
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
-import java.util.Collection;
-import java.util.Locale;
-import java.util.Map;
-import java.util.ResourceBundle;
-
 /**
  * @author <a href="mailto:chris.laprun at jboss.com">Chris Laprun</a>
  * @version $Revision$
@@ -53,57 +55,70 @@
 {
    private PortalObjectManagerBean pomb;
 
-   private Page selectedPage;
+   private Map<String, CoordinationManagerBean.CoordinationBean> managers = new HashMap<String, CoordinationManagerBean.CoordinationBean>();
 
-   private PortalObjectId selectedObjectId;
-
-   private AliasBindingManagerBean aliasManager;
-   private EventWiringManagerBean eventManager;
-   private ParameterBindingManagerBean parameterManager;
-
    // Handle selections for deletion and renaming
    private static final String RESOURCE_NAME = "Resource";
    private static final String SELECTED_NAME = "name";
    private static final String SELECTED_TYPE = "type";
+
    private String selectedName;
    private CoordinationType selectedType;
-   private static ThreadLocal<EventWiringManagerBean> eventManagerHolder = new ThreadLocal<EventWiringManagerBean>();
-   private static ThreadLocal<ParameterBindingManagerBean> parameterManagerHolder = new ThreadLocal<ParameterBindingManagerBean>();
-   private static ThreadLocal<AliasBindingManagerBean> aliasManagerHolder = new ThreadLocal<AliasBindingManagerBean>();
    private String newName;
    static final String EDIT_COORDINATION = "editCoordination";
 
    private enum CoordinationType
    {
       wiring() {
+         private CoordinationBean bean;
+         
          String localizationKey()
          {
             return "COORDINATION_WIRING";
          }
-         CoordinationBean bean()
+         CoordinationBean getBean()
          {
-            return eventManagerHolder.get();
+            return bean;
+         }
+         void setBean(CoordinationBean bean)
+         {
+            this.bean = bean;
          }},
       parameter() {
+         private CoordinationBean bean;
+            
          String localizationKey()
          {
             return "COORDINATION_PARAMETER";
          }
-         CoordinationBean bean()
+         CoordinationBean getBean()
          {
-            return parameterManagerHolder.get();
+            return bean;
+         }
+         void setBean(CoordinationBean bean)
+         {
+            this.bean = bean;
          }},
        alias() {
+          private CoordinationBean bean;
+            
           String localizationKey()
           {
              return "COORDINATION_ALIAS";
-          }CoordinationBean bean()
+          }
+          CoordinationBean getBean()
           {
-             return aliasManagerHolder.get();
+             return bean;
+          }
+          void setBean(CoordinationBean bean)
+          {
+             this.bean = bean;
           }};
       abstract String localizationKey();
 
-      abstract CoordinationBean bean();
+      abstract CoordinationBean getBean();
+
+      abstract void setBean(CoordinationBean bean);
    }
 
    abstract static class CoordinationBean
@@ -147,45 +162,15 @@
       }
    }
 
-   public PortalObjectId getSelectedObjectId()
-   {
-      //since this backing bean is in session, always check for new object request
-      String id = getFacesParam("id");
-      if (id != null)
-      {
-         selectedObjectId = parsePortalObjectId(id);
-      }
-      else
-      {
-         selectedObjectId = pomb.getSelectedObject().getId();
-      }
-      return selectedObjectId;
-   }
-
-   public void setSelectedObjectId(PortalObjectId selectedObjectId)
-   {
-      this.selectedObjectId = selectedObjectId;
-   }
-
    public Page getSelectedPage()
    {
-      // if we don't already have a selected page or we have selected a different object
-      if (selectedPage == null || !selectedPage.getId().equals(selectedObjectId))
+      PortalObject portalObject = pomb.getSelectedObject();
+      if (portalObject.getType() != PortalObject.TYPE_PAGE)
       {
-         PortalObject portalObject = pomb.getPortalObjectContainer().getObject(getSelectedObjectId());
-         if (portalObject.getType() != PortalObject.TYPE_PAGE)
-         {
-            throw new IllegalArgumentException("Coordination can only be dealt with at the page level!");
-         }
-
-         selectedPage = (Page)portalObject;
-
-         //perform surgery on portalobjectmanager
-         pomb.selectObject(selectedPage.getId());
-         return selectedPage;
+         throw new IllegalArgumentException("Coordination can only be dealt with at the page level!");
       }
 
-      return selectedPage;
+      return (Page)portalObject;
    }
 
    public PortalObjectManagerBean getPomb()
@@ -215,35 +200,35 @@
 
    public EventWiringManagerBean getEventManager()
    {
-      return eventManager;
+      return (EventWiringManagerBean)managers.get(CoordinationType.wiring.name());
    }
 
    public void setEventManager(EventWiringManagerBean eventManager)
    {
-      this.eventManager = eventManager;
-      this.eventManager.setManagerBean(this);
+      eventManager.setManagerBean(this);
+      this.managers.put(CoordinationType.wiring.name(), eventManager);
    }
 
    public ParameterBindingManagerBean getParameterManager()
    {
-      return parameterManager;
+      return (ParameterBindingManagerBean)managers.get(CoordinationType.parameter.name());
    }
 
    public void setParameterManager(ParameterBindingManagerBean parameterManager)
    {
-      this.parameterManager = parameterManager;
-      this.parameterManager.setManagerBean(this);
+      parameterManager.setManagerBean(this);
+      this.managers.put(CoordinationType.parameter.name(), parameterManager);
    }
 
    public AliasBindingManagerBean getAliasManager()
    {
-      return aliasManager;
+      return (AliasBindingManagerBean)managers.get(CoordinationType.alias.name());
    }
 
    public void setAliasManager(AliasBindingManagerBean aliasManager)
    {
-      this.aliasManager = aliasManager;
-      this.aliasManager.setManagerBean(this);
+      aliasManager.setManagerBean(this);
+      this.managers.put(CoordinationType.alias.name(), aliasManager);
    }
 
    public boolean isExplicitEventsUsed()
@@ -300,49 +285,57 @@
    {
       try
       {
-         // make sure we use the proper selected page
-         selectedObjectId = pomb.getSelectedPortalObjectId();
-
          // reset the different managers as they are in session scope but need to be re-initialized each time a new
          // page is reloaded, also need to update the holders for the different managers
-         aliasManager = replaceInSession("aliasManager", new AliasBindingManagerBean(this));
-         aliasManagerHolder.set(aliasManager);
-         eventManager = replaceInSession("eventManager", new EventWiringManagerBean(this));
-         eventManagerHolder.set(eventManager);
-         parameterManager = replaceInSession("parameterManager", new ParameterBindingManagerBean(this));
-         parameterManagerHolder.set(parameterManager);
+         managers.put(CoordinationType.alias.name(), replaceInSession("aliasManager", new AliasBindingManagerBean(this)));
+         managers.put(CoordinationType.wiring.name(), replaceInSession("eventManager", new EventWiringManagerBean(this)));
+         managers.put(CoordinationType.parameter.name(), replaceInSession("parameterManager", new ParameterBindingManagerBean(this)));
 
-         // Extract metadata only on window children and only if needed
-         if (isExplicitEventsUsed() || isExplicitParametersUsed())
+         Page selectedPage = getSelectedPage();
+
+         if (isExplicitEventsUsed())
          {
+            managers.get(CoordinationType.wiring.name()).loadInfoFrom(selectedPage);
+         }
+         if (isExplicitParametersUsed())
+         {
+            managers.get(CoordinationType.parameter.name()).loadInfoFrom(selectedPage);
+         }
+         managers.get(CoordinationType.alias.name()).loadInfoFrom(selectedPage);
 
-            eventManager.loadInfoFrom(selectedPage);
-            parameterManager.loadInfoFrom(selectedPage);
-            aliasManager.loadInfoFrom(selectedPage);
+         Collection<PortalObject> children = selectedPage.getChildren(PortalObject.WINDOW_MASK);
+         if (!children.isEmpty())
+         {
+            if (isExplicitParametersUsed())
+            {
+               ((ParameterBindingManagerBean)managers.get(CoordinationType.parameter.name())).initKnowing(children);
+            }
+            ((AliasBindingManagerBean)managers.get(CoordinationType.alias.name())).initKnowing(children);
 
-            Collection<PortalObject> children = selectedPage.getChildren(PortalObject.WINDOW_MASK);
-            if (!children.isEmpty())
+            for (PortalObject po : children)
             {
-               parameterManager.initKnowing(children);
-               aliasManager.initKnowing(children);
-
-               for (PortalObject po : children)
+               Window window = (Window)po;
+               if (ContentType.PORTLET.equals(window.getContentType()))
                {
-                  Window window = (Window)po;
-                  if (ContentType.PORTLET.equals(window.getContentType()))
+                  PortletContent pc = (PortletContent)window.getContent();
+                  Instance instance = pomb.getInstanceContainer().getDefinition(pc.getInstanceRef());
+                  if (instance != null)
                   {
-                     PortletContent pc = (PortletContent)window.getContent();
-                     Instance instance = pomb.getInstanceContainer().getDefinition(pc.getInstanceRef());
                      PortletInfo info = instance.getPortlet().getInfo();
 
-                     parameterManager.extractInfoFrom(window, info);
-                     eventManager.extractInfoFrom(window, info);
-                     aliasManager.extractInfoFrom(window, info);
+                     if (isExplicitParametersUsed())
+                     {
+                        managers.get(CoordinationType.parameter.name()).extractInfoFrom(window, info);
+                     }
+                     if (isExplicitEventsUsed())
+                     {
+                        managers.get(CoordinationType.wiring.name()).extractInfoFrom(window, info);
+                     }
+                     managers.get(CoordinationType.alias.name()).extractInfoFrom(window, info);
                   }
                }
             }
          }
-
       }
       catch (Exception e)
       {
@@ -448,11 +441,19 @@
    {
       selectedName = getFacesParam(SELECTED_NAME);
       selectedType = CoordinationType.valueOf(getFacesParam(SELECTED_TYPE));
+      
+      selectedType.setBean(managers.get(getFacesParam(SELECTED_TYPE)));
 
+      /*
       // make manager accessible to CoordinationType 
       eventManagerHolder.set(eventManager);
+<<<<<<< .mine
+      parameterBindingManagerHolder.set(parameterManager);
+=======
       parameterManagerHolder.set(parameterManager);
+>>>>>>> .r11801
       aliasManagerHolder.set(aliasManager);
+      */
    }
 
    public String getSelectedName()
@@ -469,11 +470,12 @@
 
    public String deleteSelected(ActionEvent actionEvent)
    {
+      select(actionEvent);
       if (selectedType != null)
       {
          try
          {
-            selectedType.bean().delete(selectedName);
+            selectedType.getBean().delete(selectedName);
             refresh();
          }
          catch (IllegalCoordinationException e)
@@ -491,10 +493,10 @@
    /**
     * Refreshes the page data.
     */
-   private void refresh()
+   public void refresh()
    {
       // need to make sure that POMB has a selection...
-      pomb.selectObject(selectedObjectId);
+//      pomb.selectObject(selectedObjectId);
       editCoordination();
    }
 
@@ -512,7 +514,7 @@
    {
       if (selectedType != null)
       {
-         selectedType.bean().rename(selectedName, newName);
+         selectedType.getBean().rename(selectedName, newName);
          refresh();
       }
 
@@ -520,6 +522,6 @@
       selectedType = null;
       selectedName = null;
       newName = null;
-      return EDIT_COORDINATION;
+      return ""; //EDIT_COORDINATION;
    }
 }




More information about the portal-commits mailing list