You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by dd...@apache.org on 2006/12/02 08:19:02 UTC

svn commit: r481515 - in /portals/pluto/trunk: pluto-container/src/main/java/org/apache/pluto/core/ pluto-container/src/main/java/org/apache/pluto/internal/impl/ pluto-portal/src/main/webapp/WEB-INF/fragments/admin/page/

Author: ddewolf
Date: Fri Dec  1 23:19:01 2006
New Revision: 481515

URL: http://svn.apache.org/viewvc?view=rev&rev=481515
Log:
Tidying up the user interface for the page adminsitrator

Modified:
    portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java
    portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletContextImpl.java
    portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/fragments/admin/page/view.jsp

Modified: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java?view=diff&rev=481515&r1=481514&r2=481515
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/core/PortletContextManager.java Fri Dec  1 23:19:01 2006
@@ -31,6 +31,7 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.HashSet;
 
 /**
  * Manager used to cache the portlet configurations which have
@@ -117,7 +118,7 @@
 
 
     public Iterator getRegisteredPortletApplications() throws PortletContainerException {
-        return portletContexts.values().iterator();
+        return new HashSet(portletContexts.values()).iterator();
     }
 
     public PortletAppDD getPortletApplicationDescriptor(String name) throws PortletContainerException {

Modified: portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletContextImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletContextImpl.java?view=diff&rev=481515&r1=481514&r2=481515
==============================================================================
--- portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletContextImpl.java (original)
+++ portals/pluto/trunk/pluto-container/src/main/java/org/apache/pluto/internal/impl/PortletContextImpl.java Fri Dec  1 23:19:01 2006
@@ -105,6 +105,9 @@
         String applicationId =  getContextPath();
         if(applicationId == null) {
             applicationId = servletContext.getServletContextName();
+            if(applicationId != null) {
+                applicationId = Integer.toHexString(applicationId.hashCode());
+            }
         }
 
         if(applicationId == null) {
@@ -112,6 +115,20 @@
         }
 
         return applicationId;
+    }
+
+    public String getApplicationName() {
+        String applicationName = servletContext.getServletContextName();
+
+        if(applicationName == null) {
+            applicationName = getContextPath();
+        }
+
+        if(applicationName == null) {
+            applicationName = getApplicationId();
+        }
+
+        return applicationName;
     }
 
     /**

Modified: portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/fragments/admin/page/view.jsp
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/fragments/admin/page/view.jsp?view=diff&rev=481515&r1=481514&r2=481515
==============================================================================
--- portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/fragments/admin/page/view.jsp (original)
+++ portals/pluto/trunk/pluto-portal/src/main/webapp/WEB-INF/fragments/admin/page/view.jsp Fri Dec  1 23:19:01 2006
@@ -25,21 +25,58 @@
     </c:forEach>
     </select>
   </p>
-  </div>
+</div>
 
 <div>
   <h2>Portlet Applications</h2>
   <p>
-    <select name="apps" onChange="alert('Once Implemented, you will be able to add this portlet to this page.');">
-    <c:forEach items="${portletContainer.optionalContainerServices.portletRegistryService.registeredPortletApplications}" var="app">
-        <optgroup label="<c:out value="${app.applicationId}"/>">
-            <c:forEach items="${app.portletApplicationDefinition.portlets}" var="portlet">
-                <option value="<c:out value="${portlet.portletName}"/>"><c:out value="${portlet.portletName}"/></option>
-            </c:forEach>
-        </optgroup>
+    <!-- TODO: Should be namespaced! -->
+    <form name="adminForm" action="#">
+
+    <script type="text/javascript">
+        var portlets = new Array();
+        <c:forEach items="${portletContainer.optionalContainerServices.portletRegistryService.registeredPortletApplications}" var="app">
+            var i = 0;
+            portlets['<c:out value="${app.applicationId}"/>'] = new Array();
+            portlets['<c:out value="${app.applicationId}"/>'][i++] = 'Select. . .';
+          <c:forEach items="${app.portletApplicationDefinition.portlets}" var="portlet">
+            portlets['<c:out value="${app.applicationId}"/>'][i++] = '<c:out value="${portlet.portletName}"/>';
+          </c:forEach>
+        </c:forEach>
+
+        function doSwitch(select) {
+            var portletsSelectBox = document.forms['adminForm'].elements['portlets'];
+            if (select.value == '-') {
+                document.forms['adminForm'].elements['portlets'].disabled = true;
+            } else {
+                portletsSelectBox.disabled = false;
+                var pList = portlets[select.value];
+                for (i = 0; i < pList.length; i++) {
+                    portletsSelectBox.options[i] = new Option(pList[i], pList[i]);
+                }
+            }
+            doSwitchButton(portletsSelectBox);
+        }
+
+        function doSwitchButton(select) {
+            document.forms['adminForm'].elements['submitButton'].disabled = (select.value == 'Select. . .' || select.disabled);
+        }
+    </script>
+
+        <select name="applications" onChange="doSwitch(this)">
+            <option value='-'>Select. . .</option>
+            <c:forEach items="${portletContainer.optionalContainerServices.portletRegistryService.registeredPortletApplications}" var="app">
+        <option value="<c:out value="${app.applicationId}"/>"><c:out value="${app.applicationName}"/></option>
     </c:forEach>
     </select>
-  </p>
-</div>
 
+    <select name="portlets" disabled="true" onChange='doSwitchButton(this)'>
+
+    </select>
 
+    <button onClick="alert('Sorry, this feature has not yet been implemented'); return false;" name="submitButton" disabled="true">
+        Add Portlet
+    </button>
+    </form>
+  </p>
+</div>