Author: weaver
Date: Fri Aug 19 07:26:07 2005
New Revision: 233489

URL: http://svn.apache.org/viewcvs?rev=233489&view=rev
Log:
See JS2-340: http://issues.apache.org/jira/browse/JS2-340

Modified:
    
portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
    
portals/jetspeed-2/trunk/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java
    
portals/jetspeed-2/trunk/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm

Modified: 
portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
URL: 
http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java?rev=233489&r1=233488&r2=233489&view=diff
==============================================================================
--- 
portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
 (original)
+++ 
portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
 Fri Aug 19 07:26:07 2005
@@ -22,6 +22,8 @@
 import java.util.StringTokenizer;
 import java.util.Vector;
 
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
 import javax.portlet.PortletConfig;
 import javax.portlet.PortletException;
 import javax.portlet.RenderRequest;
@@ -33,6 +35,8 @@
 import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.page.PageManager;
+import org.apache.jetspeed.page.PageNotFoundException;
+import org.apache.jetspeed.page.document.NodeException;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.pluto.om.window.PortletWindow;
 
@@ -90,52 +94,7 @@
             throw new PortletException("Failed to build ColumnLayout 
"+e1.getMessage(), e1);
         }
 
-        if (request.getParameter("move") != null && 
request.getParameter("fragmentId") != null)
-        {            
-            Fragment fragmentToMove = 
page.getFragmentById(request.getParameter("fragmentId"));
-           
-            int moveCode = Integer.parseInt(request.getParameter("move"));     
      
-
-            try
-            {                
-                switch (moveCode)
-                {
-                case LayoutEvent.MOVED_UP:
-                    layout.moveUp(fragmentToMove);
-                    break;
-                case LayoutEvent.MOVED_DOWN:
-                    layout.moveDown(fragmentToMove);
-                    break;
-                case LayoutEvent.MOVED_RIGHT:
-                    layout.moveRight(fragmentToMove);
-                    break;
-                case LayoutEvent.MOVED_LEFT:
-                    layout.moveLeft(fragmentToMove);
-                    break;
-                default:
-                    throw new PortletException("Invalid movement code " + 
moveCode);
-                }
-               
-            }
-            catch (SecurityException se)
-            {
-                // ignore page security constraint violations, only
-                // permitted users can edit managed pages; page
-                // update will remain transient
-                log.info("Unable to update page " + page.getId() + " layout 
due to security permission/constraint.", se);
-            }
-            catch (Exception e)
-            {
-                if (e instanceof PortletException)
-                {
-                    throw (PortletException)e;
-                }
-                else
-                {
-                    throw new PortletException("Unable to process layout for 
page " + page.getId() + " layout: " + e.toString(), e);
-                }
-            }
-        }
+       
 
         // if (targetState != null && targetState.isMaximized())
         if (window != null)
@@ -204,5 +163,82 @@
         }
 
         return list;
+    }
+
+    public void processAction(ActionRequest request, ActionResponse response) 
throws PortletException, IOException
+    {
+        if (request.getParameter("move") != null 
+                && request.getParameter("fragmentToMove") != null
+                && request.getParameter("editingPage") != null)
+        {        
+            Page page;
+            try
+            {
+                page = pm.getPage(request.getParameter("editingPage"));
+            }
+            catch (Exception e)
+            {
+                throw new PortletException("Unable to access page for editing: 
"+e.getMessage());
+            }
+          
+            Fragment rootFragment = page.getRootFragment();
+            Fragment fragmentToMove = 
page.getFragmentById(request.getParameter("fragmentToMove"));           
+            int moveCode = Integer.parseInt(request.getParameter("move"));
+            
+            ColumnLayout layout;
+            try
+            {
+                layout = new ColumnLayout(numColumns, layoutType, 
rootFragment.getFragments(), this.colSizes.split("\\,") );
+                layout.addLayoutEventListener(new 
PageManagerLayoutEventListener(pm, page, layoutType));
+            }
+            catch (LayoutEventException e1)
+            {
+                throw new PortletException("Failed to build ColumnLayout 
"+e1.getMessage(), e1);
+            }
+
+            try
+            {                
+                switch (moveCode)
+                {
+                case LayoutEvent.MOVED_UP:
+                    layout.moveUp(fragmentToMove);
+                    break;
+                case LayoutEvent.MOVED_DOWN:
+                    layout.moveDown(fragmentToMove);
+                    break;
+                case LayoutEvent.MOVED_RIGHT:
+                    layout.moveRight(fragmentToMove);
+                    break;
+                case LayoutEvent.MOVED_LEFT:
+                    layout.moveLeft(fragmentToMove);
+                    break;
+                default:
+                    throw new PortletException("Invalid movement code " + 
moveCode);
+                }
+               
+            }
+            catch (SecurityException se)
+            {
+                // ignore page security constraint violations, only
+                // permitted users can edit managed pages; page
+                // update will remain transient
+                log.info("Unable to update page " + page.getId() + " layout 
due to security permission/constraint.", se);
+            }
+            catch (Exception e)
+            {
+                if (e instanceof PortletException)
+                {
+                    throw (PortletException)e;
+                }
+                else
+                {
+                    throw new PortletException("Unable to process layout for 
page " + page.getId() + " layout: " + e.toString(), e);
+                }
+            }
+        }
+        else
+        {        
+            super.processAction(request, response);
+        }
     }
 }

Modified: 
portals/jetspeed-2/trunk/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java
URL: 
http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java?rev=233489&r1=233488&r2=233489&view=diff
==============================================================================
--- 
portals/jetspeed-2/trunk/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java
 (original)
+++ 
portals/jetspeed-2/trunk/layout-portlets/src/test/org/apache/jetspeed/portlets/layout/TestColumnLayout.java
 Fri Aug 19 07:26:07 2005
@@ -39,13 +39,15 @@
     private FragmentImpl f5;
 
     private FragmentImpl f6;
+    
+    private FragmentImpl f8;
 
     public void testBasics() throws Exception
     {
         assertEquals(f1, layout.getFirstColumn().iterator().next());
         
         // The last column is currently empty
-        assertTrue(layout.getLastColumn().isEmpty());
+      //  assertTrue(layout.getLastColumn().isEmpty());
 
         assertEquals(3, layout.getNumberOfColumns());
         Iterator column0 = layout.getColumn(0).iterator();
@@ -441,6 +443,11 @@
         f6.setId("f6");
         f6.setPropertyValue("test", "row", "2");
         f6.setPropertyValue("test", "column", "1");
+        
+        f8 = new FragmentImpl();
+        f8.setId("f8");
+        f8.setPropertyValue("test", "row", "1");
+        f8.setPropertyValue("test", "column", "2");
 
         layout = new ColumnLayout(3, "test", widthes );
         layout.addFragment(f1);
@@ -449,6 +456,7 @@
         layout.addFragment(f4);
         layout.addFragment(f5);
         layout.addFragment(f6);
+        layout.addFragment(f8);
     }
 
     protected LayoutEvent createEvent(Fragment fragment, ColumnLayout layout, 
int eventType) throws Exception

Modified: 
portals/jetspeed-2/trunk/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm
URL: 
http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm?rev=233489&r1=233488&r2=233489&view=diff
==============================================================================
--- 
portals/jetspeed-2/trunk/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm
 (original)
+++ 
portals/jetspeed-2/trunk/src/webapp/WEB-INF/templates/layout/html/columns/layout.vm
 Fri Aug 19 07:26:07 2005
@@ -56,14 +56,15 @@
        #foreach($column in $columnLayout.columns)
          #set($columnWidth = "auto")
          
-         #if ($columnLayout.getSafeColumnWidth($sizeIndex, 1) > 0)
-           #set($columnWidth = $columnLayout.getSafeColumnWidth($sizeIndex, 4))
+         #if ($columnLayout.getColumnWidth($sizeIndex) > 0)
+           #set($columnWidth = $columnLayout.getColumnWidth($sizeIndex))
          #end
 
          #set ($sizeIndex = $sizeIndex + 1)  
          <div class="portal-layout-column" style="width:${columnWidth}%;">
                 
             #foreach($f in $column)
+            
            ## Set up coordinates for this fragment
            #set($coords = $columnLayout.getCoordinate($f))       
            #set($col = $coords.x)
@@ -74,20 +75,23 @@
                   <div class="portal-layout-cell" >
                   ## editing block
                   #if($editing)
+                  <div class="portlet-edit-bar">
                         ## Move portlet left
                         #if($lastColumn > 0 && $col > 0)            
-               #set($leftUrl = $renderResponse.createRenderURL())    
+               #set($leftUrl = $renderResponse.createActionURL())    
                $!leftUrl.setParameter("move","3")
-               $!leftUrl.setParameter("fragmentId","$f.id")    
+               $!leftUrl.setParameter("fragmentToMove","$f.id")
+                          $!leftUrl.setParameter("editingPage","$myPage.id")  
                #set ($imgsrc="$layoutImageBase/movePortletLeft.gif")
                <a href="$leftUrl" class="move-portlet-left"><img 
src="$jetspeed.getAbsoluteUrl($imgsrc)" border="0" title="Move Portlet 
Left"/></a>
                         #end
                         
                         ## Move portlet up     
                         #if($row > 0)                     
-               #set($upUrl = $renderResponse.createRenderURL())    
+               #set($upUrl = $renderResponse.createActionURL())    
                  $!upUrl.setParameter("move","1")
-                 $!upUrl.setParameter("fragmentId","$f.id")
+                 $!upUrl.setParameter("fragmentToMove","$f.id")
+                                
$!upUrl.setParameter("editingPage","$myPage.id") 
                  #set ($imgsrc="$layoutImageBase/movePortletUp.gif")
                  <a href="$upUrl" class="move-portlet-up"><img 
src="$jetspeed.getAbsoluteUrl($imgsrc)" border="0" title="Move Portlet Up"/></a>
                         #end
@@ -101,21 +105,24 @@
                         
                         ## Move portlet down
              #if($row < $lastRow)                                              
-               #set($downUrl = $renderResponse.createRenderURL())      
+               #set($downUrl = $renderResponse.createActionURL())      
                $!downUrl.setParameter("move","2")
-               $!downUrl.setParameter("fragmentId","$f.id")
+               $!downUrl.setParameter("fragmentToMove","$f.id")
+                          $!downUrl.setParameter("editingPage","$myPage.id") 
                #set ($imgsrc="$layoutImageBase/movePortletDown.gif")
                <a href="$downUrl" class="move-portlet-down"><img 
src="$jetspeed.getAbsoluteUrl($imgsrc)" border="0" title="Move Portlet 
Down"/></a>
                         #end
                         
                         ## Move portlet right
              #if($lastColumn > 0 && $col < $lastColumn)
-               #set($rightUrl = $renderResponse.createRenderURL())    
+               #set($rightUrl = $renderResponse.createActionURL())    
                $!rightUrl.setParameter("move","4")
-               $!rightUrl.setParameter("fragmentId","$f.id")
+               $!rightUrl.setParameter("fragmentToMove","$f.id")
+                          $!rightUrl.setParameter("editingPage","$myPage.id") 
                #set ($imgsrc="$layoutImageBase/movePortletRight.gif")
                <a href="$rightUrl" class="move-portlet-right"><img 
src="$jetspeed.getAbsoluteUrl($imgsrc)" border="0" title="Move Portlet 
Right"/></a>
-             #end
+                        #end
+                  </div>
                   #end
                   
                   #if($f.type == "portlet")



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to