[portal-commits] JBoss Portal SVN: r5802 - 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
Mon Dec 11 15:32:59 EST 2006


Author: roy.russo at 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");




More information about the portal-commits mailing list