taylor 2004/09/22 20:29:30 Modified: layout-portlets/src/java/org/apache/jetspeed/portlets/layout MultiColumnPortlet.java layout-portlets/src/webapp/WEB-INF portlet.xml Log: Support for nested fragments! Contribution from Randy Watler Layout fragments can now be nested inside other fragments: <fragment id="100393" type="layout" name="jetspeed::VelocityOneColumn"> <fragment id="100939" type="portlet" name="HW_App::HelloPortlet"> <property layout="OneColumn" name="row" value="0"/> </fragment> <fragment id="100345" type="layout" name="jetspeed::VelocityTwoColumns"> CVS: ---------------------------------------------------------------------- CVS: PR: CVS: If this change addresses a PR in the problem report tracking CVS: database, then enter the PR number(s) here. CVS: Obtained from: CVS: If this change has been taken from another system, such as NCSA, CVS: then name the system in this line, otherwise delete it. CVS: Submitted by: CVS: If this code has been contributed to Apache by someone else; i.e., CVS: they sent us a patch or a new module, then include their name/email CVS: address here. If this is your work then delete this line. CVS: Reviewed by: CVS: If we are doing pre-commit code reviews and someone else has CVS: reviewed your changes, include their name(s) here. CVS: If you have not had it reviewed then delete this line. Revision Changes Path 1.5 +18 -7 jakarta-jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java Index: MultiColumnPortlet.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- MultiColumnPortlet.java 6 Aug 2004 19:04:17 -0000 1.4 +++ MultiColumnPortlet.java 23 Sep 2004 03:29:29 -0000 1.5 @@ -74,9 +74,10 @@ if (request.getParameter("moveBy") != null && request.getParameter("fragmentId") != null) { Page page = getPage(request); - ArrayList tempFrags = new ArrayList(page.getRootFragment().getFragments()); + Fragment f = getFragment(request, false); + ArrayList tempFrags = new ArrayList(f.getFragments()); doMoveFragment(page.getFragmentById(request.getParameter("fragmentId")), request.getParameter("moveBy"), - request, tempFrags); + request, tempFrags); try { @@ -96,7 +97,8 @@ return; } - List[] columns = buildColumns(getFragment(request, false), this.numColumns, request); + Fragment f = getFragment(request, false); + List[] columns = buildColumns(f, this.numColumns, request); request.setAttribute("columns", columns); request.setAttribute("numberOfColumns", new Integer(numColumns)); @@ -105,6 +107,7 @@ super.doView(request, response); request.removeAttribute("columns"); + request.removeAttribute("numberOfColumns"); } protected List[] buildColumns( Fragment f, int colNum, RenderRequest request ) throws PortletException @@ -129,10 +132,18 @@ rowNum = row; } - col = Integer.parseInt(fChild.getPropertyValue(this.layoutType, "column")); - if (col > colNum) + if (colNum > 1) { - fChild.setPropertyValue(this.layoutType, "column", String.valueOf(col % colNum)); + col = Integer.parseInt(fChild.getPropertyValue(this.layoutType, "column")); + if (col > colNum) + { + fChild.setPropertyValue(this.layoutType, "column", String.valueOf(col % colNum)); + } + } + else + { + col = 0; + fChild.setPropertyValue(this.layoutType, "column", String.valueOf(col)); } if (row > lastRowForColumn[col]) @@ -420,4 +431,4 @@ } return row; } -} \ No newline at end of file +} 1.7 +163 -1 jakarta-jetspeed-2/layout-portlets/src/webapp/WEB-INF/portlet.xml Index: portlet.xml =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/layout-portlets/src/webapp/WEB-INF/portlet.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- portlet.xml 20 Sep 2004 19:24:44 -0000 1.6 +++ portlet.xml 23 Sep 2004 03:29:30 -0000 1.7 @@ -1 +1,163 @@ -<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2004 The Apache Software Foundation Licensed 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. --> <portlet-app id="jetspeed" version="1.0"> <portlet id="TwoColumns"> <portlet-name>TwoColumns</portlet-name> <display-name>Two Columns Layout</display-name> <init-param> <name>ViewPage</name> <value>/WEB-INF/layout/columns.jsp</value> </init-param> <init-param> <name>columns</name> <value>2</value> </init-param> <init-param> <name>sizes</name> <value>50%,50%</value> </init-param> <init-param> <name>layoutType</name> <value>TwoColumns</value> </init-param> <portlet-class>org.apache.jetspeed.portlets.layout.MultiColumnPortlet</portlet-class> <expiration-cache>-1</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> <portlet-mode>edit</portlet-mode> <portlet-mode>help</portlet-mode> </supports> <portlet-info> <title>TwoColumns</title> <short-title>TwoColumns</short-title> </portlet-info> </portlet> <portlet id="VelocityTwoColumns"> <portlet-name>VelocityTwoColumns</portlet-name> <display-name>Two Columns Layout Using Velocity</display-name> <init-param> <name>ViewPage</name> <value>columns</value> </init-param> <init-param> <name>MaxPage</name> <value>maximized</value> </init-param> <init-param> <name>columns</name> <value>2</value> </init-param> <init-param> <name>sizes</name> <value>50%,50%</value> </init-param> <init-param> <name>layoutType</name> <value>TwoColumns</value> </init-param> <portlet-class>org.apache.jetspeed.portlets.layout.MultiColumnPortlet</portlet-class> <expiration-cache>-1</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> <portlet-mode>edit</portlet-mode> <portlet-mode>help</portlet-mode> </supports> <portlet-info> <title>VelocityTwoColumns</title> <short-title>TwoColumns</short-title> </portlet-info> </portlet> <portlet id="VelocityThreeColumns"> <portlet-name>VelocityThreeColumns</portlet-name> <display-name>Three Columns Layout Using Velocity</display-name> <init-param> <name>ViewPage</name> <value>columns</value> </init-param> <init-param> <name>MaxPage</name> <value>maximized</value> </init-param> <init-param> <name>columns</name> <value>3</value> </init-param> <init-param> <name>sizes</name> <value>33%,33%,33%</value> </init-param> <init-param> <name>layoutType</name> <value>ThreeColumns</value> </init-param> <portlet-class>org.apache.jetspeed.portlets.layout.MultiColumnPortlet</portlet-class> <expiration-cache>-1</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> <portlet-mode>edit</portlet-mode> <portlet-mode>help</portlet-mode> </supports> <portlet-info> <title>VelocityThreeColumns</title> <short-title>ThreeColumns</short-title> </portlet-info> </portlet> </portlet-app> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Copyright 2004 The Apache Software Foundation +Licensed 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. +--> + +<portlet-app id="jetspeed" version="1.0"> + <portlet id="TwoColumns"> + <portlet-name>TwoColumns</portlet-name> + <display-name>Two Columns Layout</display-name> + <init-param> + <name>ViewPage</name> + <value>/WEB-INF/layout/columns.jsp</value> + </init-param> + <init-param> + <name>columns</name> + <value>2</value> + </init-param> + <init-param> + <name>sizes</name> + <value>50%,50%</value> + </init-param> + <init-param> + <name>layoutType</name> + <value>TwoColumns</value> + </init-param> + <portlet-class>org.apache.jetspeed.portlets.layout.MultiColumnPortlet</portlet-class> + <expiration-cache>-1</expiration-cache> + <supports> + <mime-type>text/html</mime-type> + <portlet-mode>view</portlet-mode> + <portlet-mode>edit</portlet-mode> + <portlet-mode>help</portlet-mode> + </supports> + <portlet-info> + <title>TwoColumns</title> + <short-title>TwoColumns</short-title> + </portlet-info> +</portlet> + +<portlet id="VelocityOneColumn"> + <portlet-name>VelocityOneColumn</portlet-name> + <display-name>One Column Layout Using Velocity</display-name> + <init-param> + <name>ViewPage</name> + <value>columns</value> + </init-param> + <init-param> + <name>MaxPage</name> + <value>maximized</value> + </init-param> + <init-param> + <name>columns</name> + <value>1</value> + </init-param> + <init-param> + <name>sizes</name> + <value>100%</value> + </init-param> + <init-param> + <name>layoutType</name> + <value>OneColumn</value> + </init-param> + <portlet-class>org.apache.jetspeed.portlets.layout.MultiColumnPortlet</portlet-class> + <expiration-cache>-1</expiration-cache> + <supports> + <mime-type>text/html</mime-type> + <portlet-mode>view</portlet-mode> + <portlet-mode>edit</portlet-mode> + <portlet-mode>help</portlet-mode> + </supports> + <portlet-info> + <title>VelocityOneColumn</title> + <short-title>OneColumn</short-title> + </portlet-info> +</portlet> + +<portlet id="VelocityTwoColumns"> + <portlet-name>VelocityTwoColumns</portlet-name> + <display-name>Two Columns Layout Using Velocity</display-name> + <init-param> + <name>ViewPage</name> + <value>columns</value> + </init-param> + <init-param> + <name>MaxPage</name> + <value>maximized</value> + </init-param> + <init-param> + <name>columns</name> + <value>2</value> + </init-param> + <init-param> + <name>sizes</name> + <value>50%,50%</value> + </init-param> + <init-param> + <name>layoutType</name> + <value>TwoColumns</value> + </init-param> + <portlet-class>org.apache.jetspeed.portlets.layout.MultiColumnPortlet</portlet-class> + <expiration-cache>-1</expiration-cache> + <supports> + <mime-type>text/html</mime-type> + <portlet-mode>view</portlet-mode> + <portlet-mode>edit</portlet-mode> + <portlet-mode>help</portlet-mode> + </supports> + <portlet-info> + <title>VelocityTwoColumns</title> + <short-title>TwoColumns</short-title> + </portlet-info> +</portlet> + +<portlet id="VelocityThreeColumns"> + <portlet-name>VelocityThreeColumns</portlet-name> + <display-name>Three Columns Layout Using Velocity</display-name> + <init-param> + <name>ViewPage</name> + <value>columns</value> + </init-param> + <init-param> + <name>MaxPage</name> + <value>maximized</value> + </init-param> + <init-param> + <name>columns</name> + <value>3</value> + </init-param> + <init-param> + <name>sizes</name> + <value>33%,33%,33%</value> + </init-param> + <init-param> + <name>layoutType</name> + <value>ThreeColumns</value> + </init-param> + <portlet-class>org.apache.jetspeed.portlets.layout.MultiColumnPortlet</portlet-class> + <expiration-cache>-1</expiration-cache> + <supports> + <mime-type>text/html</mime-type> + <portlet-mode>view</portlet-mode> + <portlet-mode>edit</portlet-mode> + <portlet-mode>help</portlet-mode> + </supports> + <portlet-info> + <title>VelocityThreeColumns</title> + <short-title>ThreeColumns</short-title> + </portlet-info> +</portlet> + +</portlet-app> + --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]