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 rw...@apache.org on 2009/11/18 19:24:53 UTC
svn commit: r881862 [2/16] - in /portals/jetspeed-2/portal/trunk: ./
applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/
applications/jetspeed/src/main/webapp/WEB-INF/templates/
applications/jetspeed/src/main/webapp/decorations/layout/greenearth/ ...
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java Wed Nov 18 18:24:48 2009
@@ -32,8 +32,6 @@
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.jetspeed.CommonPortletServices;
import org.apache.jetspeed.PortalReservedParameters;
import org.apache.jetspeed.cache.JetspeedContentCache;
@@ -46,10 +44,14 @@
import org.apache.jetspeed.om.page.Fragment;
import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.page.FolderNotUpdatedException;
+import org.apache.jetspeed.page.PageManager;
import org.apache.jetspeed.page.document.NodeException;
import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.container.PortletWindow;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
*/
public class MultiColumnPortlet extends LayoutPortlet
@@ -72,6 +74,7 @@
protected DecorationFactory decorators;
protected JetspeedDesktop desktop;
protected JetspeedContentCache decoratorCache;
+ protected PageManager pageManager;
public void init( PortletConfig config ) throws PortletException
{
@@ -113,6 +116,12 @@
this.desktop = (JetspeedDesktop)getPortletContext().getAttribute(CommonPortletServices.CPS_DESKTOP);
this.decoratorCache = (JetspeedContentCache)getPortletContext().getAttribute(CommonPortletServices.CPS_DECORATOR_CACHE);
+
+ pageManager = (PageManager)getPortletContext().getAttribute(CommonPortletServices.CPS_PAGE_MANAGER_COMPONENT);
+ if (null == pageManager)
+ {
+ throw new PortletException("Failed to find the Page Manager on portlet initialization");
+ }
}
public void doView( RenderRequest request, RenderResponse response ) throws PortletException, IOException
@@ -123,12 +132,12 @@
PageEditAccess pageEditAccess = (PageEditAccess)context.getAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE);
if ( requestPage == null)
{
- // Targetting this portlet REQUIRES that the ProfilerValve has been invoked!
+ // Targeting this portlet REQUIRES that the ProfilerValve has been invoked!
throw new PortletException("Current request page not available.");
}
if (pageEditAccess == null)
{
- // Targetting this portlet REQUIRES that the ProfilerValve has been invoked!
+ // Targeting this portlet REQUIRES that the ProfilerValve has been invoked!
throw new PortletException("Current PageEditAccess not available.");
}
@@ -145,7 +154,7 @@
}
// get fragment column sizes
- Fragment f = getFragment(request, false);
+ ContentFragment f = getFragment(request, false);
String fragmentColumnSizes = columnSizes;
String fragmentColumnSizesProperty = f.getProperty(Fragment.SIZES_PROPERTY_NAME);
if (fragmentColumnSizesProperty != null)
@@ -164,7 +173,7 @@
try
{
layout = new ColumnLayout(numColumns, layoutType, f.getFragments(), fragmentColumnSizesArray);
- layout.addLayoutEventListener(new PageManagerLayoutEventListener(pageManager, context.getPage(), layoutType));
+ layout.addLayoutEventListener(new PageLayoutEventListener(layoutType));
}
catch (LayoutEventException e1)
{
@@ -177,7 +186,7 @@
request.setAttribute("decorationFactory", this.decorators);
request.setAttribute("columnSizes", fragmentColumnSizesList);
request.setAttribute("editing",editing);
- request.setAttribute("fragmentNestingLevel",new Integer(getFragmentNestingLevel(requestPage,f.getId())));
+ request.setAttribute("fragmentNestingLevel",new Integer(requestPage.getFragmentNestingLevel(f.getId())));
super.doView(request, response);
request.removeAttribute("decorationFactory");
request.removeAttribute("columnLayout");
@@ -189,13 +198,13 @@
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException
{
- RequestContext requestContext = (RequestContext)request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
+ RequestContext requestContext = getRequestContext(request);
ContentPage requestPage = requestContext.getPage();
PageEditAccess pageEditAccess = (PageEditAccess)requestContext.getAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE);
if ( requestPage == null || pageEditAccess == null )
{
- // Targetting this portlet with an ActionRequest REQUIRES that the ProfilerValve has been invoked!
+ // Targeting this portlet with an ActionRequest REQUIRES that the ProfilerValve has been invoked!
throw new PortletException("Current request page or PageEditAccess not available.");
}
@@ -235,43 +244,34 @@
if ( layout != null && layout.length() > 0 )
{
PortletWindow window = requestContext.getActionWindow();
- ContentFragment targetFragment = requestPage.getContentFragmentById(window.getId().toString());
-
- if ( targetFragment == null )
+ ContentFragment targetFragment = requestPage.getFragmentById(window.getId().toString());
+ if ( targetFragment != null )
{
- // ignore no longer consistent page definition
- return;
- }
-
- if ( addLayout )
- {
- try
- {
- Fragment fragment = pageManager.newFragment();
- fragment.setType(Fragment.LAYOUT);
- fragment.setName(layout);
- targetFragment.getFragments().add(fragment);
- pageManager.updatePage(requestPage);
- clearLayoutAttributes(request);
- }
- catch (Exception e)
+ if ( addLayout )
{
- throw new PortletException("failed to add portlet " + layout + " to page: " + requestPage+": "+e.getMessage(), e);
- }
- }
- else if ( !layout.equals(targetFragment.getName()) )
- {
- try
- {
- // layout portlet change
- targetFragment.setName(layout);
- pageManager.updatePage(requestPage);
- clearLayoutAttributes(request);
- return;
+ try
+ {
+ targetFragment.addPortlet(Fragment.LAYOUT, layout);
+ clearLayoutAttributes(request);
+ }
+ catch (Exception e)
+ {
+ throw new PortletException("failed to add portlet " + layout + " to page: " + requestPage+": "+e.getMessage(), e);
+ }
}
- catch (Exception e)
+ else if ( !layout.equals(targetFragment.getName()) )
{
- throw new PortletException("Unable to update page: "+e.getMessage(), e);
+ try
+ {
+ // layout portlet change
+ targetFragment.updateName(layout);
+ clearLayoutAttributes(request);
+ return;
+ }
+ catch (Exception e)
+ {
+ throw new PortletException("Unable to update page: "+e.getMessage(), e);
+ }
}
}
}
@@ -283,49 +283,16 @@
String jsPageName = request.getParameter("jsPageName");
String jsPageTitle = request.getParameter("jsPageTitle");
String jsPageShortTitle = request.getParameter("jsPageShortTitle");
+ layout = request.getParameter("layout");
+ if ( ( layout == null ) || ( layout.length() == 0 ) )
+ {
+ layout = requestPage.getRootFragment().getName();
+ }
if ( jsPageName != null && jsPageName.length() > 0 && jsPageName.indexOf(Folder.PATH_SEPARATOR) == -1 )
{
try
- {
- Folder parent = (Folder)requestPage.getParent();
- if (parent != null)
- {
- String path = parent.getPath();
- if (path.endsWith(Folder.PATH_SEPARATOR))
- {
- path = path + getEscapedName(jsPageName);
- }
- else
- {
- path = path + Folder.PATH_SEPARATOR
- + getEscapedName(jsPageName);
- }
- Page page = pageManager.newPage(path);
- if ( layout == null || layout.length() == 0 )
- {
- layout = requestPage.getRootFragment().getName();
- }
- page.getRootFragment().setName(layout);
- page.setDefaultDecorator(requestPage.getDefaultDecorator(Fragment.LAYOUT), Fragment.LAYOUT);
- page.setDefaultDecorator(requestPage.getDefaultDecorator(Fragment.PORTLET), Fragment.PORTLET);
- page.setTitle(jsPageTitle != null && !jsPageTitle.equals("") ? jsPageTitle : jsPageName);
- page.setShortTitle(jsPageShortTitle != null
- && !jsPageShortTitle.equals("") ? jsPageShortTitle
- : jsPageName);
- pageManager.updatePage(page);
- clearLayoutAttributes(request);
- List orderList = parent.getDocumentOrder();
- if (orderList != null)
- {
- String name = page.getName();
- if (orderList.indexOf(name) < 0)
- {
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
- }
+ {
+ requestPage.newSiblingPage(getEscapedName(jsPageName), layout, jsPageTitle, jsPageShortTitle);
}
catch (Exception e)
{
@@ -342,16 +309,7 @@
.getParameter("jsPageShortTitle");
try
{
- if (jsPageTitle != null && !jsPageTitle.equals(""))
- {
- requestPage.setTitle(jsPageTitle);
- }
- if (jsPageShortTitle != null
- && !jsPageShortTitle.equals(""))
- {
- requestPage.setShortTitle(jsPageShortTitle);
- }
- pageManager.updatePage(requestPage);
+ requestPage.updateTitles(jsPageTitle, jsPageShortTitle);
}
catch (Exception e)
{
@@ -366,23 +324,7 @@
{
try
{
- Folder parent = (Folder)requestPage.getParent();
- pageManager.removePage(requestPage);
-
- if (parent != null)
- {
- List orderList = parent.getDocumentOrder();
- if (orderList != null)
- {
- String name = requestPage.getName();
- if (orderList.indexOf(name) > -1)
- {
- orderList.remove(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
- }
+ requestPage.remove();
}
catch (Exception e)
{
@@ -395,47 +337,7 @@
{
try
{
- Folder parent = (Folder) requestPage.getParent();
- if (parent != null)
- {
- List orderList = parent.getDocumentOrder();
- String name = requestPage.getName();
- if (orderList != null)
- {
- int index = orderList.indexOf(name);
- if (index > -1)
- {
- String type = requestPage.getType();
- int i = index - 1;
- while (i >= 0)
- {
- String value = (String) orderList.get(i);
- if (value.endsWith(type))
- {
- orderList.remove(index);
- orderList.add(i, name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- break;
- }
- i--;
- }
- }
- else
- {
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
- else
- {
- orderList = new ArrayList(4);
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
+ requestPage.decrementInDocumentOrder();
}
catch (Exception e)
{
@@ -450,47 +352,7 @@
{
try
{
- Folder parent = (Folder) requestPage.getParent();
- if (parent != null)
- {
- List orderList = parent.getDocumentOrder();
- String name = requestPage.getName();
- if (orderList != null)
- {
- int index = orderList.indexOf(name);
- if (index > -1)
- {
- String type = requestPage.getType();
- int i = index + 1;
- while (i < orderList.size())
- {
- String value = (String) orderList.get(i);
- if (value.endsWith(type))
- {
- orderList.remove(index);
- orderList.add(i, name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- break;
- }
- i++;
- }
- }
- else
- {
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
- else
- {
- orderList = new ArrayList(4);
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
+ requestPage.incrementInDocumentOrder();
}
catch (Exception e)
{
@@ -506,97 +368,17 @@
String jsFolderName = request.getParameter("jsFolderName");
String jsFolderTitle = request.getParameter("jsFolderTitle");
String jsFolderShortTitle = request.getParameter("jsFolderShortTitle");
+ layout = request.getParameter("layout");
+ if ( ( layout == null ) || ( layout.length() == 0 ) )
+ {
+ layout = requestPage.getRootFragment().getName();
+ }
if (jsFolderName != null && jsFolderName.length() > 0
&& jsFolderName.indexOf(Folder.PATH_SEPARATOR) == -1)
{
try
{
- Folder parent = (Folder) requestPage.getParent();
- if (parent != null)
- {
- String path = parent.getPath();
- if (path.endsWith(Folder.PATH_SEPARATOR))
- {
- path = path + getEscapedName(jsFolderName);
- }
- else
- {
- path = path + Folder.PATH_SEPARATOR
- + getEscapedName(jsFolderName);
- }
- Folder folder = pageManager.newFolder(path);
- if (layout == null || layout.length() == 0)
- {
- layout = requestPage.getRootFragment()
- .getName();
- }
- folder.setDefaultDecorator(requestPage
- .getDefaultDecorator(Fragment.LAYOUT),
- Fragment.LAYOUT);
- folder.setDefaultDecorator(requestPage
- .getDefaultDecorator(Fragment.PORTLET),
- Fragment.PORTLET);
- folder
- .setTitle(jsFolderTitle != null
- && !jsFolderTitle.equals("") ? jsFolderTitle
- : jsFolderName);
- folder
- .setShortTitle(jsFolderShortTitle != null
- && !jsFolderShortTitle.equals("") ? jsFolderShortTitle
- : jsFolderName);
- pageManager.updateFolder(folder);
-
- List orderList = parent.getDocumentOrder();
- if (orderList != null)
- {
- String name = folder.getName();
- if (orderList.indexOf(name) < 0)
- {
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
-
- // add default page
- path = folder.getPath();
- if (path.endsWith(Folder.PATH_SEPARATOR))
- {
- path = path + getEscapedName("default-page");
- }
- else
- {
- path = path + Folder.PATH_SEPARATOR
- + getEscapedName("default-page");
- }
- Page page = pageManager.newPage(path);
- if (layout == null || layout.length() == 0)
- {
- layout = requestPage.getRootFragment()
- .getName();
- }
- page.getRootFragment().setName(layout);
- page.setDefaultDecorator(requestPage
- .getDefaultDecorator(Fragment.LAYOUT),
- Fragment.LAYOUT);
- page.setDefaultDecorator(requestPage
- .getDefaultDecorator(Fragment.PORTLET),
- Fragment.PORTLET);
- page.setTitle(jsFolderName);
- pageManager.updatePage(page);
-
- orderList = folder.getDocumentOrder();
- if (orderList != null)
- {
- String name = page.getName();
- if (orderList.indexOf(name) < 0)
- {
- orderList.add(name);
- folder.setDocumentOrder(orderList);
- pageManager.updateFolder(folder);
- }
- }
- }
+ requestPage.newSiblingFolder(getEscapedName(jsFolderName), jsFolderTitle, jsFolderShortTitle, layout);
}
catch (Exception e)
{
@@ -615,21 +397,7 @@
.getParameter("jsFolderShortTitle");
try
{
- Folder parent = (Folder) requestPage.getParent();
- if (parent != null)
- {
- if (jsFolderTitle != null && !jsFolderTitle.equals(""))
- {
- parent.setTitle(jsFolderTitle);
- }
- if (jsFolderShortTitle != null
- && !jsFolderShortTitle.equals(""))
- {
- parent.setShortTitle(jsFolderShortTitle);
- }
- pageManager.updateFolder(parent);
- }
-
+ requestPage.updateFolderTitles(jsFolderTitle, jsFolderShortTitle);
}
catch (Exception e)
{
@@ -644,25 +412,7 @@
{
try
{
- Folder targetFolder = (Folder) requestPage.getParent();
- Folder parent = (Folder) targetFolder.getParent();
- if (parent != null)
- {
- List orderList = parent.getDocumentOrder();
- if (orderList != null)
- {
- String name = targetFolder.getName();
- if (orderList.indexOf(name) > -1)
- {
- orderList.remove(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
-
- // do not remove if the folder is root.
- pageManager.removeFolder(targetFolder);
- }
+ requestPage.removeFolder();
}
catch (Exception e)
{
@@ -677,48 +427,7 @@
{
try
{
- Folder targetFolder = (Folder) requestPage.getParent();
- Folder parent = (Folder) targetFolder.getParent();
- if (parent != null)
- {
- List orderList = parent.getDocumentOrder();
- String name = targetFolder.getName();
- if (orderList != null)
- {
- int index = orderList.indexOf(name);
- if (index > -1)
- {
- int i = index - 1;
- while (i >= 0)
- {
- String value = (String) orderList.get(i);
- if (!value.endsWith(".psml")
- && !value.endsWith(".link"))
- {
- orderList.remove(index);
- orderList.add(i, name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- break;
- }
- i--;
- }
- }
- else
- {
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
- else
- {
- orderList = new ArrayList(4);
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
+ requestPage.decrementFolderInDocumentOrder();
}
catch (Exception e)
{
@@ -733,48 +442,7 @@
{
try
{
- Folder targetFolder = (Folder) requestPage.getParent();
- Folder parent = (Folder) targetFolder.getParent();
- if (parent != null)
- {
- List orderList = parent.getDocumentOrder();
- String name = targetFolder.getName();
- if (orderList != null)
- {
- int index = orderList.indexOf(name);
- if (index > -1)
- {
- int i = index + 1;
- while (i < orderList.size())
- {
- String value = (String) orderList.get(i);
- if (!value.endsWith(".psml")
- && !value.endsWith(".link"))
- {
- orderList.remove(index);
- orderList.add(i, name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- break;
- }
- i++;
- }
- }
- else
- {
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
- else
- {
- orderList = new ArrayList(4);
- orderList.add(name);
- parent.setDocumentOrder(orderList);
- pageManager.updateFolder(parent);
- }
- }
+ requestPage.incrementFolderInDocumentOrder();
}
catch (Exception e)
{
@@ -786,12 +454,11 @@
}
String theme = request.getParameter("theme");
- if ( theme != null && theme.length() > 0 && !theme.equals(requestPage.getDefaultDecorator(Fragment.LAYOUT)) )
+ if ( theme != null && theme.length() > 0 )
{
- requestPage.setDefaultDecorator(theme, Fragment.LAYOUT);
try
{
- pageManager.updatePage(requestPage);
+ requestPage.updateDefaultDecorator(theme, Fragment.LAYOUT);
}
catch (Exception e)
{
@@ -808,114 +475,89 @@
{
int moveCode = Integer.parseInt(move);
PortletWindow window = requestContext.getActionWindow();
- Fragment currentFragment = requestPage.getFragmentById(window.getId().toString());
- Fragment fragmentToMove = requestPage.getFragmentById(fragmentId);
-
- if ( currentFragment == null || fragmentToMove == null )
+ ContentFragment currentFragment = requestPage.getFragmentById(window.getId().toString());
+ ContentFragment fragmentToMove = requestPage.getFragmentById(fragmentId);
+ if ( currentFragment != null && fragmentToMove != null )
{
- // ignore no longer consistent page definition
- return;
- }
-
- ColumnLayout columnLayout;
- try
- {
- columnLayout = new ColumnLayout(numColumns, layoutType, currentFragment.getFragments(), null);
- columnLayout.addLayoutEventListener(new PageManagerLayoutEventListener(pageManager, requestPage, layoutType));
- }
- catch (LayoutEventException e1)
- {
- throw new PortletException("Failed to build ColumnLayout "+e1.getMessage(), e1);
- }
-
- try
- {
- switch (moveCode)
+ ColumnLayout columnLayout;
+ try
{
- case LayoutEvent.MOVED_UP:
- columnLayout.moveUp(fragmentToMove);
- break;
- case LayoutEvent.MOVED_DOWN:
- columnLayout.moveDown(fragmentToMove);
- break;
- case LayoutEvent.MOVED_RIGHT:
- columnLayout.moveRight(fragmentToMove);
- break;
- case LayoutEvent.MOVED_LEFT:
- columnLayout.moveLeft(fragmentToMove);
- break;
- default:
- throw new PortletException("Invalid movement code " + moveCode);
+ columnLayout = new ColumnLayout(numColumns, layoutType, currentFragment.getFragments(), null);
+ columnLayout.addLayoutEventListener(new PageLayoutEventListener(layoutType));
}
-
- }
- 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 " + requestPage.getId() + " layout due to security permission/constraint.", se);
- }
- catch (Exception e)
- {
- if (e instanceof PortletException)
+ catch (LayoutEventException e1)
{
- throw (PortletException)e;
+ throw new PortletException("Failed to build ColumnLayout "+e1.getMessage(), e1);
+ }
+
+ try
+ {
+ switch (moveCode)
+ {
+ case LayoutEvent.MOVED_UP:
+ columnLayout.moveUp(fragmentToMove);
+ break;
+ case LayoutEvent.MOVED_DOWN:
+ columnLayout.moveDown(fragmentToMove);
+ break;
+ case LayoutEvent.MOVED_RIGHT:
+ columnLayout.moveRight(fragmentToMove);
+ break;
+ case LayoutEvent.MOVED_LEFT:
+ columnLayout.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 " + requestPage.getId() + " layout due to security permission/constraint.", se);
}
- else
+ catch (Exception e)
{
- throw new PortletException("Unable to process layout for page " + requestPage.getId() + " layout: " + e.toString(), e);
+ if (e instanceof PortletException)
+ {
+ throw (PortletException)e;
+ }
+ else
+ {
+ throw new PortletException("Unable to process layout for page " + requestPage.getId() + " layout: " + e.toString(), e);
+ }
}
}
+
return;
}
String remove = request.getParameter("remove");
if ( remove != null && remove.length() > 0 )
{
- Page page = null;
try
{
- // TODO: for now retrieve the real Page instead of ContentPage
- // because removing fragments isn't working through the ContentFragment wrapping
- page = pageManager.getPage(requestPage.getPath());
+ requestPage.removeFragment(fragmentId);
}
catch (Exception e)
{
- throw new PortletException("Unable to retrieve page "+requestPage.getId(),e);
- }
-
- PortletWindow window = requestContext.getActionWindow();
- Fragment currentFragment = page.getFragmentById(window.getId().toString());
-
- if ( currentFragment == null )
- {
- // ignore no longer consistent page definition
- return;
+ throw new PortletException("Unable to update page to remove fragment: "+e.getMessage(), e);
}
-
- removeFragment(page, currentFragment, fragmentId);
return;
}
String decorator = request.getParameter("decorator");
if ( decorator != null )
{
- Fragment fragment = requestPage.getFragmentById(fragmentId);
-
- if ( fragment == null )
- {
- // ignore no longer consistent page definition
- return;
- }
-
- if (decorator.trim().length() == 0)
- fragment.setDecorator(null);
- else
- fragment.setDecorator(decorator);
try
{
- pageManager.updatePage(requestPage);
+ ContentFragment fragment = requestPage.getFragmentById(fragmentId);
+ if ( fragment != null )
+ {
+ fragment.updateDecorator(decorator);
+ }
}
catch (Exception e)
{
@@ -929,8 +571,8 @@
String jsChangeUserPagesTheme = request.getParameter("jsChangeUserPagesTheme");
if ( jsChangeUserPagesTheme != null )
{
- String user_pages_theme = request.getParameter("user_pages_theme");
- try
+ String user_pages_theme = request.getParameter("user_pages_theme");
+ try
{
Folder f = pageManager.getUserFolder(request.getRemoteUser());
applyStyle(f,user_pages_theme,Fragment.LAYOUT);
@@ -940,50 +582,48 @@
throw new PortletException("Unable to update folder for defUserLayoutDeco decorator: "+e.getMessage(), e);
}
return;
- }
+ }
+
String jsChangeUserPortletsDeco = request.getParameter("jsChangeUserPortletsDeco");
if ( jsChangeUserPortletsDeco != null )
{
- String user_portlets_deco = request.getParameter("user_portlets_deco");
- try
+ String user_portlets_deco = request.getParameter("user_portlets_deco");
+ try
{
Folder f = pageManager.getUserFolder(request.getRemoteUser());
applyStyle(f,user_portlets_deco,Fragment.PORTLET);
}
- catch (Exception e)
+ catch (Exception e)
{
throw new PortletException("Unable to update folder for defUserPortletDeco decorator: "+e.getMessage(), e);
}
return;
- }
+ }
String jsChangeThemeAll = request.getParameter("jsChangeThemeAll");
if (jsChangeThemeAll != null)
{
String decorators = request.getParameter("decorators");
- String fragment_Id = request.getParameter("fragment");
- Iterator fragmentsIter = requestPage.getFragmentById(fragment_Id).getFragments().iterator();
- while(fragmentsIter.hasNext())
+ String targetFragmentId = request.getParameter("fragment");
+ ContentFragment targetFragment = requestPage.getFragmentById(targetFragmentId);
+ if (targetFragment != null)
{
- Fragment fragment = (Fragment) fragmentsIter.next();
- if ( fragment == null )
+ Iterator fragmentsIter = targetFragment.getFragments().iterator();
+ while (fragmentsIter.hasNext())
{
- // ignore no longer consistent page definition
- return;
+ ContentFragment fragment = (ContentFragment) fragmentsIter.next();
+ if (fragment != null )
+ {
+ try
+ {
+ fragment.updateDecorator(decorators);
+ }
+ catch (Exception e)
+ {
+ throw new PortletException("Unable to update page for fragment decorator: "+e.getMessage(), e);
+ }
+ }
}
-
- if (decorators.trim().length() == 0)
- fragment.setDecorator(null);
- else
- fragment.setDecorator(decorators);
- }
- try
- {
- pageManager.updatePage(requestPage);
- }
- catch (Exception e)
- {
- throw new PortletException("Unable to update page for fragment decorator: "+e.getMessage(), e);
}
return;
}
@@ -992,22 +632,25 @@
if ( portlets != null && portlets.length() > 0 )
{
PortletWindow window = requestContext.getActionWindow();
- Fragment targetFragment = requestPage.getFragmentById(window.getId().toString());
-
- if ( targetFragment == null )
+ ContentFragment targetFragment = requestPage.getFragmentById(window.getId().toString());
+ if ( targetFragment != null )
{
- // ignore no longer consistent page definition
- return;
- }
-
- StringTokenizer tokenizer = new StringTokenizer(portlets, ",");
- while (tokenizer.hasMoreTokens())
- {
- String portlet = tokenizer.nextToken();
- if (portlet.startsWith("box_"))
+ StringTokenizer tokenizer = new StringTokenizer(portlets, ",");
+ while (tokenizer.hasMoreTokens())
{
- portlet = portlet.substring("box_".length());
- addPortletToPage(requestPage, targetFragment, portlet);
+ String portlet = tokenizer.nextToken();
+ if (portlet.startsWith("box_"))
+ {
+ portlet = portlet.substring("box_".length());
+ try
+ {
+ targetFragment.addPortlet(ContentFragment.PORTLET, portlet);
+ }
+ catch (Exception e)
+ {
+ throw new PortletException("Unable to add portlet fragment to page: "+e.getMessage(), e);
+ }
+ }
}
}
return;
@@ -1023,43 +666,6 @@
request.getPortletSession().removeAttribute(PortalReservedParameters.PAGE_LAYOUT_HELP);
}
- protected int getFragmentNestingLevel(Page page, String fragmentId)
- {
- Fragment root = page.getRootFragment();
- if ( root.getId().equals(fragmentId) )
- {
- return 0;
- }
- else
- {
- return getFragmentNestingLevel(root, 1, fragmentId);
- }
- }
-
- protected int getFragmentNestingLevel(Fragment parent, int level, String fragmentId)
- {
- Iterator iter = parent.getFragments().iterator();
- Fragment child;
- int childLevel;
- while ( iter.hasNext() )
- {
- child = (Fragment)iter.next();
- if (child.getId().equals(fragmentId))
- {
- return level;
- }
- else
- {
- childLevel = getFragmentNestingLevel(child, level+1, fragmentId);
- if ( childLevel != -1 )
- {
- return childLevel;
- }
- }
- }
- return -1;
- }
-
protected String getEscapedName(String pageName)
{
try
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/test/java/org/apache/jetspeed/portlets/layout/TestColumnLayout.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/test/java/org/apache/jetspeed/portlets/layout/TestColumnLayout.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/test/java/org/apache/jetspeed/portlets/layout/TestColumnLayout.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/test/java/org/apache/jetspeed/portlets/layout/TestColumnLayout.java Wed Nov 18 18:24:48 2009
@@ -18,8 +18,8 @@
import java.util.Iterator;
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.psml.FragmentImpl;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.impl.ContentFragmentImpl;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
@@ -29,19 +29,19 @@
private ColumnLayout layout;
- private FragmentImpl f1;
+ private ContentFragmentImpl f1;
- private FragmentImpl f2;
+ private ContentFragmentImpl f2;
- private FragmentImpl f3;
+ private ContentFragmentImpl f3;
- private FragmentImpl f4;
+ private ContentFragmentImpl f4;
- private FragmentImpl f5;
+ private ContentFragmentImpl f5;
- private FragmentImpl f6;
+ private ContentFragmentImpl f6;
- private FragmentImpl f8;
+ private ContentFragmentImpl f8;
public void testBasics() throws Exception
{
@@ -61,7 +61,7 @@
while (column0.hasNext())
{
idx++;
- Fragment fragment = (Fragment) column0.next();
+ ContentFragment fragment = (ContentFragment) column0.next();
assertEquals("f" + idx, fragment.getId());
}
@@ -71,7 +71,7 @@
assertEquals(f5, column1.next());
assertEquals(f6, column1.next());
- Fragment testFragment = layout.getFragmentAt(new LayoutCoordinate(0, 0));
+ ContentFragment testFragment = layout.getFragmentAt(new LayoutCoordinate(0, 0));
assertNotNull(testFragment);
assertEquals(f1, testFragment);
@@ -102,14 +102,12 @@
public void testSameRowSameColumn() throws Exception
{
- FragmentImpl f1 = new FragmentImpl();
- f1.setId("f1");
+ ContentFragmentImpl f1 = new ContentFragmentImpl("f1");
f1.setName("test");
f1.setLayoutRow(0);
f1.setLayoutColumn(0);
- FragmentImpl f2 = new FragmentImpl();
- f2.setId("f2");
+ ContentFragmentImpl f2 = new ContentFragmentImpl("f2");
f2.setName("test");
f2.setLayoutRow(0);
f2.setLayoutColumn(0);
@@ -124,7 +122,7 @@
assertEquals(f2, column0.next());
assertEquals(f1, column0.next());
- Fragment testFragment = layout.getFragmentAt(0, 1);
+ ContentFragment testFragment = layout.getFragmentAt(0, 1);
assertNotNull(testFragment);
assertEquals(f1, testFragment);
@@ -136,14 +134,12 @@
public void testColumnNotSet() throws Exception
{
- FragmentImpl f1 = new FragmentImpl();
- f1.setId("f1");
+ ContentFragmentImpl f1 = new ContentFragmentImpl("f1");
f1.setName("test");
f1.setLayoutRow(0);
f1.setLayoutColumn(0);
- FragmentImpl f2 = new FragmentImpl();
- f2.setId("f2");
+ ContentFragmentImpl f2 = new ContentFragmentImpl("f2");
f2.setName("test");
f2.setLayoutRow(0);
@@ -151,7 +147,7 @@
layout.addFragment(f1);
layout.addFragment(f2);
- Fragment testFragment = layout.getFragmentAt(0, 0);
+ ContentFragment testFragment = layout.getFragmentAt(0, 0);
assertNotNull(testFragment);
assertEquals(f1, testFragment);
@@ -165,14 +161,12 @@
public void testRowNotSet() throws Exception
{
- FragmentImpl f1 = new FragmentImpl();
- f1.setId("f1");
+ ContentFragmentImpl f1 = new ContentFragmentImpl("f1");
f1.setName("test");
f1.setLayoutRow(0);
f1.setLayoutColumn(0);
- FragmentImpl f2 = new FragmentImpl();
- f2.setId("f2");
+ ContentFragmentImpl f2 = new ContentFragmentImpl("f2");
f2.setName("test");
f2.setLayoutColumn(0);
@@ -180,7 +174,7 @@
layout.addFragment(f1);
layout.addFragment(f2);
- Fragment testFragment = layout.getFragmentAt(0, 0);
+ ContentFragment testFragment = layout.getFragmentAt(0, 0);
assertNotNull(testFragment);
assertEquals(f1, testFragment);
@@ -191,8 +185,7 @@
public void testColumnLimitExceeded() throws Exception
{
- FragmentImpl f1 = new FragmentImpl();
- f1.setId("f1");
+ ContentFragmentImpl f1 = new ContentFragmentImpl("f1");
f1.setLayoutRow(0);
f1.setLayoutColumn(5);
@@ -200,15 +193,14 @@
layout.addFragment(f1);
// Exceeded columns just get dumped into the last column
- Fragment testFragment = layout.getFragmentAt(2, 0);
+ ContentFragment testFragment = layout.getFragmentAt(2, 0);
assertNotNull(testFragment);
assertEquals(f1, testFragment);
}
public void testMovingRight() throws Exception
{
-
- Fragment movingFragment = layout.getFragmentAt(new LayoutCoordinate(0, 0));
+ ContentFragment movingFragment = layout.getFragmentAt(new LayoutCoordinate(0, 0));
assertEquals(f1, movingFragment);
assertEquals(f4, layout.getFragmentAt(new LayoutCoordinate(1, 0)));
@@ -235,7 +227,7 @@
public void testMovingLeft() throws Exception
{
- Fragment movingFragment = layout.getFragmentAt(new LayoutCoordinate(1, 0));
+ ContentFragment movingFragment = layout.getFragmentAt(new LayoutCoordinate(1, 0));
assertEquals(f4, movingFragment);
assertEquals(f1, layout.getFragmentAt(new LayoutCoordinate(0, 0)));
@@ -293,8 +285,7 @@
// This is a test to make sure the next row pointer is being decremented
// correctly
- FragmentImpl f7 = new FragmentImpl();
- f7.setId("f7");
+ ContentFragmentImpl f7 = new ContentFragmentImpl("f7");
f7.setName("test");
f7.setLayoutRow(0);
f7.setLayoutColumn(1);
@@ -314,7 +305,7 @@
assertEquals(f6, layout.getFragmentAt(new LayoutCoordinate(0, 2)));
assertEquals(f7, layout.getFragmentAt(new LayoutCoordinate(1, 0)));
- // test that column consistency is maitained
+ // test that column consistency is maintained
Iterator itr1 = layout.getColumn(1).iterator();
itr1.next().equals(f7);
@@ -331,7 +322,7 @@
public void testInvalidOperations() throws Exception
{
- // Create a mock that veridies events are NOT being fired on invalid operations
+ // Create a mock that verifies events are NOT being fired on invalid operations
Mock listenerMock = mock(LayoutEventListener.class);
layout.addLayoutEventListener((LayoutEventListener) listenerMock.proxy());
listenerMock.expects(never()).method("handleEvent").withAnyArguments();
@@ -420,44 +411,37 @@
protected void setUp() throws Exception
{
- f1 = new FragmentImpl();
- f1.setId("f1");
+ f1 = new ContentFragmentImpl("f1");
f1.setName("test");
f1.setLayoutRow(0);
f1.setLayoutColumn(0);
- f2 = new FragmentImpl();
- f2.setId("f2");
+ f2 = new ContentFragmentImpl("f2");
f2.setName("test");
f2.setLayoutRow(1);
f2.setLayoutColumn(0);
- f3 = new FragmentImpl();
- f3.setId("f3");
+ f3 = new ContentFragmentImpl("f3");
f3.setName("test");
f3.setLayoutRow(2);
f3.setLayoutColumn(0);
- f4 = new FragmentImpl();
- f4.setId("f4");
+ f4 = new ContentFragmentImpl("f4");
f4.setName("test");
f4.setLayoutRow(0);
f4.setLayoutColumn(1);
- f5 = new FragmentImpl();
- f5.setId("f5");
+ f5 = new ContentFragmentImpl("f5");
f5.setName("test");
f5.setLayoutRow(1);
f5.setLayoutColumn(1);
- f6 = new FragmentImpl();
- f6.setId("f6");
+ f6 = new ContentFragmentImpl("f6");
f6.setName("test");
f6.setLayoutRow(2);
f6.setLayoutColumn(1);
- f8 = new FragmentImpl();
- f8.setId("f8");
+ f8 = new ContentFragmentImpl("f8");
f8.setName("test");
f8.setLayoutRow(1);
f8.setLayoutColumn(2);
@@ -472,7 +456,7 @@
layout.addFragment(f8);
}
- protected LayoutEvent createEvent(Fragment fragment, ColumnLayout layout, int eventType) throws Exception
+ protected LayoutEvent createEvent(ContentFragment fragment, ColumnLayout layout, int eventType) throws Exception
{
LayoutCoordinate fragmentOriginal = layout.getCoordinate(fragment);
LayoutCoordinate fragmentNew;
Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Nov 18 18:24:48 2009
@@ -0,0 +1,4 @@
+.project
+.settings
+target
+.classpath
Added: portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/pom.xml?rev=881862&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/pom.xml (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/pom.xml Wed Nov 18 18:24:48 2009
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ $Id: pom.xml 777775 2009-05-23 02:41:18Z taylor $
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <prerequisites>
+ <maven>2.0.9</maven>
+ </prerequisites>
+
+ <artifactId>jetspeed-page-layout</artifactId>
+ <name>Jetspeed-2 Page Layout</name>
+ <description>Portal Page Layout component implementation.</description>
+ <parent>
+ <groupId>org.apache.portals.jetspeed-2</groupId>
+ <artifactId>components</artifactId>
+ <version>2.2.1-SNAPSHOT</version>
+ </parent>
+ <packaging>jar</packaging>
+
+ <!-- Dependencies -->
+
+ <dependencies>
+
+ <!-- Build Dependencies -->
+ <dependency>
+ <groupId>${pom.groupId}</groupId>
+ <artifactId>jetspeed-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${pom.groupId}</groupId>
+ <artifactId>jetspeed-commons</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>${pom.groupId}</groupId>
+ <artifactId>jetspeed-page-manager</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+
+ <!-- Test Dependencies -->
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+</project>
Added: portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentException.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentException.java?rev=881862&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentException.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentException.java Wed Nov 18 18:24:48 2009
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.layout.impl;
+
+public class PageLayoutComponentException extends RuntimeException
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Create page layout component runtime exception with message.
+ *
+ * @param message exception message
+ */
+ public PageLayoutComponentException(String message)
+ {
+ super(message);
+ }
+
+ /**
+ * Create page layout component exception with message.
+ *
+ * @param message exception message
+ * @param cause exception cause
+ */
+ public PageLayoutComponentException(String message, Throwable cause)
+ {
+ super(message, cause);
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org