You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2006/02/11 21:19:26 UTC

svn commit: r377043 - /portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java

Author: ate
Date: Sat Feb 11 12:19:23 2006
New Revision: 377043

URL: http://svn.apache.org/viewcvs?rev=377043&view=rev
Log:
Added more generic methods to add a Portlet to a layout or remove a fragment to be able to support nested layouts.
Also refactored the existing onces to make use of these new methods.
See http://issues.apache.org/jira/browse/JS2-468.

Modified:
    portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java

Modified: portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java?rev=377043&r1=377042&r2=377043&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java (original)
+++ portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java Sat Feb 11 12:19:23 2006
@@ -263,41 +263,67 @@
 
     protected void removeFragment(String pageId, String fragmentId)
     {
+        Page page = null;
+        try
+        {
+            page = pageManager.getPage(pageId);
+            
+        }
+        catch (Exception e)
+        {
+            log.error("failed to remove portlet " + fragmentId + " from page: " + pageId, e);
+        }
+        removeFragment(page,page.getRootFragment(), fragmentId);            
+    }
+    
+    protected void removeFragment(Page page, Fragment root, String fragmentId)
+    {
         try
         {
-            Page page = pageManager.getPage(pageId);
             Fragment f = page.getFragmentById(fragmentId);
-            Fragment root = page.getRootFragment();
+            if ( f == null )
+            {
+                // ignore no longer existing fragment error
+                return;
+            }
             root.getFragments().remove(f);
             pageManager.updatePage(page);
         }
         catch (Exception e)
         {
-            log.error("failed to remove portlet " + fragmentId + " from page: " + pageId);
+            log.error("failed to remove portlet " + fragmentId + " from page: " + page, e);
         }
-            
     }
     
     protected void addPortletToPage(String pageId, String portletId)
     {
+        Page page = null;
+        try
+        {
+            page = pageManager.getContentPage(pageId);
+        }
+        catch (Exception e)
+        {
+            log.error("failed to add portlet " + portletId + " to page: " + pageId, e);
+        }
+        addPortletToPage(page, page.getRootFragment(), portletId);
+    }
+    
+    protected void addPortletToPage(Page page, Fragment root, String portletId)
+    {
         try
         {
             Fragment fragment = pageManager.newFragment();
             fragment.setType(Fragment.PORTLET);
             fragment.setName(portletId);
             
-            Page page = pageManager.getContentPage(pageId);
-            // WARNING: under construction
-            // this is prototype and very dependent on a single depth fragment structure            
-            Fragment root = page.getRootFragment();
             root.getFragments().add(fragment);
             pageManager.updatePage(page);            
         }
         catch (Exception e)
         {
-            log.error("failed to add portlet " + portletId + " to page: " + pageId);
+            log.error("failed to add portlet " + portletId + " to page: " + page, e);
         }
-        
     }
     
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org