Author: roy.russo(a)jboss.com
Date: 2006-11-28 12:21:10 -0500 (Tue, 28 Nov 2006)
New Revision: 5736
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:
JBPORTAL-1143
- Added dynamic region handling for window assignment
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-11-28
14:10:12 UTC (rev 5735)
+++
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java 2006-11-28
17:21:10 UTC (rev 5736)
@@ -115,45 +115,24 @@
}
List available_instances = (List)instanceContainer.getInstances();
- List left_instances = new ArrayList();
- List center_instances = new ArrayList();
- List right_instances = new ArrayList();
+ resp.setContentType("text/html");
try
{
Map windowMap = getWindows(page);
+
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);
- for (Iterator j = windows.iterator(); j.hasNext();)
- {
- Window window = (Window)j.next();
- if (region.equals("left"))
- {
- left_instances.add(window);
- //System.out.println(window.getInstanceRef() + ":" +
window.getDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER));
- }
- else if (region.equals("center"))
- {
- center_instances.add(window);
- }
- else if (region.equals("right"))
- {
- right_instances.add(window);
- }
- }
- }
+ req.setAttribute("windowMap", windowMap);
+ req.setAttribute("regions", regions);
}
catch (Exception e)
{
e.printStackTrace();
}
+ // page select box
List pages = new ArrayList();
for (Iterator j = page.getPortal().getChildren().iterator(); j.hasNext();)
{
@@ -164,13 +143,10 @@
}
}
- resp.setContentType("text/html");
req.setAttribute("available_instances", available_instances);
- req.setAttribute("left_instances", left_instances);
- req.setAttribute("center_instances", center_instances);
- req.setAttribute("right_instances", right_instances);
req.setAttribute("pages", pages);
req.setAttribute("currentPage", page.getName());
+
PortletRequestDispatcher rd =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/dashboard/editpage.jsp");
rd.include(req, resp);
}
@@ -215,20 +191,26 @@
{
String fromRegion = actionRequest.getParameter("fromRegion");
String[] removeWindows = null;
- if ("left".equals(fromRegion))
+
+ Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(editPage);
+ try
{
- removeWindows =
actionRequest.getParameterValues("left_instances");
+ Map windowMap = getWindows(page);
+ List regions = new ArrayList(windowMap.keySet());
+ for (int i = 0; i < regions.size(); i++)
+ {
+ String region = (String)regions.get(i);
+ if (region.equalsIgnoreCase(fromRegion))
+ {
+ removeWindows = actionRequest.getParameterValues(region +
"_instances");
+ }
+ }
}
- else if ("center".equals(fromRegion))
+ catch (Exception e)
{
- removeWindows =
actionRequest.getParameterValues("center_instances");
+ // todo
}
- else if ("right".equals(fromRegion))
- {
- removeWindows =
actionRequest.getParameterValues("right_instances");
- }
- Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(editPage);
try
{
for (int i = 0; i < removeWindows.length; i++)
@@ -246,20 +228,26 @@
{
String sortRegion = actionRequest.getParameter("sortRegion");
String[] moveWindows = null;
- if ("left".equals(sortRegion))
+
+ Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(editPage);
+ try
{
- moveWindows = actionRequest.getParameterValues("left_instances");
+ Map windowMap = getWindows(page);
+ List regions = new ArrayList(windowMap.keySet());
+ for (int i = 0; i < regions.size(); i++)
+ {
+ String region = (String)regions.get(i);
+ if (region.equalsIgnoreCase(sortRegion))
+ {
+ moveWindows = actionRequest.getParameterValues(region +
"_instances");
+ }
+ }
}
- else if ("center".equals(sortRegion))
+ catch (Exception e)
{
- moveWindows =
actionRequest.getParameterValues("center_instances");
+ // todo
}
- else if ("right".equals(sortRegion))
- {
- moveWindows = actionRequest.getParameterValues("right_instances");
- }
- Page page =
portalObjectContainer.getContext().getPortal("dashboard").getPage(editPage);
for (int i = 0; i < moveWindows.length; i++)
{
Window window = page.getWindow(moveWindows[i]);
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-11-28
14:10:12 UTC (rev 5735)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp 2006-11-28
17:21:10 UTC (rev 5736)
@@ -1,7 +1,12 @@
<%@ 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="java.util.ArrayList" %>
+<%@ page import="java.util.Collections" %>
+<%@ page import="java.util.Iterator" %>
<%@ page import="java.util.List" %>
+<%@ page import="java.util.Map" %>
+<%@ page import="java.util.TreeSet" %>
<%@ page language="java"
extends="org.jboss.portal.core.servlet.jsp.PortalJsp" %>
<%@ taglib
uri="http://java.sun.com/portlet" prefix="portlet"
%>
<%@ taglib uri="/WEB-INF/portal-lib.tld" prefix="n" %>
@@ -15,6 +20,10 @@
List center_instances = (List)request.getAttribute("center_instances");
List right_instances = (List)request.getAttribute("right_instances");
List pages = (List)request.getAttribute("pages");
+
+ //List regions = (List)request.getAttribute("regions");
+ Map windowMap = (Map)request.getAttribute("windowMap");
+
String currentPage = (String)request.getAttribute("currentPage");
%>
@@ -87,133 +96,95 @@
</td>
</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"/>
-<input type="hidden" name="toRegion"/>
-<input type="hidden" name="fromRegion"/>
-<input type="hidden" name="sortRegion"/>
-<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>
- <tr>
- <td>
- <input type="submit" class="portlet-form-button"
name=">" value=">"
-
onclick="assignPortlet('copy','left');"/><br/><input
- type="submit" class="portlet-form-button"
name="<" value="<"
-
onclick="unassignPortlet('remove','left');"/></td>
- <td class="portlet-section-body" valign="top">
- <b>Left Column</b><br/>
- <select name="left_instances" multiple="true"
size="6">
- <%
- for (int i = 0; i < left_instances.size(); i++)
- {
- Window window = (Window)left_instances.get(i);
- %>
- <option value="<%= window.getName() %>"><%=
window.getInstanceRef() %>
- </option>
- <%
- }
- %>
- </select>
- </td>
- <td>
- <input type="submit" class="portlet-form-button"
name="Up" value="Up"
-
onclick="sortPortlet('up','left');"/><br/><input
- type="submit" class="portlet-form-button"
name="Down" value="Down"
- onclick="sortPortlet('down','left');"/>
- </td>
- </tr>
- <tr>
- <td>
- <input type="submit" class="portlet-form-button"
name=">" value=">"
-
onclick="assignPortlet('copy','center');"/><br/><input
- type="submit" class="portlet-form-button"
name="<" value="<"
-
onclick="unassignPortlet('remove','center');"/></td>
- <td class="portlet-section-body"
valign="top"><b>Middle Column</b><br/>
- <select name="center_instances" multiple="true"
size="6">
- <%
- for (int i = 0; i < center_instances.size(); i++)
- {
- Window window = (Window)center_instances.get(i);
- %>
- <option value="<%= window.getName() %>"><%=
window.getInstanceRef() %>
- </option>
- <%
- }
- %>
- </select></td>
- <td>
- <input type="submit" class="portlet-form-button"
name="Up" value="Up"
-
onclick="sortPortlet('up','center');"/><br/><input
- type="submit" class="portlet-form-button"
name="Down" value="Down"
-
onclick="sortPortlet('down','center');"/></td>
- </tr>
- <tr>
- <td>
- <input type="submit" class="portlet-form-button"
name=">" value=">"
-
onclick="assignPortlet('copy','right');"/><br/><input
- type="submit" class="portlet-form-button"
name="<" value="<"
-
onclick="unassignPortlet('remove','right');"/></td>
- <td class="portlet-section-body"
valign="top"><b>Right Column</b><br/>
- <select name="right_instances" multiple="true"
size="6">
- <%
- for (int i = 0; i < right_instances.size(); i++)
- {
- Window window = (Window)right_instances.get(i);
- %>
- <option value="<%= window.getName() %>"><%=
window.getInstanceRef() %>
- </option>
- <%
- }
- %>
- </select></td>
- <td>
- <input type="submit" class="portlet-form-button"
name="Up" value="Up"
-
onclick="sortPortlet('up','right');"/><br/><input
- type="submit" class="portlet-form-button"
name="Down" value="Down"
-
onclick="sortPortlet('down','right');"/></td>
- </tr>
-</table>
+ <input type="hidden" name="op"/>
+ <input type="hidden" name="toRegion"/>
+ <input type="hidden" name="fromRegion"/>
+ <input type="hidden" name="sortRegion"/>
+ <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();)
+ {
+ String region = (String)i.next();
+ TreeSet windows = (TreeSet)windowMap.get(region);
+ %>
+ <tr>
+ <td>
+ <input type="submit"
class="portlet-form-button" name=">"
value=">"
+ onclick="assignPortlet('copy','<%=
region %>');"/><br/><input
+ type="submit" class="portlet-form-button"
name="<" value="<"
+ 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>
-</form>
</td>
</tr>
-</table>
-</td>
-</tr>
</table>
\ No newline at end of file