[portal-commits] JBoss Portal SVN: r5807 - 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
Tue Dec 12 12:22:52 EST 2006


Author: roy.russo at jboss.com
Date: 2006-12-12 12:22:50 -0500 (Tue, 12 Dec 2006)
New Revision: 5807

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-1142 - added error handling in dashboard configure

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-12 04:59:21 UTC (rev 5806)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/dashboard/Configurator.java	2006-12-12 17:22:50 UTC (rev 5807)
@@ -59,11 +59,6 @@
  */
 public class Configurator extends JBossPortlet
 {
-
-   private static final int MOVE_UP = 0;
-
-   private static final int MOVE_DOWN = 1;
-
    private Logger log = Logger.getLogger(Configurator.class);
 
    private InstanceContainer instanceContainer;
@@ -100,7 +95,7 @@
    private PortalObjectId dashboardId = PortalObjectId.parse("/dashboard", PortalObjectId.CANONICAL_FORMAT);
 
    protected void doView(JBossRenderRequest req, JBossRenderResponse resp)
-      throws PortletException, PortletSecurityException, IOException
+      throws PortletException, IOException
    {
       // Generic page loader.
       String op = req.getParameter("op");
@@ -109,6 +104,8 @@
          op = "editPage";
       }
 
+      String errorMessage = (String)req.getParameter("errorMsg");
+
       Portal portal = (Portal)portalObjectContainer.getObject(dashboardId).getChild(req.getUser().getUserName());
       Page page;
       if (req.getParameter("editPageSelect") != null)
@@ -136,7 +133,8 @@
       }
       catch (Exception e)
       {
-         e.printStackTrace();
+         errorMessage = "Error loading dashboard settings.";
+         log.error(errorMessage, e);
       }
 
       // page select box
@@ -154,12 +152,19 @@
       req.setAttribute("pages", pages);
       req.setAttribute("currentPage", page.getName());
 
+      if (errorMessage != null)
+      {
+         req.setAttribute("errorMsg", errorMessage);
+      }
+
       PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/dashboard/editpage.jsp");
       rd.include(req, resp);
    }
 
    protected void processAction(JBossActionRequest actionRequest, JBossActionResponse actionResponse)
    {
+      String errorMessage = null;
+
       Portal portal = (Portal)portalObjectContainer.getObject(dashboardId).getChild(actionRequest.getUser().getUserName());
       Page page;
 
@@ -198,7 +203,8 @@
          }
          catch (Exception e)
          {
-            // todo
+            errorMessage = "Error adding window to region";
+            log.error(errorMessage, e);
          }
          actionResponse.setRenderParameter("editPageSelect", editPage);
       }
@@ -218,14 +224,7 @@
                   removeWindows = actionRequest.getParameterValues(region + "_instances");
                }
             }
-         }
-         catch (Exception e)
-         {
-            // todo
-         }
 
-         try
-         {
             for (int i = 0; i < removeWindows.length; i++)
             {
                page.destroyChild((String)removeWindows[i]);
@@ -233,7 +232,8 @@
          }
          catch (Exception e)
          {
-            // todo
+            errorMessage = "Error removing window from region";
+            log.error(errorMessage, e);
          }
          actionResponse.setRenderParameter("editPageSelect", editPage);
       }
@@ -273,7 +273,8 @@
          }
          catch (Exception e)
          {
-            // todo
+            errorMessage = "Error positioning windows";
+            log.error(errorMessage, e);
          }
          actionResponse.setRenderParameter("editPageSelect", editPage);
       }
@@ -285,11 +286,25 @@
 
          try
          {
+            if (pageName.startsWith(" "))
+            {
+               errorMessage = "Page name cannot be blank";
+               throw new Exception(errorMessage);
+            }
+            if (portal.getChild(pageName) != null)
+            {
+               errorMessage = "Duplicate page name found";
+               throw new Exception(errorMessage);
+            }
             pageContainer.createPage(pageName);
          }
          catch (Exception e)
          {
-            // todo - name taken
+            if (errorMessage == null)
+            {
+               errorMessage = "Error creating new page: " + pageName;
+            }
+            log.error(errorMessage, e);
          }
 
          actionResponse.setRenderParameter("editPageSelect", pageName);
@@ -300,12 +315,20 @@
          String pageName = actionRequest.getParameter("pagename");
          try
          {
-            // TODO: check for default page.
+            if (portal.getDefaultPage().getName().equalsIgnoreCase(pageName))
+            {
+               errorMessage = "Cannot delete default page";
+               throw new Exception(errorMessage);
+            }
             portal.destroyChild(pageName);
          }
          catch (Exception e)
          {
-            // do something
+            if (errorMessage == null)
+            {
+               errorMessage = "Error deleting page: " + pageName;
+            }
+            log.error(errorMessage, e);
          }
 
          actionResponse.setRenderParameter("op", "editPage");
@@ -315,6 +338,13 @@
          actionResponse.setRenderParameter("editPageSelect", editPage);
          actionResponse.setRenderParameter("op", "editPage");
       }
+
+      // req/res doesnt allow nulls
+      if (errorMessage == null)
+      {
+         errorMessage = "";
+      }
+      actionResponse.setRenderParameter("errorMsg", errorMessage);
    }
 
    private int doWindowNaming()
@@ -365,7 +395,6 @@
          if (sign == 0)
          {
             sign = w1.getName().compareTo(w2.getName());
-            //sign = w1.getId().compareTo(w2.getId());
          }
          return sign;
       }

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-12 04:59:21 UTC (rev 5806)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/jsp/dashboard/editpage.jsp	2006-12-12 17:22:50 UTC (rev 5807)
@@ -21,6 +21,7 @@
    Map windowMap = (Map)request.getAttribute("windowMap");
 
    String currentPage = (String)request.getAttribute("currentPage");
+   String errorMessage = (String)request.getAttribute("errorMsg");
 %>
 
 <script type="text/javascript" language="JavaScript">
@@ -52,6 +53,19 @@
       //alert("OP: '" + this.instancesForm.op.value + "' toRegion: '" + this.instancesForm.toRegion.value + "' fromRegion: '" + this.instancesForm.fromRegion.value + "' sortRegion: '" + this.instancesForm.sortRegion.value + "'");
    }
 </script>
+
+<%
+   if (errorMessage != null)
+   {
+%>
+<div align="center">
+   <font color="red"><b><%= errorMessage %>
+   </b></font>
+</div>
+<%
+   }
+%>
+
 <table width="100%">
 <th colspan="2" class="portlet-section-header" align="center">Edit Page '<%= currentPage %>'</th>
 <tr>




More information about the portal-commits mailing list