[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