You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2003/06/14 18:58:02 UTC

cvs commit: cocoon-2.1/src/blocks/portal/conf portal.xconf

cziegeler    2003/06/14 09:58:02

  Modified:    src/blocks/portal/java/org/apache/cocoon/portal/layout/impl
                        DefaultLayoutFactory.java
                        DefaultLayoutDescription.java
               src/blocks/portal/java/org/apache/cocoon/portal/layout
                        AbstractLayout.java LayoutDescription.java
               src/blocks/portal/conf portal.xconf
  Log:
  Several renderers can now be configured for a layout
  
  Revision  Changes    Path
  1.11      +24 -5     cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java
  
  Index: DefaultLayoutFactory.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutFactory.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DefaultLayoutFactory.java	6 Jun 2003 11:33:37 -0000	1.10
  +++ DefaultLayoutFactory.java	14 Jun 2003 16:58:02 -0000	1.11
  @@ -132,8 +132,27 @@
                   desc.setName(name);
                   desc.setClassName(layoutsConf[i].getAttribute("class"));        
                   desc.setCreateId(layoutsConf[i].getAttributeAsBoolean("create-id", false));
  -                desc.setRendererName(layoutsConf[i].getAttribute("renderer")); 
                   
  +                // the renderers
  +                final String defaultRenderer = layoutsConf[i].getChild("renderers").getAttribute("default");
  +                desc.setDefaultRendererName(defaultRenderer); 
  +                                
  +                final Configuration[] rendererConfs = layoutsConf[i].getChild("renderers").getChildren("renderer");
  +                if ( rendererConfs != null ) {
  +                    boolean found = false;
  +                    for(int m=0; m < rendererConfs.length; m++) {
  +                        final String rName = rendererConfs[m].getAttribute("name");
  +                        desc.addRendererName(rName);
  +                        if ( defaultRenderer.equals(rName) ) {
  +                            found = true;
  +                        }
  +                    }
  +                    if ( !found ) {
  +                        throw new ConfigurationException("Default renderer '" + defaultRenderer + "' is not configured for layout '" + name + "'");
  +                    }
  +                } else {
  +                    throw new ConfigurationException("Default renderer '" + defaultRenderer + "' is not configured for layout '" + name + "'");
  +                }
                   // and now the aspects
                   final Configuration[] aspectsConf = layoutsConf[i].getChild("aspects").getChildren("aspect");
                   if (aspectsConf != null) {
  @@ -160,12 +179,12 @@
        
               final String layoutName = layout.getName();
               if ( layoutName == null ) {
  -                throw new ProcessingException("Layout "+layout.getId()+" has no associated name.");
  +                throw new ProcessingException("Layout '"+layout.getId()+"' has no associated name.");
               }
               Object[] o = (Object[]) this.layouts.get( layoutName );
               
               if ( o == null ) {
  -                throw new ProcessingException("LayoutDescription with name " + layoutName + " not found.");
  +                throw new ProcessingException("LayoutDescription with name '" + layoutName + "' not found.");
               }
               DefaultLayoutDescription layoutDescription = (DefaultLayoutDescription)o[0];
   
  @@ -188,7 +207,7 @@
           Object[] o = (Object[]) this.layouts.get( layoutName );
               
           if ( o == null ) {
  -            throw new ProcessingException("LayoutDescription with name " + layoutName + " not found.");
  +            throw new ProcessingException("LayoutDescription with name '" + layoutName + "' not found.");
           }
           DefaultLayoutDescription layoutDescription = (DefaultLayoutDescription)o[0];
           
  
  
  
  1.3       +22 -6     cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutDescription.java
  
  Index: DefaultLayoutDescription.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/impl/DefaultLayoutDescription.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefaultLayoutDescription.java	20 May 2003 14:06:42 -0000	1.2
  +++ DefaultLayoutDescription.java	14 Jun 2003 16:58:02 -0000	1.3
  @@ -50,6 +50,10 @@
    */
   package org.apache.cocoon.portal.layout.impl;
   
  +import java.util.ArrayList;
  +import java.util.Iterator;
  +import java.util.List;
  +
   import org.apache.cocoon.portal.factory.impl.AbstractProducibleDescription;
   import org.apache.cocoon.portal.layout.LayoutDescription;
   
  @@ -65,20 +69,32 @@
       extends AbstractProducibleDescription
       implements LayoutDescription  {
   
  -    protected String rendererName;
  +    protected String defaultRendererName;
  +    
  +    protected List rendererNames = new ArrayList(2);
       
       /**
        * @return
        */
  -    public String getRendererName() {
  -        return rendererName;
  +    public String getDefaultRendererName() {
  +        return defaultRendererName;
       }
   
       /**
        * @param string
        */
  -    public void setRendererName(String string) {
  -        rendererName = string;
  +    public void setDefaultRendererName(String string) {
  +        defaultRendererName = string;
       }
   
  +    /**
  +     * @return the names of all allowed renderers
  +     */
  +    public Iterator getRendererNames() {
  +        return this.rendererNames.iterator();
  +    }
  +
  +    public void addRendererName(String name) {
  +        this.rendererNames.add( name );
  +    }
   }
  
  
  
  1.9       +2 -2      cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractLayout.java
  
  Index: AbstractLayout.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/AbstractLayout.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractLayout.java	22 May 2003 06:55:15 -0000	1.8
  +++ AbstractLayout.java	14 Jun 2003 16:58:02 -0000	1.9
  @@ -88,7 +88,7 @@
        */
       public String getRendererName() {
           if ( this.rendererName == null ) {
  -            return ((LayoutDescription)this.description).getRendererName();
  +            return ((LayoutDescription)this.description).getDefaultRendererName();
           }
           return this.rendererName;
       }
  
  
  
  1.3       +10 -3     cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/LayoutDescription.java
  
  Index: LayoutDescription.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/LayoutDescription.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LayoutDescription.java	20 May 2003 14:06:43 -0000	1.2
  +++ LayoutDescription.java	14 Jun 2003 16:58:02 -0000	1.3
  @@ -50,6 +50,8 @@
    */
   package org.apache.cocoon.portal.layout;
   
  +import java.util.Iterator;
  +
   import org.apache.cocoon.portal.factory.ProducibleDescription;
   
   
  @@ -65,7 +67,12 @@
       extends ProducibleDescription  {
   
       /**
  -     * @return
  +     * @return the default renderer name
  +     */
  +    String getDefaultRendererName();
  +    
  +    /**
  +     * @return the names of all allowed renderers
        */
  -    String getRendererName();
  +    Iterator getRendererNames();
   }
  
  
  
  1.16      +20 -10    cocoon-2.1/src/blocks/portal/conf/portal.xconf
  
  Index: portal.xconf
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/portal/conf/portal.xconf,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- portal.xconf	10 Jun 2003 19:38:54 -0000	1.15
  +++ portal.xconf	14 Jun 2003 16:58:02 -0000	1.16
  @@ -136,31 +136,41 @@
              role="org.apache.cocoon.portal.layout.LayoutFactory">
       <layouts>
           <layout name="column" 
  -                class="org.apache.cocoon.portal.layout.impl.CompositeLayout" 
  -                renderer="column">
  +                class="org.apache.cocoon.portal.layout.impl.CompositeLayout">
  +            <renderers default="column">
  +                <renderer name="column"/>
  +            </renderers>
           </layout>
           <layout name="row" 
  -                class="org.apache.cocoon.portal.layout.impl.CompositeLayout" 
  -                renderer="row">
  +                class="org.apache.cocoon.portal.layout.impl.CompositeLayout">
  +            <renderers default="row">
  +                <renderer name="row"/>
  +            </renderers>
           </layout>
           <layout name="tab" 
  -                class="org.apache.cocoon.portal.layout.impl.CompositeLayout" 
  -                renderer="tab">
  +                class="org.apache.cocoon.portal.layout.impl.CompositeLayout">
  +            <renderers default="tab">
  +                <renderer name="tab"/>
  +            </renderers>
               <aspects>
                   <aspect name="tab" class="java.lang.Integer" store="session" auto-create="true"/>
               </aspects>
           </layout>
           <layout name="frame" 
  -                class="org.apache.cocoon.portal.layout.impl.FrameLayout" 
  -                renderer="frame"
  +                class="org.apache.cocoon.portal.layout.impl.FrameLayout"
                   create-id="true">
  +            <renderers default="frame">
  +                <renderer name="frame"/>
  +            </renderers>
               <aspects>
                   <aspect name="frame" class="java.lang.String" store="request" auto-create="false"/>
               </aspects>
           </layout>
           <layout name="coplet" 
  -                class="org.apache.cocoon.portal.layout.impl.CopletLayout" 
  -                renderer="window">
  +                class="org.apache.cocoon.portal.layout.impl.CopletLayout">
  +            <renderers default="window">
  +                <renderer name="window"/>
  +            </renderers>
           </layout>
       </layouts>
   </component>