Author: wesleyhales
Date: 2008-08-14 00:14:23 -0400 (Thu, 14 Aug 2008)
New Revision: 11694
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CoordinationAction.java
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/editCoordination.xhtml
Log:
window binding updates, first working draft - wip
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CoordinationAction.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CoordinationAction.java 2008-08-12
18:29:05 UTC (rev 11693)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/CoordinationAction.java 2008-08-14
04:14:23 UTC (rev 11694)
@@ -35,6 +35,7 @@
import org.jboss.portal.core.model.portal.Page;
import org.jboss.portal.core.model.portal.PortalObject;
import org.jboss.portal.core.model.portal.PortalObjectId;
+import org.jboss.portal.core.model.portal.PortalObjectPath;
import org.jboss.portal.core.model.portal.Window;
import org.jboss.portal.portlet.info.EventInfo;
import org.jboss.portal.portlet.info.EventingInfo;
@@ -47,11 +48,11 @@
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.xml.namespace.QName;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -67,8 +68,10 @@
{
private PortalObjectManagerBean pomb;
- private Map<String, PortalObjectId> windows;
+ private Map<String, String> windows;
+ private List<String> selectedWindows;
+
private Map<String, EventWiringInfo> eventWirings;
private Map<String, DisplayEventWiring> displayEventWirings;
@@ -79,39 +82,73 @@
private Map<String, String> aliasBindings;
- private ArrayList<SelectItem> windowBindings = new
ArrayList<SelectItem>();
+ private Map<String, Map<String,String>> windowBindings;
- private List<ParameterInfo> availablePRPs;
+ private List<String> selectedRenderParameters;
- private List<SelectItem> selectedWindowBindings = new
ArrayList<SelectItem>();
+ private Map<String, String> availableRenderParameters;
private String stringStub;
+ private PortalObject selectedObject;
+
+ private PortalObjectId selectedObjectId;
+
+ private String windowBindingName;
+
public PortalObjectId getSelectedObjectId()
{
- return pomb.getSelectedPortalObjectId();
+ //since this 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 PortalObject getSelectedObject()
{
- System.out.println("------getSelectedObjectId()---" +
getSelectedObjectId());
- return pomb.getPortalObjectContainer().getObject(getSelectedObjectId());
+ selectedObject = pomb.getPortalObjectContainer().getObject(getSelectedObjectId());
+ //perform surgery on portalobjectmanager
+
pomb.selectObject(pomb.getPortalObjectContainer().getObject(selectedObject.getId()));
+ return selectedObject;
}
- public Map<String, PortalObjectId> getWindows()
+ public void setSelectedObject(PortalObject selectedObject)
{
- if (windows == null)
- {
- windows = new HashMap<String, PortalObjectId>();
- }
+ this.selectedObject = selectedObject;
+ }
+
+ public Map<String, String> getWindows()
+ {
return windows;
}
- public void setWindows(Map<String, PortalObjectId> windows)
+ public void setWindows(Map<String, String> windows)
{
this.windows = windows;
}
+ public List<String> getSelectedWindows()
+ {
+ return selectedWindows;
+ }
+
+ public void setSelectedWindows(List<String> selectedWindows)
+ {
+ this.selectedWindows = selectedWindows;
+ }
+
public PortalObjectManagerBean getPomb()
{
return pomb;
@@ -136,38 +173,44 @@
this.aliasBindings = aliasBindings;
}
- public ArrayList<SelectItem> getWindowBindings()
+ public Map<String, String> getAvailableRenderParameters()
{
+ return availableRenderParameters;
+ }
+
+ public void setAvailableRenderParameters(Map<String, String>
availableRenderParameters)
+ {
+ this.availableRenderParameters = availableRenderParameters;
+ }
+
+ public Map<String, Map<String, String>> getWindowBindings()
+ {
return windowBindings;
}
- public void setWindowBindings(ArrayList<SelectItem> windowBindings)
+ public void setWindowBindings(Map<String, Map<String, String>>
windowBindings)
{
this.windowBindings = windowBindings;
}
- public List<ParameterInfo> getAvailablePRPs()
+ public List<String> getSelectedRenderParameters()
{
- if (availablePRPs == null)
- {
- availablePRPs = new ArrayList<ParameterInfo>();
- }
- return availablePRPs;
+ return selectedRenderParameters;
}
- public void setAvailablePRPs(List<ParameterInfo> availablePRPs)
+ public void setSelectedRenderParameters(List<String> selectedRenderParameters)
{
- this.availablePRPs = availablePRPs;
+ this.selectedRenderParameters = selectedRenderParameters;
}
- public List<SelectItem> getSelectedWindowBindings()
+ public String getWindowBindingName()
{
- return selectedWindowBindings;
+ return windowBindingName;
}
- public void setSelectedWindowBindings(List<SelectItem> selectedWindowBindings)
+ public void setWindowBindingName(String windowBindingName)
{
- this.selectedWindowBindings = selectedWindowBindings;
+ this.windowBindingName = windowBindingName;
}
public String getStringStub()
@@ -183,7 +226,6 @@
public String editCoordination() throws ConversionException
{
PortalObject portalObject = getSelectedObject();
-
if (portalObject.getType() == PortalObject.TYPE_PAGE)
{
@@ -212,6 +254,8 @@
}
}
+ loadWindowBindings();
+
//aliasbindings prep for ui
for (Object o : pomb.getCoordinationService().getAliasBindings(page))
{
@@ -222,25 +266,14 @@
}
}
- //windowbindings prep for ui
- for (Object o : pomb.getCoordinationService().getWindowBindings(page))
- {
- WindowBindingInfo wbInfo = (WindowBindingInfo)o;
- for (Object o1 : wbInfo.getWindows().entrySet())
- {
- Map.Entry entry = (Map.Entry)o1;
- Window paramName = (Window)entry.getKey();
- QName paramValue = (QName)entry.getValue();
- getWindowBindings().add(new SelectItem(paramName.getName(),
paramValue.toString()));
- //System.out.println("-------paramName.getName()-" +
paramName.getName());
- }
- }
-
// Extract metadata only on window children
+ availableRenderParameters = new LinkedHashMap<String, String>();
+ windows = new LinkedHashMap<String, String>();
for (PortalObject po : page.getChildren(PortalObject.WINDOW_MASK))
{
Window window = (Window)po;
- getWindows().put(window.getName(), window.getId());
+ String temp = window.getId() + "";
+ windows.put(window.getName(),
window.getId().toString(PortalObjectPath.LEGACY_BASE64_FORMAT));
if (ContentType.PORTLET.equals(window.getContentType()))
{
PortletContent pc = (PortletContent)window.getContent();
@@ -252,7 +285,7 @@
for (Object o : navInfo.getPublicParameters())
{
ParameterInfo pInfo = (ParameterInfo)o;
- getAvailablePRPs().add(pInfo);
+ availableRenderParameters.put(pInfo.getName().toString(),
pInfo.getName().toString());
// System.out.println("key---------" + pInfo.getName());
// System.out.println("key---------" + pInfo.getId());
// System.out.println("key---------" +
pInfo.getDescription());
@@ -313,6 +346,17 @@
return
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(name);
}
+ /**
+ * Parse PortalObjectId for given portlet object.
+ *
+ * @param id
+ * @return
+ */
+ private PortalObjectId parsePortalObjectId(String id)
+ {
+ return PortalObjectId.parse(id, PortalObjectPath.LEGACY_BASE64_FORMAT);
+ }
+
/** Bypass the rest of the life cycle and re-display page */
public void renderResponse()
{
@@ -323,11 +367,19 @@
public boolean isExplicitEventsUsed()
{
- Map<String, String> props = getSelectedObject().getProperties();
- if (props != null)
+ try
{
- return
!Boolean.valueOf(props.get("coordination.event.implicit_mode"));
+ Map<String, String> props = getSelectedObject().getProperties();
+ if (props != null)
+ {
+ return
!Boolean.valueOf(props.get("coordination.event.implicit_mode"));
+ }
}
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+
return false;
}
@@ -394,18 +446,18 @@
{
String wiring = getFacesParam("wiring");
EventWiringInfo event = eventWirings.get(wiring);
- // todo: implement, rename operation should be on CoordinationConfigurator
+ //todo: implement, rename operation should be on CoordinationConfigurator
throw new NotYetImplemented("renameWiring not yet implemented!");
}
/**
* Listener for explicit event checkbox
+ *
* @param event
*/
public void explicitEventsListener(ValueChangeEvent event)
{
-
}
public static class DisplayEventWiring implements Comparable
@@ -476,7 +528,7 @@
public Window getWindow()
{
- return (Window) getValue();
+ return (Window)getValue();
}
}
@@ -490,12 +542,12 @@
public QName getQName()
{
- return (QName) getValue();
+ return (QName)getValue();
}
public int compareTo(Object o)
{
- QNameSelectItem other = (QNameSelectItem) o;
+ QNameSelectItem other = (QNameSelectItem)o;
return getQName().toString().compareTo(other.getQName().toString());
}
@@ -508,22 +560,69 @@
@Override
public boolean equals(Object obj)
{
- if(!(obj instanceof QNameSelectItem))
+ if (!(obj instanceof QNameSelectItem))
{
return false;
}
- QNameSelectItem item = (QNameSelectItem) obj;
+ QNameSelectItem item = (QNameSelectItem)obj;
return getQName().equals(item.getQName());
}
}
+ private void loadWindowBindings()
+ {
+ PortalObject portalObject = getSelectedObject();
+ if (portalObject.getType() == PortalObject.TYPE_PAGE)
+ {
+ Page page = (Page)portalObject;
+ //windowbindings prep for ui
+ windowBindings = new LinkedHashMap<String, Map<String, String>>();
+ for (Object o : pomb.getCoordinationService().getWindowBindings(page))
+ {
+ WindowBindingInfo wbInfo = (WindowBindingInfo)o;
+ for (Object o1 : wbInfo.getWindows().entrySet())
+ {
+ Map.Entry entry = (Map.Entry)o1;
+ Map tempMap = new LinkedHashMap<String,String>();
+ Window paramName = (Window)entry.getKey();
+ QName paramValue = (QName)entry.getValue();
+ tempMap.put(paramValue.toString(), paramName.getName());
+ windowBindings.put(wbInfo.getId(),tempMap);
+ }
+ }
+ }
+ }
+
public void createWindowBinding(ActionEvent event)
{
- //String id = (String) event.getComponent().getAttributes().get("");
- for (SelectItem binding : getSelectedWindowBindings())
+
+ System.out.println("-----------++++++++++ " +
selectedRenderParameters.size());
+ Map<Window, QName> windowBinding = null;
+
+ for (String window : selectedWindows)
{
- System.out.println("-----------" + binding);
+ windowBinding = new LinkedHashMap<Window, QName>();
+ PortalObject portalObject =
pomb.getPortalObjectContainer().getObject(parsePortalObjectId(window));
+
+ if (portalObject.getType() == PortalObject.TYPE_WINDOW)
+ {
+ for (String binding : selectedRenderParameters)
+ {
+ System.out.println("----------window name-" +
portalObject.getName());
+ System.out.println("----------namespace-" + binding);
+ windowBinding.put((Window)portalObject, QName.valueOf(binding));
+ }
+ }
}
+ try
+ {
+ pomb.getCoordinationService().setWindowBinding(windowBindingName,
windowBinding);
+ }
+ catch (IllegalCoordinationException e)
+ {
+ e.printStackTrace(); //To change body of catch statement use File | Settings |
File Templates.
+ }
+ loadWindowBindings();
}
}
Modified:
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml 2008-08-12
18:29:05 UTC (rev 11693)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/faces-config.xml 2008-08-14
04:14:23 UTC (rev 11694)
@@ -346,7 +346,7 @@
<managed-bean>
<managed-bean-name>coordinationAction</managed-bean-name>
<managed-bean-class>org.jboss.portal.core.admin.ui.actions.CoordinationAction</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
+ <managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>pomb</property-name>
<value>#{portalobjectmgr}</value>
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-12
18:29:05 UTC (rev 11693)
+++
branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/editCoordination.xhtml 2008-08-14
04:14:23 UTC (rev 11694)
@@ -17,40 +17,48 @@
<hr/>
<h:form>
- <ui:remove>
- <div class="float-left quarter-width">
- #{bundle.COORDINATION_WINDOWS}
- <h:selectManyListbox size="5"
value="#{coordinationAction.stringStub}">
- <f:selectItems value="#{coordinationAction.windows}"/>
- </h:selectManyListbox>
- </div>
- </ui:remove>
+ <h:messages />
- <div class="float-left quarter-width">
- #{bundle.COORDINATION_WINDOW_BINDINGS}
- <h:selectManyListbox size="5"
value="#{coordinationAction.selectedWindowBindings}">
- <f:selectItems
value="#{coordinationAction.windowBindings}"/>
- </h:selectManyListbox>
- </div>
+ <div class="float-left quarter-width">
+ Available Render Parameter Names
+ <h:selectManyListbox size="5"
value="#{coordinationAction.selectedRenderParameters}">
+ <f:selectItems
value="#{coordinationAction.availableRenderParameters}"/>
+ </h:selectManyListbox>
+ </div>
- <ui:remove>
- <div class="float-left quarter-width">
- <h:inputText value="#{coordinationAction.stringStub}"/>
- </div>
- </ui:remove>
- <h:commandButton
actionListener="#{coordinationAction.createWindowBinding}" value="Create
Binding" >
- <f:param name="id"
value="#{coordinationAction.selectedObjectId}"/>
- </h:commandButton>
+ <div class="float-left quarter-width">
+ #{bundle.COORDINATION_WINDOWS}
+ <h:selectManyListbox size="5"
value="#{coordinationAction.selectedWindows}">
+ <f:selectItems value="#{coordinationAction.windows}"/>
+ </h:selectManyListbox>
+
+
+ </div>
+
+ <div class="float-left quarter-width">
+ <h:inputText
value="#{coordinationAction.windowBindingName}"/>
+ </div>
+
+ <h:commandButton
actionListener="#{coordinationAction.createWindowBinding}" value="Create
Binding" />
<br class="clear"/>
+ <hr/>
+ #{coordinationAction.windowBindings}
+ <hr/>
+ <ui:repeat var="wb"
value="#{coordinationAction.windowBindings}">
+ #{wb}
+ </ui:repeat>
+
</h:form>
<!-- Manage existing parameter bindings -->
<h3 class="sectionTitle tenpx-top-bottom">Manage Existing
Parameter Bindings</h3>
<div class="float-left quarter-width">
- <h:selectManyListbox size="5"
value="#{coordinationAction.stringStub}">
+ <ui:remove>
+ <h:selectManyListbox size="5"
value="#{coordinationAction.selectedRenderParameters}">
<f:selectItems value="#{coordinationAction.windows}"/>
</h:selectManyListbox>
+ </ui:remove>
</div>
<div class="float-left quarter-width">
<h:inputText value="#{coordinationAction.stringStub}"/>
@@ -62,9 +70,11 @@
<h2
class="portlet-area-header">#{coordinationAction.selectedObject.name}
#{bundle.COORDINATION_EVENT_WIRINGS}</h2>
<h:form>
+
<h:selectBooleanCheckbox id="useExplicitEvents"
value="#{coordinationAction.explicitEventsUsed}"
onchange="this.form.submit()"
valueChangeListener="#{consumer.explicitEventsListener}"
immediate="true"/>
#{bundle.COORDINATION_EVENT_EXPLICIT_MODE}
+
</h:form>
<!-- Manage existing wirings -->
@@ -179,5 +189,6 @@
</h:selectManyListbox>
<br/>
</ui:remove>
+
</ui:define>
</ui:composition>