Author: chris.laprun(a)jboss.com
Date: 2008-08-28 09:12:35 -0400 (Thu, 28 Aug 2008)
New Revision: 11756
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/EventWiringManagerBean.java
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/WindowBindingManagerBean.java
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/confirmDeleteCoordination.xhtml
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/editCoordination.xhtml
Log:
- Introduced CoordinationType and CoordinationBean for better generic management of some
operations.
"My plan is sheer elegance in its simplicity!"
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-08-28
11:12:43 UTC (rev 11755)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/CoordinationManagerBean.java 2008-08-28
13:12:35 UTC (rev 11756)
@@ -39,7 +39,10 @@
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.ResourceBundle;
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
@@ -56,6 +59,62 @@
private EventWiringManagerBean eventManager;
private WindowBindingManagerBean windowManager;
+ // 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<WindowBindingManagerBean> windowManagerHolder = new
ThreadLocal<WindowBindingManagerBean>();
+
+ private enum CoordinationType
+ {
+ wiring() {
+ String localizationKey()
+ {
+ return "COORDINATION_WIRING";
+ }
+ CoordinationBean bean()
+ {
+ return eventManagerHolder.get();
+ }},
+ parameter() {
+ String localizationKey()
+ {
+ return "COORDINATION_PARAMETER";
+ }
+ CoordinationBean bean()
+ {
+ return windowManagerHolder.get();
+ }};
+ abstract String localizationKey();
+ abstract CoordinationBean bean();
+ }
+
+ abstract static class CoordinationBean
+ {
+ protected CoordinationManagerBean managerBean;
+
+ public CoordinationManagerBean getManagerBean()
+ {
+ return managerBean;
+ }
+
+ public void setManagerBean(CoordinationManagerBean managerBean)
+ {
+ this.managerBean = managerBean;
+ }
+
+ public abstract void loadInfoFrom(Page page);
+
+ public abstract String delete(String name) throws IllegalCoordinationException;
+
+ public abstract String rename(String name);
+
+ public abstract void extractInfoFrom(Window window, PortletInfo info);
+ }
+
public PortalObjectId getSelectedObjectId()
{
//since this backing bean is in session, always check for new object request
@@ -193,8 +252,8 @@
// Extract metadata only on window children and only if needed
if (isExplicitEventsUsed() || isExplicitParametersUsed())
{
- eventManager.loadEventWirings(selectedPage);
- windowManager.loadWindowBindings(selectedPage);
+ eventManager.loadInfoFrom(selectedPage);
+ windowManager.loadInfoFrom(selectedPage);
Collection<PortalObject> children =
selectedPage.getChildren(PortalObject.WINDOW_MASK);
if (!children.isEmpty())
@@ -250,9 +309,60 @@
return PortalObjectId.parse(id, PortalObjectPath.LEGACY_BASE64_FORMAT);
}
- /** Bypass the rest of the life cycle and re-display page */
- public void renderResponse()
+ // Rename and delete operations
+
+ public void select(ActionEvent event)
{
- FacesContext.getCurrentInstance().renderResponse();
+ selectedName = getFacesParam(SELECTED_NAME);
+ selectedType = CoordinationType.valueOf(getFacesParam(SELECTED_TYPE));
+
+ // make manager accessible to CoordinationType
+ eventManagerHolder.set(eventManager);
+ windowManagerHolder.set(windowManager);
}
+
+ public String getSelectedName()
+ {
+ return selectedName;
+ }
+
+ public String getSelectedType()
+ {
+ Locale locale =
FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
+ ResourceBundle rb = ResourceBundle.getBundle(RESOURCE_NAME, locale);
+ return rb.getString(selectedType.localizationKey());
+ }
+
+ public String deleteSelected(ActionEvent actionEvent)
+ {
+ if(selectedType != null)
+ {
+ try
+ {
+ selectedType.bean().delete(selectedName);
+ }
+ catch (IllegalCoordinationException e)
+ {
+ e.printStackTrace(); //To change body of catch statement use File | Settings
| File Templates.
+ }
+ }
+
+ // reset selection
+ selectedType = null;
+ selectedName = null;
+ return null;
+ }
+
+ public String renameSelected()
+ {
+ if(selectedType != null)
+ {
+ selectedType.bean().rename(selectedName);
+ }
+
+ // reset selection
+ selectedType = null;
+ selectedName = null;
+ return null;
+ }
}
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/EventWiringManagerBean.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/EventWiringManagerBean.java 2008-08-28
11:12:43 UTC (rev 11755)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/EventWiringManagerBean.java 2008-08-28
13:12:35 UTC (rev 11756)
@@ -31,21 +31,16 @@
import org.jboss.portal.portlet.info.EventingInfo;
import org.jboss.portal.portlet.info.PortletInfo;
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.xml.namespace.QName;
-import java.text.MessageFormat;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
-import java.util.ResourceBundle;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -54,10 +49,8 @@
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
* @version $Revision$
*/
-public class EventWiringManagerBean
+public class EventWiringManagerBean extends CoordinationManagerBean.CoordinationBean
{
- private CoordinationManagerBean managerBean;
-
private Map<String, DisplayEventWiring> displayEventWirings;
private Map<QNameSelectItem, SortedSet<WindowSelectItem>>
eventNameToWindowSources;
private Map<QNameSelectItem, SortedSet<WindowSelectItem>>
eventNameToWindowDestinations;
@@ -68,25 +61,8 @@
private List<String> selectedDestinationWindows;
private EventWiringInfoCreator currentWiring;
- private String selectedForDeletionName;
- private String selectedForDeletionType;
- private static final String RESOURCE_NAME = "Resource";
- private static final String COORDINATION_UNKNOWN = "COORDINATION_UNKNOWN";
- private static final String COORDINATION_WIRING = "COORDINATION_WIRING";
- private static final String COORDINATION_PARAMETER =
"COORDINATION_PARAMETER";
-
- public CoordinationManagerBean getManagerBean()
+ public void loadInfoFrom(Page page)
{
- return managerBean;
- }
-
- public void setManagerBean(CoordinationManagerBean managerBean)
- {
- this.managerBean = managerBean;
- }
-
- public void loadEventWirings(Page page)
- {
Collection<EventWiringInfo> wiringInfos =
managerBean.getCoordinationService().getEventWirings(page);
if (!wiringInfos.isEmpty())
{
@@ -345,65 +321,26 @@
return null;
}
- public String getSelectedForDeletionName()
+ public String delete(String name) throws IllegalCoordinationException
{
- return selectedForDeletionName;
- }
+ DisplayEventWiring displayEvent = displayEventWirings.get(name);
- public String getSelectedForDeletionType()
- {
- Locale locale =
FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
- ResourceBundle rb = ResourceBundle.getBundle(RESOURCE_NAME, locale);
- String localizationKey = COORDINATION_UNKNOWN;
- if ("wiring".equals(selectedForDeletionType))
- {
- localizationKey = COORDINATION_WIRING;
- }
- else if ("parameter".equals(selectedForDeletionType))
- {
- localizationKey = COORDINATION_PARAMETER;
- }
-
- return MessageFormat.format(rb.getString(localizationKey), null);
- }
-
- public void selectWiringForDeletion(ActionEvent event)
- {
- selectedForDeletionName = managerBean.getFacesParam("wiring");
- selectedForDeletionType = managerBean.getFacesParam("type");
- }
-
- public String deleteWiring(ActionEvent actionEvent)
- {
- DisplayEventWiring displayEvent =
displayEventWirings.get(selectedForDeletionName);
-
if (displayEvent != null)
{
EventWiringInfo event = displayEvent.getEventInfo();
- try
- {
- managerBean.getCoordinationService().removeEventWiring(event);
- displayEventWirings.remove(selectedForDeletionName);
- }
- catch (IllegalCoordinationException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings
| File Templates.
- }
-
- // reset selected values
- selectedForDeletionName = null;
- selectedForDeletionType = null;
+ managerBean.getCoordinationService().removeEventWiring(event);
+ displayEventWirings.remove(name);
}
return null;
}
- public String renameWiring()
+ public String rename(String name)
{
- String wiring = managerBean.getFacesParam("wiring");
- DisplayEventWiring displayEvent = displayEventWirings.get(wiring);
+ DisplayEventWiring displayEvent = displayEventWirings.get(name);
if (displayEvent != null)
{
//todo: implement, rename operation should be on CoordinationConfigurator
+ EventWiringInfo event = displayEvent.getEventInfo();
}
throw new NotYetImplemented("renameWiring not yet implemented!");
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/WindowBindingManagerBean.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/WindowBindingManagerBean.java 2008-08-28
11:12:43 UTC (rev 11755)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/WindowBindingManagerBean.java 2008-08-28
13:12:35 UTC (rev 11756)
@@ -34,7 +34,6 @@
import org.jboss.portal.portlet.info.ParameterInfo;
import org.jboss.portal.portlet.info.PortletInfo;
-import javax.faces.event.ActionEvent;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.Collection;
@@ -49,9 +48,8 @@
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
* @version $Revision$
*/
-public class WindowBindingManagerBean
+public class WindowBindingManagerBean extends CoordinationManagerBean.CoordinationBean
{
- private CoordinationManagerBean managerBean;
private Map<String, String> windows;
private List<String> selectedWindows;
private Map<String, String> aliasBindings;
@@ -59,9 +57,7 @@
private String selectedRenderParameter;
private Map<String, String> availableRenderParameters;
private String windowBindingName;
- private String selectedForDeletionName;
- private String selectedForDeletionType;
-
+
private Map<String, DisplayParameterBinding> displayParameterBindings;
public Map<String, String> getWindows()
@@ -151,12 +147,6 @@
this.windows.put(window.getName(),
window.getId().toString(PortalObjectPath.LEGACY_BASE64_FORMAT));
}
- public void setManagerBean(CoordinationManagerBean managerBean)
- {
- this.managerBean = managerBean;
- }
-
-
public static class DisplayParameterBinding implements Comparable
{
private String id;
@@ -234,7 +224,7 @@
this.windows = new LinkedHashMap<String, String>(children.size());
}
- public void loadWindowBindings(Page page)
+ public void loadInfoFrom(Page page)
{
//aliasbindings prep for ui
for (AliasBindingInfo abInfo :
managerBean.getCoordinationService().getAliasBindings(page))
@@ -301,43 +291,26 @@
return null;
}
- public void selectBindingForDeletion(ActionEvent event)
+ public String delete(String name) throws IllegalCoordinationException
{
- selectedForDeletionName = managerBean.getFacesParam("binding");
- selectedForDeletionType = managerBean.getFacesParam("type");
- }
+ DisplayParameterBinding displayParam = displayParameterBindings.get(name);
- public String deleteBinding(ActionEvent actionEvent)
- {
- DisplayParameterBinding displayParam =
displayParameterBindings.get(selectedForDeletionName);
-
if (displayParam != null)
{
WindowBindingInfo bindingInfo = displayParam.getBindingInfo();
- try
- {
- managerBean.getCoordinationService().removeWindowBinding(bindingInfo);
- displayParameterBindings.remove(selectedForDeletionName);
- }
- catch (IllegalCoordinationException e)
- {
- e.printStackTrace(); //To change body of catch statement use File | Settings
| File Templates.
- }
-
- // reset selected values
- selectedForDeletionName = null;
- selectedForDeletionType = null;
+ managerBean.getCoordinationService().removeWindowBinding(bindingInfo);
+ displayParameterBindings.remove(name);
}
return null;
}
- public String renameWiring()
+ public String rename(String name)
{
- String wiring = managerBean.getFacesParam("binding");
- DisplayParameterBinding displayParam = displayParameterBindings.get(wiring);
+ DisplayParameterBinding displayParam = displayParameterBindings.get(name);
if (displayParam != null)
{
//todo: implement, rename operation should be on CoordinationConfigurator
+ WindowBindingInfo bindingInfo = displayParam.getBindingInfo();
}
throw new NotYetImplemented("renameWiring not yet implemented!");
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/confirmDeleteCoordination.xhtml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/confirmDeleteCoordination.xhtml 2008-08-28
11:12:43 UTC (rev 11755)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/confirmDeleteCoordination.xhtml 2008-08-28
13:12:35 UTC (rev 11756)
@@ -12,31 +12,31 @@
<ui:param name="portalObjectScreen"
value="#{bundle.COMMON_DELETE}"/>
<ui:define name="content">
- <f:subview rendered="#{empty
coordinationManager.selectedForDeletionName}">
+ <f:subview rendered="#{empty coordinationManager.selectedName}">
<p
class="portlet-msg-error">#{bundle.COMMON_INCONSISTENT_STATE}</p>
</f:subview>
- <f:subview rendered="#{not empty
coordinationManager.selectedForDeletionName}">
+ <f:subview rendered="#{not empty
coordinationManager.selectedName}">
<div class="portlet-msg">
<div class="portlet-msg-icon"><h:graphicImage
url="/img/msgIcon_Warning.gif" alt="/!\"/></div>
<div class="portlet-msg-body">
- <h3>#{bundle.COMMON_DELETE}  <h:outputText
value="#{coordinationManager.selectedForDeletionType}"/></h3>
+ <h3>#{bundle.COMMON_DELETE}  <h:outputText
value="#{coordinationManager.selectedType}"/></h3>
<p class="portlet-msg-alert">
#{bundle.COMMON_DELETING}
- <span
class="objectName">#{coordinationManager.selectedForDeletionName}</span>
- #{coordinationManager.selectedForDeletionType} #{bundle.COMMON_FROM}
+ <span
class="objectName">#{coordinationManager.selectedName}</span>
+ #{coordinationManager.selectedType} #{bundle.COMMON_FROM}
<c:if test="#{not empty
portalobjectmgr.selectedObjectParent.name}">
<span
class="objectName">#{portalobjectmgr.selectedObject.name}</span>
</c:if>
#{portalobjectmgr.selectedObject.typeName}!
</p>
- <p class="portlet-class">#{bundle.COMMON_SURE_DELETE}
#{coordinationManager.selectedForDeletionType}?</p>
+ <p class="portlet-class">#{bundle.COMMON_SURE_DELETE}
#{coordinationManager.selectedType}?</p>
<h:form>
<h:commandButton value="#{bundle.COMMON_DELETE}"
action="editCoordination"
-
actionListener="#{coordinationManager.deleteWiring}"
+
actionListener="#{coordinationManager.deleteSelected}"
styleClass="portlet-form-button
portlet-section-buttonrow">
</h:commandButton>
<h:commandButton value="#{bundle.COMMON_CANCEL}"
action="editCoordination"
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/editCoordination.xhtml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/editCoordination.xhtml 2008-08-28
11:12:43 UTC (rev 11755)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/editCoordination.xhtml 2008-08-28
13:12:35 UTC (rev 11756)
@@ -79,13 +79,14 @@
</h:column>
<h:column>
<f:facet name="header">Actions</f:facet>
- <h:commandLink
action="#{windowCoordination.renameWiring}">
+ <h:commandLink
action="#{coordinationManager.renameSelected}"
actionListener="#{coordinationManager.select}">
<h:outputText styleClass="actionRename"
value="#{bundle.RENAME}"/>
- <f:param name="binding"
value="#{binding.name}"/>
+ <f:param name="name"
value="#{binding.name}"/>
+ <f:param name="type"
value="parameter"/>
</h:commandLink> |
- <h:commandLink action="confirmCoordinationDeletion"
actionListener="#{windowCoordination.selectBindingForDeletion}">
+ <h:commandLink action="confirmCoordinationDeletion"
actionListener="#{coordinationManager.select}">
<h:outputText styleClass="actionDelete"
value="#{bundle.COMMON_DELETE}"/>
- <f:param name="binding"
value="#{binding.name}"/>
+ <f:param name="name"
value="#{binding.name}"/>
<f:param name="type"
value="parameter"/>
</h:commandLink>
</h:column>
@@ -196,13 +197,14 @@
<h:outputText
value="#{bundle.COORDINATION_EVENT_EXISTING_ACTIONS}"/>
</f:facet>
- <h:commandLink
action="#{eventCoordination.renameWiring}">
+ <h:commandLink action="#{coordinationManager.renameSelected}"
actionListener="#{coordinationManager.select}">
<h:outputText styleClass="actionRename"
value="#{bundle.RENAME}"/>
- <f:param name="wiring"
value="#{wiring.name}"/>
+ <f:param name="name"
value="#{wiring.name}"/>
+ <f:param name="type" value="wiring"/>
</h:commandLink> |
- <h:commandLink action="confirmCoordinationDeletion"
actionListener="#{eventCoordination.selectWiringForDeletion}">
+ <h:commandLink action="confirmCoordinationDeletion"
actionListener="#{coordinationManager.select}">
<h:outputText styleClass="actionDelete"
value="#{bundle.COMMON_DELETE}"/>
- <f:param name="wiring"
value="#{wiring.name}"/>
+ <f:param name="name"
value="#{wiring.name}"/>
<f:param name="type" value="wiring"/>
</h:commandLink>
</h:column>