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]

Reply via email to