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]