[portal-commits] JBoss Portal SVN: r11779 - in branches/JBoss_Portal_Branch_2_7/core-admin/src: resources/portal-admin-war/WEB-INF/classes and 1 other directories.

portal-commits at lists.jboss.org portal-commits at lists.jboss.org
Mon Sep 1 15:44:59 EDT 2008


Author: chris.laprun at jboss.com
Date: 2008-09-01 15:44:59 -0400 (Mon, 01 Sep 2008)
New Revision: 11779

Added:
   branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/QNameSelectItem.java
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/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/WEB-INF/classes/Resource.properties
   branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/editCoordination.xhtml
Log:
- Alias and parameters bindings redone. I'm not too happy with the parameter binding creation interaction though...
- More generification of managers with create/cancel actions.
- Extracted QNameSelectItem as it's used by several classes now.
- Do not display tables or prevent creations when there are nothing to use.

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-01 16:03:43 UTC (rev 11778)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/AliasBindingManagerBean.java	2008-09-01 19:44:59 UTC (rev 11779)
@@ -25,7 +25,10 @@
 import org.jboss.portal.core.controller.coordination.AliasBindingInfo;
 import org.jboss.portal.core.controller.coordination.IllegalCoordinationException;
 import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.PortalObject;
 import org.jboss.portal.core.model.portal.Window;
+import org.jboss.portal.portlet.info.NavigationInfo;
+import org.jboss.portal.portlet.info.ParameterInfo;
 import org.jboss.portal.portlet.info.PortletInfo;
 
 import javax.xml.namespace.QName;
@@ -37,6 +40,7 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * @author <a href="mailto:chris.laprun at jboss.com">Chris Laprun</a>
@@ -45,6 +49,7 @@
 public class AliasBindingManagerBean extends CoordinationManagerBean.CoordinationBean
 {
    private Map<String, DisplayAliasBinding> displayAliasBindings;
+   private Set<QNameSelectItem> availableRenderParameters;
 
    private String aliasName;
    private String originalQName;
@@ -99,8 +104,21 @@
       return result;
    }
 
-   public String createBinding()
+   public List<QNameSelectItem> getAvailableRenderParameters()
    {
+      if(availableRenderParameters == null)
+      {
+         return Collections.emptyList();
+      }
+
+      List<QNameSelectItem> result = new LinkedList<QNameSelectItem>(availableRenderParameters);
+      Collections.sort(result);
+
+      return result;
+   }
+
+   public String create()
+   {
       if (aliasName != null)
       {
          try
@@ -114,10 +132,10 @@
             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
          }
       }
-      return CoordinationManagerBean.EDIT_COORDINATION;
+      return resetSelection();
    }
 
-   public String cancelBinding()
+   public String resetSelection()
    {
       aliasName = null;
       originalQName = null;
@@ -149,8 +167,19 @@
 
    public void extractInfoFrom(Window window, PortletInfo info)
    {
-      // nothing to do here as alias bindings don't have any window specific info
+       // retrieve metadata on public render parameters
+      NavigationInfo navInfo = info.getNavigation();
+      for (ParameterInfo pInfo : navInfo.getPublicParameters())
+      {
+         availableRenderParameters.add(new QNameSelectItem(pInfo.getName()));
+      }
    }
+
+   public void initKnowing(Collection<PortalObject> children)
+   {
+      availableRenderParameters = new HashSet<QNameSelectItem>();
+   }
+
    public static class DisplayAliasBinding implements Comparable
    {
       private AliasBindingInfo alias;

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-01 16:03:43 UTC (rev 11778)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/CoordinationManagerBean.java	2008-09-01 19:44:59 UTC (rev 11779)
@@ -124,6 +124,15 @@
       public abstract String rename(String oldName, String newName) throws IllegalCoordinationException;
 
       public abstract void extractInfoFrom(Window window, PortletInfo info);
+
+      public abstract String create() throws IllegalCoordinationException;
+
+      public abstract String resetSelection();
+
+      public String cancel()
+      {
+         return resetSelection();
+      }
    }
 
    public PortalObjectId getSelectedObjectId()
@@ -292,6 +301,7 @@
             if (!children.isEmpty())
             {
                windowManager.initKnowing(children);
+               aliasManager.initKnowing(children);
 
                for (PortalObject po : children)
                {
@@ -302,9 +312,9 @@
                      Instance instance = pomb.getInstanceContainer().getDefinition(pc.getInstanceRef());
                      PortletInfo info = instance.getPortlet().getInfo();
 
-                     // get window specific info (aliasManager doesn't need that)
                      windowManager.extractInfoFrom(window, info);
                      eventManager.extractInfoFrom(window, info);
+                     aliasManager.extractInfoFrom(window, info);
                   }
                }
             }

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-09-01 16:03:43 UTC (rev 11778)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/EventWiringManagerBean.java	2008-09-01 19:44:59 UTC (rev 11779)
@@ -292,7 +292,7 @@
       }
    }
 
-   public String createWiring()
+   public String create()
    {
       if (currentWiring != null)
       {
@@ -305,10 +305,10 @@
             e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
          }
       }
-      return null;
+      return resetSelection();
    }
 
-   public String cancelWiring()
+   public String resetSelection()
    {
       currentWiring = null;
       selectedSourceEvent = null;
@@ -438,42 +438,6 @@
       }
    }
 
-   public static class QNameSelectItem extends SelectItem implements Comparable
-   {
-      public QNameSelectItem(QName qName)
-      {
-         super(qName, qName.toString());
-      }
-
-      public QName getQName()
-      {
-         return (QName)getValue();
-      }
-
-      public int compareTo(Object o)
-      {
-         QNameSelectItem other = (QNameSelectItem)o;
-         return getQName().toString().compareTo(other.getQName().toString());
-      }
-
-      @Override
-      public int hashCode()
-      {
-         return getQName().hashCode();
-      }
-
-      @Override
-      public boolean equals(Object obj)
-      {
-         if (!(obj instanceof QNameSelectItem))
-         {
-            return false;
-         }
-         QNameSelectItem item = (QNameSelectItem)obj;
-         return getQName().equals(item.getQName());
-      }
-   }
-
    private static class EventWiringInfoCreator implements EventWiringInfo
    {
       private String name;

Added: branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/QNameSelectItem.java
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/QNameSelectItem.java	                        (rev 0)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/QNameSelectItem.java	2008-09-01 19:44:59 UTC (rev 11779)
@@ -0,0 +1,66 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2008, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+
+package org.jboss.portal.core.admin.ui.coordination;
+
+import javax.faces.model.SelectItem;
+import javax.xml.namespace.QName;
+
+/**
+ * @author <a href="mailto:chris.laprun at jboss.com">Chris Laprun</a>
+* @version $Revision$
+*/
+public class QNameSelectItem extends SelectItem implements Comparable
+{
+   public QNameSelectItem(QName qName)
+   {
+      super(qName, qName.toString());
+   }
+
+   public QName getQName()
+   {
+      return (QName)getValue();
+   }
+
+   public int compareTo(Object o)
+   {
+      QNameSelectItem other = (QNameSelectItem)o;
+      return getQName().toString().compareTo(other.getQName().toString());
+   }
+
+   @Override
+   public int hashCode()
+   {
+      return getQName().hashCode();
+   }
+
+   @Override
+   public boolean equals(Object obj)
+   {
+      if (!(obj instanceof QNameSelectItem))
+      {
+         return false;
+      }
+      QNameSelectItem item = (QNameSelectItem)obj;
+      return getQName().equals(item.getQName());
+   }
+}

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-09-01 16:03:43 UTC (rev 11778)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/main/org/jboss/portal/core/admin/ui/coordination/WindowBindingManagerBean.java	2008-09-01 19:44:59 UTC (rev 11779)
@@ -22,7 +22,6 @@
 
 package org.jboss.portal.core.admin.ui.coordination;
 
-import org.jboss.portal.core.controller.coordination.AliasBindingInfo;
 import org.jboss.portal.core.controller.coordination.IllegalCoordinationException;
 import org.jboss.portal.core.controller.coordination.WindowBindingInfo;
 import org.jboss.portal.core.model.portal.Page;
@@ -33,8 +32,8 @@
 import org.jboss.portal.portlet.info.ParameterInfo;
 import org.jboss.portal.portlet.info.PortletInfo;
 
+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;
@@ -42,6 +41,7 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * @author <a href="mailto:chris.laprun at jboss.com">Chris Laprun</a>
@@ -50,15 +50,12 @@
 public class WindowBindingManagerBean extends CoordinationManagerBean.CoordinationBean
 {
    private Map<String, String> windows;
-   private List<String> selectedWindows;
-   private Map<String, String> aliasBindings;
-   private Map<String, Map<String, String>> windowBindings;
-   private String selectedRenderParameter;
-   private Map<String, String> availableRenderParameters;
-   private String windowBindingName;
-   
    private Map<String, DisplayParameterBinding> displayParameterBindings;
 
+   private List<ParameterWindowSelectItem> availableParameterWindowPairs;
+   private List<String> selectedParameterWindowPairs;
+   private String windowBindingName;
+
    public Map<String, String> getWindows()
    {
       return windows;
@@ -69,60 +66,21 @@
       this.windows = windows;
    }
 
-   public List<String> getSelectedWindows()
+   public List<ParameterWindowSelectItem> getAvailableParameterWindowPairs()
    {
-      return selectedWindows;
+      return availableParameterWindowPairs;
    }
 
-   public void setSelectedWindows(List<String> selectedWindows)
+   public List<String> getSelectedParameterWindowPairs()
    {
-      this.selectedWindows = selectedWindows;
+      return selectedParameterWindowPairs;
    }
 
-   public Map<String, String> getAliasBindings()
+   public void setSelectedParameterWindowPairs(List<String> selectedParameterWindowPairs)
    {
-      if (aliasBindings == null)
-      {
-         aliasBindings = new HashMap<String, String>();
-      }
-      return aliasBindings;
+      this.selectedParameterWindowPairs = selectedParameterWindowPairs;
    }
 
-   public void setAliasBindings(Map<String, String> aliasBindings)
-   {
-      this.aliasBindings = aliasBindings;
-   }
-
-   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(Map<String, Map<String, String>> windowBindings)
-   {
-      this.windowBindings = windowBindings;
-   }
-
-   public String getSelectedRenderParameter()
-   {
-      return selectedRenderParameter;
-   }
-
-   public void setSelectedRenderParameter(String selectedRenderParameter)
-   {
-      this.selectedRenderParameter = selectedRenderParameter;
-   }
-
    public String getWindowBindingName()
    {
       return windowBindingName;
@@ -139,71 +97,13 @@
       NavigationInfo navInfo = info.getNavigation();
       for (ParameterInfo pInfo : navInfo.getPublicParameters())
       {
-         availableRenderParameters.put(pInfo.getName().toString(), pInfo.getName().toString());
+         availableParameterWindowPairs.add(new ParameterWindowSelectItem(pInfo, window));
       }
 
       // record window information
       this.windows.put(window.getName(), window.getId().toString(PortalObjectPath.LEGACY_BASE64_FORMAT));
    }
 
-   public static class DisplayParameterBinding implements Comparable
-   {
-      private String id;
-      private QName name;
-      private List<Window> windows;
-      private WindowBindingInfo bindingInfo;
-
-      public DisplayParameterBinding(WindowBindingInfo bindingInfo)
-      {
-         this.bindingInfo = bindingInfo;
-      }
-
-      public String getId()
-      {
-         return id;
-      }
-
-      public void setId(String id)
-      {
-         this.id = id;
-      }
-
-      public QName getName()
-      {
-         return name;
-      }
-
-      public void setName(QName name)
-      {
-         this.name = name;
-      }
-
-      public List<Window> getWindows()
-      {
-         if (windows == null)
-         {
-            windows = new ArrayList<Window>();
-         }
-         return windows;
-      }
-
-      public void setWindows(List<Window> windows)
-      {
-         this.windows = windows;
-      }
-
-      public WindowBindingInfo getBindingInfo()
-      {
-         return bindingInfo;
-      }
-
-      public int compareTo(Object o)
-      {
-         DisplayParameterBinding other = (DisplayParameterBinding)o;
-         return id.compareTo(other.getId());
-      }
-   }
-
    public Collection<DisplayParameterBinding> getDisplayParameterBindings()
    {
       if (displayParameterBindings == null)
@@ -219,41 +119,19 @@
 
    public void initKnowing(Collection<PortalObject> children)
    {
-      availableRenderParameters = new LinkedHashMap<String, String>();
+      availableParameterWindowPairs = new LinkedList<ParameterWindowSelectItem>();
       this.windows = new LinkedHashMap<String, String>(children.size());
    }
 
    public void loadInfoFrom(Page page)
    {
-      //aliasbindings prep for ui
-      for (AliasBindingInfo abInfo : managerBean.getCoordinationService().getAliasBindings(page))
-      {
-         for (QName name : abInfo.getNames())
-         {
-            getAliasBindings().put(name.getNamespaceURI(), name.getNamespaceURI());
-         }
-      }
-
       Collection<? extends WindowBindingInfo> windowBindingInfos = managerBean.getCoordinationService().getWindowBindings(page);
       if (windowBindingInfos != null && !windowBindingInfos.isEmpty())
       {
          displayParameterBindings = new HashMap<String, DisplayParameterBinding>(windowBindingInfos.size());
          for (WindowBindingInfo wbInfo : windowBindingInfos)
          {
-            DisplayParameterBinding dpb = new DisplayParameterBinding(wbInfo);
-            for (Map.Entry<Window, QName> entry : wbInfo.getWindows().entrySet())
-            {
-               Window paramName = entry.getKey();
-               QName paramValue = entry.getValue();
-               //quick filter for duplicate binding ids
-               dpb.getWindows().add(paramName);
-               if (dpb.getWindows().size() < 2)
-               {
-                  dpb.setId(wbInfo.getName());
-                  dpb.setName(paramValue);
-               }
-            }
-            displayParameterBindings.put(dpb.getId(), dpb);
+            displayParameterBindings.put(wbInfo.getName(), new DisplayParameterBinding(wbInfo));
          }
       }
       else
@@ -262,38 +140,32 @@
       }
    }
 
-   public String createBinding() throws IllegalCoordinationException
+   public String create() throws IllegalCoordinationException
    {
       if (windowBindingName != null)
       {
          Map<Window, QName> windowBinding = new HashMap<Window, QName>();
-         for (String window : selectedWindows)
+         for (String pairAsString : selectedParameterWindowPairs)
          {
-            PortalObject portalObject = managerBean.getPortalObjectContainer().getObject(managerBean.parsePortalObjectId(window));
+            // get ParameterWindowPair from String
+            String[] names = ParameterWindowPair.resolveFrom(pairAsString);
 
-            if (portalObject.getType() == PortalObject.TYPE_WINDOW)
-            {
-               windowBinding.put((Window)portalObject, QName.valueOf(selectedRenderParameter));
-               managerBean.getCoordinationService().setWindowBinding(windowBindingName, windowBinding);
-            }
+            Window window = (Window)managerBean.getSelectedPage().getChild(names[ParameterWindowPair.WINDOW_NAME]);
+            windowBinding.put(window, QName.valueOf(names[ParameterWindowPair.PARAM_NAME]));
          }
+
+         managerBean.getCoordinationService().setWindowBinding(windowBindingName, windowBinding);
       }
 
-      // reset selection
-      windowBindingName = null;
-      selectedWindows = null;
-      selectedRenderParameter = null;
-
-      return CoordinationManagerBean.EDIT_COORDINATION;
+      return resetSelection();
    }
 
-   public String cancelBinding()
+   public String resetSelection()
    {
-      selectedWindows = null;
       windowBindingName = null;
-      selectedRenderParameter = null;
+      selectedParameterWindowPairs = null;
 
-      return null;
+      return CoordinationManagerBean.EDIT_COORDINATION;
    }
 
    public String delete(String name) throws IllegalCoordinationException
@@ -317,4 +189,115 @@
       }
       return CoordinationManagerBean.EDIT_COORDINATION;
    }
+
+   public static class DisplayParameterBinding implements Comparable
+   {
+      private List<ParameterWindowPair> parameterWindowPairs;
+      private WindowBindingInfo bindingInfo;
+
+      public DisplayParameterBinding(WindowBindingInfo bindingInfo)
+      {
+         this.bindingInfo = bindingInfo;
+         Set<Map.Entry<Window,QName>> entries = bindingInfo.getWindows().entrySet();
+         parameterWindowPairs = new LinkedList<ParameterWindowPair>();
+         for (Map.Entry<Window, QName> entry : entries)
+         {
+            parameterWindowPairs.add(new ParameterWindowPair(entry.getValue(), entry.getKey()));
+         }
+      }
+
+      public String getName()
+      {
+         return bindingInfo.getName();
+      }
+
+      public WindowBindingInfo getBindingInfo()
+      {
+         return bindingInfo;
+      }
+
+      public List<ParameterWindowPair> getParameterWindowPairs()
+      {
+         return parameterWindowPairs;
+      }
+
+      public int compareTo(Object o)
+      {
+         DisplayParameterBinding other = (DisplayParameterBinding)o;
+         return getName().compareTo(other.getName());
+      }
+   }
+
+   public static class ParameterWindowSelectItem extends SelectItem implements Comparable
+   {
+      public ParameterWindowSelectItem(ParameterInfo parameterInfo, Window window)
+      {
+         super(new ParameterWindowPair(parameterInfo, window), ParameterWindowPair.asString(parameterInfo.getName(), window));
+      }
+
+      public int compareTo(Object o)
+      {
+         ParameterWindowSelectItem pair = (ParameterWindowSelectItem)o;
+         return toString().compareTo(pair.toString());
+      }
+
+      private ParameterWindowPair getPair()
+      {
+         return (ParameterWindowPair)getValue();
+      }
+   }
+
+   public static class ParameterWindowPair
+   {
+      private Window window;
+      private QName name;
+      public static final int PARAM_NAME = 0;
+      public static final int WINDOW_NAME = 1;
+
+      public ParameterWindowPair(ParameterInfo info, Window window)
+      {
+         this(info.getName(), window);
+      }
+
+      public ParameterWindowPair(QName name, Window window)
+      {
+         this.window = window;
+         this.name = name;
+      }
+
+      public QName getName()
+      {
+         return name;
+      }
+
+      public Window getWindow()
+      {
+         return window;
+      }
+
+      public String getSeparator()
+      {
+         return ":";
+      }
+
+      @Override
+      public String toString()
+      {
+         return ParameterWindowPair.asString(name, window);
+      }
+
+      static String asString(QName qname, Window window)
+      {
+         return qname + ":" + window.getName();
+      }
+
+      public static String[] resolveFrom(String pairAsString)
+      {
+         int separatorIndex = pairAsString.indexOf(':'); 
+         String name = pairAsString.substring(0, separatorIndex);
+         String windowName = pairAsString.substring(separatorIndex + 1);
+
+         return new String[] {name, windowName};
+      }
+   }
 }

Modified: branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/classes/Resource.properties
===================================================================
--- branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/classes/Resource.properties	2008-09-01 16:03:43 UTC (rev 11778)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/WEB-INF/classes/Resource.properties	2008-09-01 19:44:59 UTC (rev 11779)
@@ -272,22 +272,26 @@
 COORDINATION_PARAMETER_BINDINGS=Parameter bindings
 COORDINATION_PARAMETER_EXPLICIT_MODE=Use explicit parameter binding
 COORDINATION_PARAMETER_MANAGE_EXISTING=Manage existing parameter bindings:
+COORDINATION_PARAMETER_EXISTING_NONE=No existing parameter bindings.
 COORDINATION_PARAMETER_EXISTING_NAME=Name
+COORDINATION_PARAMETER_EXISTING_PAIRS=Parameter:window pairs
 COORDINATION_PARAMETER_EXISTING_ACTIONS=Actions
 COORDINATION_PARAMETER_CREATE=Create new parameter binding:
-COORDINATION_PARAMETER_CREATE_STEP1=1. Select public render parameter:
-COORDINATION_PARAMETER_CREATE_STEP2=2. Select windows for parameter ''{0}'':
-COORDINATION_PARAMETER_CREATE_STEP3=3. Name binding:
+COORDINATION_PARAMETER_CREATE_NO_PAIRS=No available public render parameters. Cannot create new parameter bindings.
+COORDINATION_PARAMETER_CREATE_STEP1=1. Select public parameter / window pairs:
+COORDINATION_PARAMETER_CREATE_STEP2=2. Name parameter binding:
 COORDINATION_PARAMETER_CREATE_CREATE=Create binding
 
 COORDINATION_WINDOWS=Windows
 
 COORDINATION_ALIAS_BINDINGS=Alias bindings
 COORDINATION_ALIAS_MANAGE_EXISTING=Manage existing alias bindings:
+COORDINATION_ALIAS_EXISTING_NONE=No existing alias bindings.
 COORDINATION_ALIAS_EXISTING_NAME=Name
 COORDINATION_ALIAS_EXISTING_ORIGINAL=Original QName
 COORDINATION_ALIAS_EXISTING_ACTIONS=Actions
 COORDINATION_ALIAS_CREATE=Create new alias binding:
+COORDINATION_ALIAS_CREATE_NO_PARAMS=No available public render parameters. Cannot create new alias bindings.
 COORDINATION_ALIAS_CREATE_STEP1=1. Select public render parameter:
 COORDINATION_ALIAS_CREATE_STEP2=2. Name alias binding:
 COORDINATION_ALIAS_CREATE_CREATE=Create alias
@@ -295,6 +299,7 @@
 COORDINATION_EVENT_WIRINGS=Event wirings
 COORDINATION_EVENT_EXPLICIT_MODE=Use explicit event wiring
 COORDINATION_EVENT_MANAGE_EXISTING=Manage existing event wirings:
+COORDINATION_EVENT_EXISTING_NONE=No existing event wirings.
 COORDINATION_EVENT_EXISTING_NAME=Name
 COORDINATION_EVENT_EXISTING_SOURCE_WINDOWS=Source windows
 COORDINATION_EVENT_EXISTING_SOURCE_EVENTS=Source events
@@ -302,6 +307,7 @@
 COORDINATION_EVENT_EXISTING_DESTINATION_WINDOWS=Destination windows
 COORDINATION_EVENT_EXISTING_ACTIONS=Actions
 COORDINATION_EVENT_CREATE=Create new event wiring:
+COORDINATION_EVENT_CREATE_NO_EVENT=No available events. Cannot create new event wirings.
 COORDINATION_EVENT_CREATE_STEP1=1. Select source event:
 COORDINATION_EVENT_CREATE_STEP2=2. Select source windows producing event ''{0}'':
 COORDINATION_EVENT_CREATE_STEP3=3. Select destination event:

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-09-01 16:03:43 UTC (rev 11778)
+++ branches/JBoss_Portal_Branch_2_7/core-admin/src/resources/portal-admin-war/jsf/editCoordination.xhtml	2008-09-01 19:44:59 UTC (rev 11779)
@@ -14,12 +14,13 @@
 
       <!-- Create alias binding -->
       <h3 class="sectionTitle tenpx-top-bottom">#{bundle.COORDINATION_ALIAS_CREATE}</h3>
-      <h:form>
+      <h:outputText value="#{bundle.COORDINATION_ALIAS_CREATE_NO_PARAMS}" rendered="#{empty aliasCoordination.availableRenderParameters}"/> 
+      <h:form rendered="#{!empty aliasCoordination.availableRenderParameters}">
          <div class="float-left quarter-width">
             #{bundle.COORDINATION_ALIAS_CREATE_STEP1}
             <h:selectOneListbox id="alias"  size="5" value="#{aliasCoordination.originalQName}"
                                 immediate="true" onchange="this.form.submit()">
-               <f:selectItems value="#{windowCoordination.availableRenderParameters}"/>
+               <f:selectItems value="#{aliasCoordination.availableRenderParameters}"/>
             </h:selectOneListbox>
          </div>
 
@@ -28,8 +29,8 @@
                #{bundle.COORDINATION_ALIAS_CREATE_STEP2}
                <h:inputText id="aliasName" value="#{aliasCoordination.aliasName}"/>
                <h:commandButton value="#{bundle.COORDINATION_ALIAS_CREATE_CREATE}"
-                                action="#{aliasCoordination.createBinding}" styleClass="portlet-form-button"/>
-               <h:commandButton value="#{bundle.COMMON_CANCEL}" action="#{aliasCoordination.cancelBinding}"
+                                action="#{aliasCoordination.create}" styleClass="portlet-form-button"/>
+               <h:commandButton value="#{bundle.COMMON_CANCEL}" action="#{aliasCoordination.cancel}"
                                 styleClass="portlet-form-button"/>
             </div>
          </h:panelGroup>
@@ -39,8 +40,9 @@
 
       <!-- Manage existing alias bindings -->
       <h3 class="sectionTitle tenpx-top-bottom">#{bundle.COORDINATION_ALIAS_MANAGE_EXISTING}</h3>
-      <div class="float-left full-width">
-         <h:form>
+      <h:outputText value="#{bundle.COORDINATION_ALIAS_EXISTING_NONE}" rendered="#{empty aliasCoordination.displayAliasBindings}"/>
+      <h:form rendered="#{!empty aliasCoordination.displayAliasBindings}">
+         <div class="float-left full-width">
             <h:dataTable var="binding" value="#{aliasCoordination.displayAliasBindings}"
                          rendered="true" styleClass="objectList datatable"
                          rowClasses="portlet-section-body,portlet-section-alternate-blue"
@@ -55,9 +57,9 @@
                   <ui:repeat var="qname" value="#{binding.names}">
                      #{qname}
                   </ui:repeat>
-               </h:column>               
+               </h:column>
                <h:column>
-                  <f:facet name="header">#{bundle.COORDINATION_ALIAS_EXISTING_ACTIONS}"</f:facet>
+                  <f:facet name="header">#{bundle.COORDINATION_ALIAS_EXISTING_ACTIONS}</f:facet>
                   <h:commandLink action="renameCoordination" actionListener="#{coordinationManager.select}">
                      <h:outputText styleClass="actionRename" value="#{bundle.RENAME}"/>
                      <f:param name="name" value="#{binding.name}"/>
@@ -70,16 +72,16 @@
                   </h:commandLink>
                </h:column>
             </h:dataTable>
-         </h:form>
-      </div>
-      <br class="clear"/>
+         </div>
+         <br class="clear"/>
+      </h:form>
    </div>
 
    <div class="tenpx-top-bottom">
       <h2 class="portlet-area-header">#{bundle.COORDINATION_PARAMETER_BINDINGS}</h2>
 
       <h:form>
-         <h:selectBooleanCheckbox id="useImplicitBinding" value="#{coordinationManager.explicitParametersUsed}"
+         <h:selectBooleanCheckbox id="useExplicitBinding" value="#{coordinationManager.explicitParametersUsed}"
                                   onchange="this.form.submit()" immediate="true"/>
          #{bundle.COORDINATION_PARAMETER_EXPLICIT_MODE}
       </h:form>
@@ -89,32 +91,23 @@
 
          <!-- Create parameter binding -->
          <h3 class="sectionTitle tenpx-top-bottom">#{bundle.COORDINATION_PARAMETER_CREATE}</h3>
-         <h:form>
+         <h:outputText value="#{bundle.COORDINATION_PARAMETER_CREATE_NO_PAIRS}" rendered="#{empty windowCoordination.availableParameterWindowPairs}"/>
+         <h:form rendered="#{!empty windowCoordination.availableParameterWindowPairs}">
             <div class="float-left quarter-width">
                #{bundle.COORDINATION_PARAMETER_CREATE_STEP1}
-               <h:selectOneListbox id="parameter"  size="5" value="#{windowCoordination.selectedRenderParameter}"
+               <h:selectManyListbox id="parameterWindowPair"  size="5" value="#{windowCoordination.selectedParameterWindowPairs}"
                                    immediate="true" onchange="this.form.submit()">
-                  <f:selectItems value="#{windowCoordination.availableRenderParameters}"/>
-               </h:selectOneListbox>
+                  <f:selectItems value="#{windowCoordination.availableParameterWindowPairs}"/>
+               </h:selectManyListbox>
             </div>
 
-           <h:panelGroup rendered="#{!empty windowCoordination.selectedRenderParameter}">
-              <div class="float-left quarter-width">
-                 #{bundle.COORDINATION_PARAMETER_CREATE_STEP2}
-                 <h:selectManyListbox id="windows" size="5" value="#{windowCoordination.selectedWindows}"
-                                      immediate="true" onchange="this.form.submit()">
-                    <f:selectItems value="#{windowCoordination.windows}"/>
-                 </h:selectManyListbox>
-              </div>
-           </h:panelGroup>
-
-            <h:panelGroup rendered="#{!empty windowCoordination.selectedWindows}">
+            <h:panelGroup rendered="#{!empty windowCoordination.selectedParameterWindowPairs}">
                <div class="float-left quarter-width">
-                  #{bundle.COORDINATION_PARAMETER_CREATE_STEP3}
+                  #{bundle.COORDINATION_PARAMETER_CREATE_STEP2}
                   <h:inputText id="bindingName" value="#{windowCoordination.windowBindingName}"/>
                   <h:commandButton value="#{bundle.COORDINATION_PARAMETER_CREATE_CREATE}"
-                                   action="#{windowCoordination.createBinding}" styleClass="portlet-form-button"/>
-                  <h:commandButton value="#{bundle.COMMON_CANCEL}" action="#{aliasCoordination.cancelBinding}"
+                                   action="#{windowCoordination.create}" styleClass="portlet-form-button"/>
+                  <h:commandButton value="#{bundle.COMMON_CANCEL}" action="#{windowCoordination.cancel}"
                                    styleClass="portlet-form-button"/>
                </div>
             </h:panelGroup>
@@ -125,7 +118,8 @@
          <!-- Manage existing parameter bindings -->
          <h3 class="sectionTitle tenpx-top-bottom">#{bundle.COORDINATION_PARAMETER_MANAGE_EXISTING}</h3>
          <div class="float-left full-width">
-            <h:form>
+            <h:outputText value="#{bundle.COORDINATION_PARAMETER_EXISTING_NONE}" rendered="#{empty windowCoordination.displayParameterBindings}"/>
+            <h:form rendered="#{!empty windowCoordination.displayParameterBindings}">
                <h:dataTable var="binding" value="#{windowCoordination.displayParameterBindings}"
                             rendered="true" styleClass="objectList datatable"
                             rowClasses="portlet-section-body,portlet-section-alternate-blue"
@@ -133,31 +127,32 @@
                             headerClass="portlet-section-header">
                   <h:column>
                      <f:facet name="header">#{bundle.COORDINATION_PARAMETER_EXISTING_NAME}</f:facet>
-                     #{binding.id}
-                  </h:column>
-                  <h:column>
-                     <f:facet name="header">Original QName</f:facet>
                      #{binding.name}
                   </h:column>
                   <h:column>
-                     <f:facet name="header">#{bundle.COORDINATION_PARAMETER_EXISTING_ACTIONS}</f:facet>
-                     <ui:repeat var="window" value="#{binding.windows}">
-                        <h:commandLink action="#{portalobjectmgr.selectObject}" styleClass="objectName">
-                           <f:param name="id" value="#{window.id}"/>
-                           #{window.name}
-                        </h:commandLink>
-                     </ui:repeat>
+                     <f:facet name="header">#{bundle.COORDINATION_PARAMETER_EXISTING_PAIRS}</f:facet>
+                     <ul>
+                        <ui:repeat var="pair" value="#{binding.parameterWindowPairs}">
+                           <li>
+                              #{pair.name}#{pair.separator}
+                              <h:commandLink action="#{portalobjectmgr.selectObject}" styleClass="objectName">
+                                 <f:param name="id" value="#{pair.window.id}"/>
+                                 #{pair.window.name}
+                              </h:commandLink>
+                           </li>
+                        </ui:repeat>
+                     </ul>
                   </h:column>
                   <h:column>
                      <f:facet name="header">#{bundle.COORDINATION_PARAMETER_EXISTING_ACTIONS}</f:facet>
                      <h:commandLink action="renameCoordination" actionListener="#{coordinationManager.select}">
                         <h:outputText styleClass="actionRename" value="#{bundle.RENAME}"/>
-                        <f:param name="name" value="#{binding.id}"/>
+                        <f:param name="name" value="#{binding.name}"/>
                         <f:param name="type" value="parameter"/>
                      </h:commandLink> |
                      <h:commandLink action="confirmCoordinationDeletion" actionListener="#{coordinationManager.select}">
                         <h:outputText styleClass="actionDelete" value="#{bundle.COMMON_DELETE}"/>
-                        <f:param name="name" value="#{binding.id}"/>
+                        <f:param name="name" value="#{binding.name}"/>
                         <f:param name="type" value="parameter"/>
                      </h:commandLink>
                   </h:column>
@@ -180,7 +175,8 @@
       <hr/>
       <!-- Create new event wiring -->
       <h3 class="sectionTitle tenpx-top-bottom">#{bundle.COORDINATION_EVENT_CREATE}</h3>
-      <h:form>
+      <h:outputText value="#{bundle.COORDINATION_EVENT_CREATE_NO_EVENTS}" rendered="#{empty eventCoordination.sourceEvents}"/>
+      <h:form rendered="#{!empty eventCoordination.sourceEvents}">
          <h:panelGroup>
             #{bundle.COORDINATION_EVENT_CREATE_STEP1}
             <h:selectOneListbox id="sourceEvent" size="5" value="#{eventCoordination.selectedSourceEvent}" immediate="true"
@@ -216,9 +212,9 @@
          <h:panelGroup rendered="#{!empty eventCoordination.selectedDestinationWindows}">
             #{bundle.COORDINATION_EVENT_CREATE_STEP5}
             <h:inputText id="wiringName" value="#{eventCoordination.wiringName}"/>
-            <h:commandButton value="#{bundle.COORDINATION_EVENT_CREATE_CREATE}" action="#{eventCoordination.createWiring}"
+            <h:commandButton value="#{bundle.COORDINATION_EVENT_CREATE_CREATE}" action="#{eventCoordination.create}"
                              styleClass="portlet-form-button"/>
-            <h:commandButton value="#{bundle.COMMON_CANCEL}" action="#{eventCoordination.cancelWiring}"
+            <h:commandButton value="#{bundle.COMMON_CANCEL}" action="#{eventCoordination.cancel}"
                              styleClass="portlet-form-button"/>
          </h:panelGroup>
       </h:form>
@@ -226,9 +222,9 @@
 
       <!-- Manage existing wirings -->
       <h3 class="sectionTitle tenpx-top-bottom">#{bundle.COORDINATION_EVENT_MANAGE_EXISTING}</h3>
-      <h:form>
+      <h:outputText value="#{bundle.COORDINATION_EVENT_EXISTING_NONE}" rendered="#{empty eventCoordination.displayEventWirings}"/>
+      <h:form rendered="#{!empty eventCoordination.displayEventWirings}">
          <h:dataTable var="wiring" value="#{eventCoordination.displayEventWirings}"
-                      rendered="true"
                       styleClass="objectList datatable"
                       rowClasses="portlet-section-body,portlet-section-alternate-blue"
                       columnClasses="objectNameColumn, objectActionColumn"




More information about the portal-commits mailing list