[portal-commits] JBoss Portal SVN: r5851 - in trunk/core/src: main/org/jboss/portal/core/portlet/dashboard resources/portal-core-war/WEB-INF/jsp/dashboard

portal-commits at lists.jboss.org portal-commits at lists.jboss.org
Wed Dec 13 17:16:27 EST 2006


Author: roy.russo at jboss.com
Date: 2006-12-13 17:16:24 -0500 (Wed, 13 Dec 2006)
New Revision: 5851

Modified:
   trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java
   trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp
Log:
ui prettification of dashboards

Modified: trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java	2006-12-13 18:38:05 UTC (rev 5850)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java	2006-12-13 22:16:24 UTC (rev 5851)
@@ -33,6 +33,7 @@
 import org.jboss.portal.theme.LayoutService;
 import org.jboss.portal.theme.PortalLayout;
 import org.jboss.portal.theme.ThemeConstants;
+import org.jboss.portal.theme.ThemeService;
 import org.jboss.portlet.JBossActionRequest;
 import org.jboss.portlet.JBossActionResponse;
 import org.jboss.portlet.JBossPortlet;
@@ -41,9 +42,9 @@
 
 import javax.portlet.PortletException;
 import javax.portlet.PortletRequestDispatcher;
-import javax.portlet.PortletSecurityException;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
@@ -67,6 +68,8 @@
 
    private LayoutService layoutService;
 
+   private ThemeService themeService;
+
    public void init()
       throws PortletException
    {
@@ -78,6 +81,8 @@
 
       layoutService = (LayoutService)getPortletContext().getAttribute("LayoutService");
 
+      themeService = (ThemeService)getPortletContext().getAttribute("ThemeService");
+
       if (instanceContainer == null)
       {
          throw new PortletException("No InstanceContainer found");
@@ -90,6 +95,10 @@
       {
          throw new PortletException("No LayoutService found");
       }
+      if (themeService == null)
+      {
+         throw new PortletException("No ThemeService found");
+      }
    }
 
    private PortalObjectId dashboardId = PortalObjectId.parse("/dashboard", PortalObjectId.CANONICAL_FORMAT);
@@ -106,6 +115,7 @@
 
       String errorMessage = (String)req.getParameter("errorMsg");
 
+      // load portal + page for editting.
       Portal portal = (Portal)portalObjectContainer.getObject(dashboardId).getChild(req.getUser().getUserName());
       Page page;
       if (req.getParameter("editPageSelect") != null)
@@ -118,6 +128,7 @@
          page = (Page)portal.getDefaultPage();
       }
 
+      // load insances this user has access to.
       List available_instances = (List)instanceContainer.getInstances();
 
       resp.setContentType("text/html");
@@ -126,6 +137,7 @@
          Map windowMap = getWindows(page);
 
          List regions = new ArrayList(windowMap.keySet());
+         regions.remove("unknown");
          Collections.sort(regions);
 
          req.setAttribute("windowMap", windowMap);
@@ -137,7 +149,7 @@
          log.error(errorMessage, e);
       }
 
-      // page select box
+      // loads avabailable pages for user to edit.
       List pages = new ArrayList();
       for (Iterator j = portal.getChildren().iterator(); j.hasNext();)
       {
@@ -148,10 +160,27 @@
          }
       }
 
+      // load available layouts/themes
+      Collection layouts = layoutService.getLayouts();
+      for (Iterator iterator = layouts.iterator(); iterator.hasNext();)
+      {
+         PortalLayout layout = (PortalLayout)iterator.next();
+         layout.getLayoutInfo().getName();
+      }
+      Collection themes = themeService.getThemes();
+
+      // Get the current layout and theme
+      String layoutId = page.getDeclaredProperty(ThemeConstants.PORTAL_PROP_LAYOUT);
+      PortalLayout currentLayout = layoutService.getLayout(layoutId, true);
+      String themeId = page.getProperty(ThemeConstants.PORTAL_PROP_THEME);
+
+      // dispatch
       req.setAttribute("available_instances", available_instances);
       req.setAttribute("pages", pages);
       req.setAttribute("currentPage", page.getName());
-
+      req.setAttribute("layouts", layouts);
+      req.setAttribute("currentLayout", currentLayout.getLayoutInfo().getName());
+      req.setAttribute("themes", themes);
       if (errorMessage != null)
       {
          req.setAttribute("errorMsg", errorMessage);
@@ -333,6 +362,31 @@
 
          actionResponse.setRenderParameter("op", "editPage");
       }
+      else if ("assignLayout".equals(op))
+      {
+         String selectedLayout = actionRequest.getParameter("layout");
+
+         PortalLayout checkLayout = layoutService.getLayout(selectedLayout, true);
+         if (checkLayout != null)
+         {
+            page.setDeclaredProperty(ThemeConstants.PORTAL_PROP_LAYOUT, checkLayout.getLayoutInfo().getName());
+         }
+
+         actionResponse.setRenderParameter("editPageSelect", editPage);
+      }
+      else if ("assignTheme".equals(op))
+      {
+         String selectedLayout = actionRequest.getParameter("theme");
+
+         PortalLayout checkLayout = layoutService.getLayout(selectedLayout, true);
+
+         if (checkLayout != null)
+         {
+            page.setDeclaredProperty(ThemeConstants.PORTAL_PROP_LAYOUT, checkLayout.getLayoutInfo().getName());
+         }
+
+         actionResponse.setRenderParameter("editPageSelect", editPage);
+      }
       else
       {
          actionResponse.setRenderParameter("editPageSelect", editPage);

Modified: trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp
===================================================================
--- trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp	2006-12-13 18:38:05 UTC (rev 5850)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp	2006-12-13 22:16:24 UTC (rev 5851)
@@ -1,7 +1,10 @@
 <%@ page import="org.jboss.portal.core.model.instance.Instance" %>
 <%@ page import="org.jboss.portal.core.model.portal.Page" %>
 <%@ page import="org.jboss.portal.core.model.portal.Window" %>
+<%@ page import="org.jboss.portal.theme.PortalLayout" %>
+<%@ page import="org.jboss.portal.theme.PortalTheme" %>
 <%@ page import="java.util.ArrayList" %>
+<%@ page import="java.util.Collection" %>
 <%@ page import="java.util.Collections" %>
 <%@ page import="java.util.Iterator" %>
 <%@ page import="java.util.List" %>
@@ -21,7 +24,13 @@
    Map windowMap = (Map)request.getAttribute("windowMap");
 
    String currentPage = (String)request.getAttribute("currentPage");
+   String currentLayout = (String)request.getAttribute("currentLayout");
+   String currentTheme = (String)request.getAttribute("currentTheme");
+
    String errorMessage = (String)request.getAttribute("errorMsg");
+
+   Collection layouts = (Collection)request.getAttribute("layouts");
+   Collection themes = (Collection)request.getAttribute("themes");
 %>
 
 <script type="text/javascript" language="JavaScript">
@@ -43,11 +52,16 @@
       this.document.instancesform.sortRegion.value = region;
    }
 
-   function newPage(op)
+   function switchLayout(op)
    {
       this.document.instancesform.op.value = op;
    }
 
+   function switchTheme(op)
+   {
+      this.document.instancesform.op.value = op;
+   }
+
    function debug()
    {
       //alert("OP: '" + this.instancesForm.op.value + "' toRegion: '" + this.instancesForm.toRegion.value + "' fromRegion: '" + this.instancesForm.fromRegion.value + "' sortRegion: '" + this.instancesForm.sortRegion.value + "'");
@@ -67,144 +81,201 @@
 %>
 
 <table width="100%">
-<th colspan="2" class="portlet-section-header" align="center">Edit Page '<%= currentPage %>'</th>
+<th colspan="2" class="portlet-section-header" align="center">Personal Dashboard Editor</th>
 <tr>
-   <td class="portlet-section-body" align="left">
-      Use this to manage the content on your page. You can control the page title, select number of columns, and add,
-      order, or remove portlets.
+   <td class="portlet-section-body" align="center">
+      <table width="500">
+         <tr>
+            <td align="left">
+               Use this tool to manage the content and appearance of your dashboard pages. <br/>
+               You can control the page titles, column layouts, page themes,
+               and add,
+               order, or remove portlets.
+            </td>
+            <td>
+               <table class="bottombuttonbar">
+                  <tr>
+                     <td align="left" valign="top"><b>Create a New Page:</b><br/>Page name:&nbsp;
+                        <form name="createpageform" action="<portlet:actionURL><portlet:param name="op" value="newpage"></portlet:param>
+             </portlet:actionURL>" method="POST" style="padding:0;margin:0">
+                           <input type="text" class="portlet-form-input-field" name="pagename"><input type="submit"
+                                                                                                      name="save"
+                                                                                                      value="Save"
+                                                                                                      class="portlet-form-button"/>
+                        </form>
+                     </td>
+                  </tr>
+               </table>
+            </td>
+         </tr>
+      </table>
    </td>
 </tr>
+<th colspan="2" class="portlet-section-header" align="center">Currently editing page '<%= currentPage %>'</th>
 <tr>
-   <td>
-      <hr/>
-   </td>
-</tr>
-<tr>
-   <td class="portlet-section-body" align="left"><b>Select a page to edit:</b><br/>
-
+   <td class="portlet-section-body" align="center">
       <form action="<portlet:actionURL><portlet:param name="op" value="editPage"></portlet:param>
     </portlet:actionURL>" method="POST" style="padding:0;margin:0">
-         <select name="editPageSelect">
-            <%
-               for (int i = 0; i < pages.size(); i++)
+         Select: <select name="editPageSelect">
+         <%
+            for (int i = 0; i < pages.size(); i++)
+            {
+               Page onePage = (Page)pages.get(i);
+               String selected = "";
+               if (onePage.getName().equals(currentPage))
                {
-                  Page onePage = (Page)pages.get(i);
-                  if (onePage.getName().equals(currentPage))
-                  {
-            %>
-            <option selected="true" value="<%= onePage.getName() %>"><%= onePage.getName() %>
-            </option>
-            <%
+                  selected = " selected=\"true\" ";
+               }
+         %>
+         <option <%= selected %> value="<%= onePage.getName() %>"><%= onePage.getName() %>
+         </option>
+         <%
             }
-            else
-            {
-            %>
-            <option value="<%= onePage.getName() %>"><%= onePage.getName() %>
-            </option>
-            <%
-                  }
-               }
-            %>
-         </select>
+         %>
+      </select>
          <input type="submit" name="submit" value="Go" class="portlet-form-button"/>
       </form>
+
+      <br/>
    </td>
 </tr>
-<tr>
+<!--<tr>
    <td>
       <hr/>
    </td>
-</tr>
+</tr>-->
 <tr>
-   <td>
-      <form action="<portlet:actionURL>
+<td>
+<form action="<portlet:actionURL>
     </portlet:actionURL>" name="instancesform" method="POST" onsubmit="debug();">
-         <input type="hidden" name="op" value=""/>
-         <input type="hidden" name="toRegion" value=""/>
-         <input type="hidden" name="fromRegion" value=""/>
-         <input type="hidden" name="sortRegion" value=""/>
-         <input type="hidden" name="editPageSelect" value="<%= currentPage %>"/>
-         <table width="100%">
-            <tr>
-               <td valign="top" class="portlet-section-alternate" width="250">
-                  <table>
-                     <tr>
-                        <td valign="top">
-                           <b>Title and Layout</b>
-                           <br/>
-                           Title the page and select the number of columns for the layout
-                           <hr/>
-                           <b>Page Title:</b><br/>
-                           <input type="text" class="portlet-form-input-field" name="pagename">
-                           <br/>
-                           <input type="submit" name="save" value="Save" class="portlet-form-button"
-                                  onclick="newPage('newpage');"/>
-                        </td>
-                     </tr>
-                  </table>
-               </td>
-               <td class="portlet-section-body" valign="top" align="right"><b>Available Content</b><br/>
-                  <select name="available_instances" multiple="true" size="20">
-                     <%
-                        for (int i = 0; i < available_instances.size(); i++)
-                        {
-                           Instance instance = (Instance)available_instances.get(i);
-                     %>
-                     <option value="<%= instance.getId() %>"><%= instance.getId()%>
-                     </option>
-                     <%
-                        }
-                     %>
-                  </select>
-               </td>
-               <td>
-               <table>
-                  <%
-                     List regions = new ArrayList(windowMap.keySet());
-                     Collections.sort(regions);
-                     for (Iterator i = regions.iterator(); i.hasNext();)
+<input type="hidden" name="op" value=""/>
+<input type="hidden" name="toRegion" value=""/>
+<input type="hidden" name="fromRegion" value=""/>
+<input type="hidden" name="sortRegion" value=""/>
+<input type="hidden" name="editPageSelect" value="<%= currentPage %>"/>
+<table width="100%">
+<tr>
+<td valign="top" width="250">
+   <table class="bottombuttonbar">
+      <tr>
+         <td valign="top">
+            <b>Theme and Layout</b>
+            <br/>
+            Apply a theme to your page, or select the number of columns for the layout.
+            <hr/>
+         </td>
+      </tr>
+      <tr>
+         <td>
+
+            <select name="layout">
+               <%
+                  for (Iterator iterator = layouts.iterator(); iterator.hasNext();)
+                  {
+                     PortalLayout layout = (PortalLayout)iterator.next();
+                     String selected = "";
+                     if (layout.getLayoutInfo().getName().equals(currentLayout))
                      {
-                        String region = (String)i.next();
-                        TreeSet windows = (TreeSet)windowMap.get(region);
-                  %>
-                  <tr>
-                     <td>
-                        <input type="submit" class="portlet-form-button" name="&gt;" value="&gt;"
-                               onclick="assignPortlet('copy','<%= region %>');"/><br/><input
-                        type="submit" class="portlet-form-button" name="&lt;" value="&lt;"
-                        onclick="unassignPortlet('remove','<%= region %>');"/></td>
-                     <td class="portlet-section-body" valign="top">
-                        <b><%= region %> Column</b><br/>
-                        <select name="<%= region %>_instances" multiple="true" size="6">
-                           <%
-                              for (Iterator j = windows.iterator(); j.hasNext();)
-                              {
-                                 Window window = (Window)j.next();
-                           %>
-                           <option value="<%= window.getName() %>"><%= window.getInstanceRef() %>
-                           </option>
-                           <%
-                              }
-                           %>
-                        </select>
-                     </td>
-                     <td>
-                        <input type="submit" class="portlet-form-button" name="Up" value="Up"
-                               onclick="sortPortlet('up','<%= region %>');"/><br/><input
-                        type="submit" class="portlet-form-button" name="Down" value="Down"
-                        onclick="sortPortlet('down','<%= region %>');"/>
-                     </td>
-                  </tr>
-                  <%
+                        selected = " selected=\"true\" ";
                      }
-                  %>
-               </table>
-            </tr>
-         </table>
-      </form>
-   </td>
+               %>
+               <option <%=selected %>
+                  value="<%= layout.getLayoutInfo().getName() %>"><%= layout.getLayoutInfo().getName() %>
+               </option>
+               <%
+                  }
+               %>
+            </select>&nbsp;<input type="submit" class="portlet-form-button" name="Select" value="Select"
+                            onclick="switchLayout('assignLayout');"/>
+         </td>
+      </tr>
+      <tr>
+         <td>
+            <select name="theme">
+               <%
+                  for (Iterator iterator = themes.iterator(); iterator.hasNext();)
+                  {
+                     PortalTheme theme = (PortalTheme)iterator.next();
+                     String selected = "";
+                     if (theme.getThemeInfo().getName().equals(currentTheme))
+                     {
+                        selected = " selected=\"true\" ";
+                     }
+               %>
+               <option <%=selected %>
+                  value="<%= theme.getThemeInfo().getName() %>"><%= theme.getThemeInfo().getName() %>
+               </option>
+               <%
+                  }
+               %>
+            </select>&nbsp;<input type="submit" class="portlet-form-button" name="Select" value="Select"
+                            onclick="switchTheme('assignTheme');"/>
+         </td>
+      </tr>
+   </table>
+</td>
+<td class="portlet-section-body" valign="top" align="right"><b>Available Content</b><br/>
+   <select name="available_instances" multiple="true" size="20">
+      <%
+         for (int i = 0; i < available_instances.size(); i++)
+         {
+            Instance instance = (Instance)available_instances.get(i);
+      %>
+      <option value="<%= instance.getId() %>"><%= instance.getId()%>
+      </option>
+      <%
+         }
+      %>
+   </select>
+</td>
+<td>
+<table>
+   <%
+      List regions = new ArrayList(windowMap.keySet());
+      Collections.sort(regions);
+      for (Iterator i = regions.iterator(); i.hasNext();)
+      {
+         String region = (String)i.next();
+         TreeSet windows = (TreeSet)windowMap.get(region);
+   %>
+   <tr>
+      <td>
+         <input type="submit" class="portlet-form-button" name="&gt;" value="&gt;"
+                onclick="assignPortlet('copy','<%= region %>');"/><br/><input
+         type="submit" class="portlet-form-button" name="&lt;" value="&lt;"
+         onclick="unassignPortlet('remove','<%= region %>');"/></td>
+      <td class="portlet-section-body" valign="top">
+         <b><%= region %> Column</b><br/>
+         <select name="<%= region %>_instances" multiple="true" size="6">
+            <%
+               for (Iterator j = windows.iterator(); j.hasNext();)
+               {
+                  Window window = (Window)j.next();
+            %>
+            <option value="<%= window.getName() %>"><%= window.getInstanceRef() %>
+            </option>
+            <%
+               }
+            %>
+         </select>
+      </td>
+      <td>
+         <input type="submit" class="portlet-form-button" name="Up" value="Up"
+                onclick="sortPortlet('up','<%= region %>');"/><br/><input
+         type="submit" class="portlet-form-button" name="Down" value="Down"
+         onclick="sortPortlet('down','<%= region %>');"/>
+      </td>
+   </tr>
+   <%
+      }
+   %>
+</table>
 </tr>
 </table>
+</form>
+</td>
+</tr>
+</table>
 <hr/>
 <%
    if (!"default".equals(currentPage))
@@ -216,7 +287,7 @@
          <form action="<portlet:actionURL><portlet:param name="op" value="delete"></portlet:param>
     </portlet:actionURL>" method="POST" style="padding:0;margin:0">
             <input type="hidden" name="pagename" value="<%= currentPage %>"/>
-            <input type="submit" name="submit" value="Delete this Page"/>
+            <input type="submit" name="submit" value="Delete this Page" class="portlet-form-button"/>
             <br/>
             <font color="red">You cannot undo this action!</font>
          </form>




More information about the portal-commits mailing list