Author: roy.russo(a)jboss.com
Date: 2006-12-11 15:32:31 -0500 (Mon, 11 Dec 2006)
New Revision: 5802
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:
- dashboard configuration retooling.
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-11
18:39:47 UTC (rev 5801)
+++
trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java 2006-12-11
20:32:31 UTC (rev 5802)
@@ -25,11 +25,11 @@
import org.jboss.portal.core.model.instance.InstanceContainer;
import org.jboss.portal.core.model.portal.Page;
import org.jboss.portal.core.model.portal.PageContainer;
+import org.jboss.portal.core.model.portal.Portal;
import org.jboss.portal.core.model.portal.PortalObject;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.model.portal.PortalObjectId;
-import org.jboss.portal.core.model.portal.Portal;
import org.jboss.portal.theme.LayoutService;
import org.jboss.portal.theme.PortalLayout;
import org.jboss.portal.theme.ThemeConstants;
@@ -109,57 +109,37 @@
op = "editPage";
}
- Portal portal;
+ Portal portal =
(Portal)portalObjectContainer.getObject(dashboardId).getChild(req.getUser().getUserName());
+ Page page;
if (req.getParameter("editPageSelect") != null)
{
String editPageSelect = req.getParameter("editPageSelect");
- portal =
(Portal)portalObjectContainer.getObject(dashboardId).getChild(editPageSelect);
+ page = (Page)portal.getChild(editPageSelect);
}
else
{
- portal =
(Portal)portalObjectContainer.getObject(dashboardId).getChild(req.getUser().getUserName());
+ page = (Page)portal.getDefaultPage();
}
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(portal.getDefaultPage());
+ 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 = portal.getChildren().iterator(); j.hasNext();)
{
@@ -170,31 +150,35 @@
}
}
- 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", portal.getName());
+ req.setAttribute("currentPage", page.getName());
+
PortletRequestDispatcher rd =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/dashboard/editpage.jsp");
rd.include(req, resp);
}
protected void processAction(JBossActionRequest actionRequest, JBossActionResponse
actionResponse)
{
+ Portal portal =
(Portal)portalObjectContainer.getObject(dashboardId).getChild(actionRequest.getUser().getUserName());
+ Page page;
+
String op = actionRequest.getParameter("op");
String editPage = actionRequest.getParameter("editPageSelect"); // the
current page we're editting
- if (editPage == null)
+ if (editPage == null || "default".equalsIgnoreCase(editPage))
{
- editPage = actionRequest.getUser().getUserName();
+ page = (Page)portal.getDefaultPage();
}
+ else
+ {
+ page = (Page)portal.getChild(editPage);
+ }
+
if ("copy".equals(op))
{
String toRegion = actionRequest.getParameter("toRegion");
String[] copyInstance =
actionRequest.getParameterValues("available_instances");
- Page page =
(Page)portalObjectContainer.getObject(dashboardId).getChild(editPage);
try
{
for (int i = 0; i < copyInstance.length; i++)
@@ -221,20 +205,24 @@
{
String fromRegion = actionRequest.getParameter("fromRegion");
String[] removeWindows = null;
- if ("left".equals(fromRegion))
+ 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 =
(Page)portalObjectContainer.getObject(dashboardId).getChild(editPage);
try
{
for (int i = 0; i < removeWindows.length; i++)
@@ -252,40 +240,47 @@
{
String sortRegion = actionRequest.getParameter("sortRegion");
String[] moveWindows = null;
- if ("left".equals(sortRegion))
+ try
{
- moveWindows = actionRequest.getParameterValues("left_instances");
- }
- else if ("center".equals(sortRegion))
- {
- moveWindows =
actionRequest.getParameterValues("center_instances");
- }
- else if ("right".equals(sortRegion))
- {
- moveWindows = actionRequest.getParameterValues("right_instances");
- }
-
- Page page =
(Page)portalObjectContainer.getObject(dashboardId).getChild(editPage);
- for (int i = 0; i < moveWindows.length; i++)
- {
- Window window = page.getWindow(moveWindows[i]);
- if ("up".equals(op))
+ Map windowMap = getWindows(page);
+ List regions = new ArrayList(windowMap.keySet());
+ for (int i = 0; i < regions.size(); i++)
{
- window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(getOrder(window) - 1));
+ String region = (String)regions.get(i);
+ if (region.equalsIgnoreCase(sortRegion))
+ {
+ moveWindows = actionRequest.getParameterValues(region +
"_instances");
+ }
}
- else if ("down".equals(op))
+
+ SortedSet windows = (SortedSet)windowMap.get(sortRegion);
+
+ for (int i = 0; i < moveWindows.length; i++)
{
- window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(getOrder(window) + 1));
+ Window window = page.getWindow(moveWindows[i]);
+ if ("up".equals(op))
+ {
+ int order = getMoveUpOrder(window, windows);
+ window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(order));
+ }
+ else if ("down".equals(op))
+ {
+ int order = getMoveDownOrder(window, windows);
+ window.setDeclaredProperty(ThemeConstants.PORTAL_PROP_ORDER,
Integer.toString(order));
+ }
}
}
+ catch (Exception e)
+ {
+ // todo
+ }
actionResponse.setRenderParameter("editPageSelect", editPage);
}
else if ("newpage".equals(op))
{
String pageName = actionRequest.getParameter("pagename");
- Page page =
(Page)portalObjectContainer.getObject(dashboardId).getChild(actionRequest.getUser().getUserName());
- PageContainer pageContainer = page.getPortal();
+ PageContainer pageContainer = (PageContainer)page.getPortal();
try
{
@@ -299,11 +294,6 @@
actionResponse.setRenderParameter("editPageSelect", pageName);
actionResponse.setRenderParameter("op", "editPage");
}
- else if ("editPage".equals(op))
- {
- actionResponse.setRenderParameter("editPageSelect", editPage);
- actionResponse.setRenderParameter("op", op);
- }
}
private int doWindowNaming()
@@ -353,7 +343,8 @@
int sign = getOrder(w1) - getOrder(w2);
if (sign == 0)
{
- sign = w1.getId().compareTo(w2.getId());
+ sign = w1.getName().compareTo(w2.getName());
+ //sign = w1.getId().compareTo(w2.getId());
}
return sign;
}
@@ -370,4 +361,50 @@
return Integer.MAX_VALUE;
}
}
+
+ private static int getMoveUpOrder(Window window, SortedSet set)
+ {
+ Window previous = null;
+ for (Iterator i = set.iterator(); i.hasNext();)
+ {
+ Window current = (Window)i.next();
+
+ if (current.getName().equalsIgnoreCase(window.getName()))
+ {
+ if (previous == null)
+ {
+ return getOrder(current);
+ }
+ else
+ {
+ return (getOrder(previous) - 1);
+ }
+ }
+ previous = current;
+ }
+ return 0;
+ }
+
+ private int getMoveDownOrder(Window window, SortedSet set)
+ {
+ for (Iterator i = set.iterator(); i.hasNext();)
+ {
+ Window current = (Window)i.next();
+
+ if (current.getName().equalsIgnoreCase(window.getName()))
+ {
+ Window next = (Window)i.next();
+
+ if (next == null)
+ {
+ return getOrder(current);
+ }
+ else
+ {
+ return (getOrder(next) + 1);
+ }
+ }
+ }
+ return 0;
+ }
}
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-11
18:39:47 UTC (rev 5801)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp 2006-12-11
20:32:31 UTC (rev 5802)
@@ -16,12 +16,8 @@
<%
List available_instances =
(List)request.getAttribute("available_instances");
- List left_instances = (List)request.getAttribute("left_instances");
- 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");
Show replies by date