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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to