cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cziege...@apache.org
Subject svn commit: r387518 - in /cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl: AbstractCompositeAspect.java CompositeContentAspect.java
Date Tue, 21 Mar 2006 13:01:34 GMT
Author: cziegeler
Date: Tue Mar 21 05:01:33 2006
New Revision: 387518

URL: http://svn.apache.org/viewcvs?rev=387518&view=rev
Log:
Option to disable item tags and more possibilities for root tag

Modified:
    cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCompositeAspect.java
    cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java

Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCompositeAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCompositeAspect.java?rev=387518&r1=387517&r2=387518&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCompositeAspect.java
(original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/AbstractCompositeAspect.java
Tue Mar 21 05:01:33 2006
@@ -45,20 +45,20 @@
 public abstract class AbstractCompositeAspect
     extends AbstractAspect {
 
-	/* (non-Javadoc)
-	 * @see org.apache.cocoon.portal.layout.renderer.RendererAspect#toSAX(org.apache.cocoon.portal.layout.renderer.RendererAspectContext,
org.apache.cocoon.portal.layout.Layout, org.apache.cocoon.portal.PortalService, org.xml.sax.ContentHandler)
+	/**
+	 * @see org.apache.cocoon.portal.layout.renderer.aspect.impl.AbstractAspect#toSAX(org.apache.cocoon.portal.layout.renderer.aspect.RendererAspectContext,
org.apache.cocoon.portal.layout.Layout, org.apache.cocoon.portal.PortalService, org.xml.sax.ContentHandler)
 	 */
 	public void toSAX(RendererAspectContext context,
-                		Layout layout,
-                		PortalService service,
-                		ContentHandler handler)
+              		  Layout                layout,
+                	  PortalService         service,
+                	  ContentHandler        handler)
 	throws SAXException {
         if ( layout instanceof CompositeLayout) {
             CompositeLayout compositeLayout = (CompositeLayout)layout;
             // loop over all rows
             for (Iterator iter = compositeLayout.getItems().iterator(); iter.hasNext();)
{
                 Item item = (Item) iter.next();
-                this.processItem(item, handler, service);
+                this.processItem(context, item, handler, service);
             }
         } else {
             throw new SAXException("CompositeLayout expected.");
@@ -73,7 +73,10 @@
      * @param service portal service providing component access
      * @throws SAXException
      */
-    protected abstract void processItem(Item item, ContentHandler handler, PortalService
service)
+    protected abstract void processItem(RendererAspectContext context,
+                                        Item                  item,
+                                        ContentHandler        handler,
+                                        PortalService         service)
         throws SAXException;
 
     /**

Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java?rev=387518&r1=387517&r2=387518&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java
(original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/CompositeContentAspect.java
Tue Mar 21 05:01:33 2006
@@ -1,12 +1,12 @@
 /*
  * Copyright 1999-2002,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.
@@ -31,7 +31,7 @@
 
 /**
  * Add several contents.
- * 
+ *
  * <h2>Example XML:</h2>
  * <pre>
  *  &lt;composite&gt;
@@ -54,30 +54,41 @@
  *
  * <h2>Parameters</h2>
  * <table><tbody>
- * <tr><th>root-tag</th><td><Enclose result in root tag?/td><td></td><td>boolean</td><td><code>true</code></td></tr>
- * <tr><th>tag-name</th><td>Name of root tag to  use.</td><td></td><td>String</td><td><code>"composite"</code></td></tr>
+ * <tr><th>root-tag</th><td>Enclose result in root tag?</td><td></td><td>boolean</td><td><code>true</code></td></tr>
+ * <tr><th>tag-name</th><td>Name of root tag to use.</td><td></td><td>String</td><td><code>"composite"</code></td></tr>
+ * <tr><th>item-tag</th><td>Enclose each item in item tag?</td><td></td><td>boolean</td><td><code>true</code></td></tr>
+ * <tr><th>item-tag-name</th><td>Name of item tag to use.</td><td></td><td>String</td><td><code>"item"</code></td></tr>
+ * <tr><th>root-tag-id</th><td>Value of optional id attribute for
the root tag.</td><td></td><td>String</td><td><code>-</code></td></tr>
+ * <tr><th>root-tag-class</th><td>Value of optional class attribute
for the root tag.</td><td></td><td>String</td><td><code>-</code></td></tr>
  * </tbody></table>
  *
  * @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
  * @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- * 
+ *
  * @version CVS $Id:CompositeContentAspect.java 30932 2004-07-29 17:35:38Z vgritsenko $
  */
 public class CompositeContentAspect extends AbstractCompositeAspect {
 
     protected static final String ITEM_STRING = "item";
 
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.layout.renderer.RendererAspect#toSAX(org.apache.cocoon.portal.layout.renderer.RendererAspectContext,
org.apache.cocoon.portal.layout.Layout, org.apache.cocoon.portal.PortalService, org.xml.sax.ContentHandler)
+    /**
+     * @see org.apache.cocoon.portal.layout.renderer.aspect.impl.AbstractCompositeAspect#toSAX(org.apache.cocoon.portal.layout.renderer.aspect.RendererAspectContext,
org.apache.cocoon.portal.layout.Layout, org.apache.cocoon.portal.PortalService, org.xml.sax.ContentHandler)
      */
     public void toSAX(RendererAspectContext context,
-                        Layout layout,
-                        PortalService service,
-                        ContentHandler handler)
+                      Layout                layout,
+                      PortalService         service,
+                      ContentHandler        handler)
     throws SAXException {
         PreparedConfiguration config = (PreparedConfiguration)context.getAspectConfiguration();
         if ( config.rootTag) {
-            XMLUtils.startElement(handler, config.tagName);
+            final AttributesImpl ai = new AttributesImpl();
+            if ( config.rootTagClass != null ) {
+                ai.addCDATAAttribute("class", config.rootTagClass);
+            }
+            if ( config.rootTagId != null ) {
+                ai.addCDATAAttribute("id", config.rootTagId);
+            }
+            XMLUtils.startElement(handler, config.tagName, ai);
         }
         super.toSAX(context, layout, service, handler);
         if ( config.rootTag) {
@@ -86,44 +97,57 @@
 
     }
 
-	/* (non-Javadoc)
-	 * @see org.apache.cocoon.portal.layout.renderer.impl.AbstractContentAspect#processItem(org.apache.cocoon.portal.layout.Item,
org.xml.sax.ContentHandler, org.apache.cocoon.portal.PortalService)
+	/**
+	 * @see org.apache.cocoon.portal.layout.renderer.aspect.impl.AbstractCompositeAspect#processItem(org.apache.cocoon.portal.layout.renderer.aspect.RendererAspectContext,
org.apache.cocoon.portal.layout.Item, org.xml.sax.ContentHandler, org.apache.cocoon.portal.PortalService)
 	 */
-	protected void processItem(Item item,
-		                         ContentHandler handler,
-		                         PortalService service)
+	protected void processItem(RendererAspectContext context,
+                               Item                  item,
+		                       ContentHandler        handler,
+		                       PortalService         service)
     throws SAXException {
+        final PreparedConfiguration config = (PreparedConfiguration)context.getAspectConfiguration();
         Layout layout = item.getLayout();
 
-        Map parameters = item.getParameters();
-        if (parameters.size() == 0) {
-            XMLUtils.startElement(handler, ITEM_STRING);
-        } else {
-            AttributesImpl attributes = new AttributesImpl();
-
-			Map.Entry entry;
-			for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) {
-				entry = (Map.Entry) iter.next();
-				attributes.addCDATAAttribute((String)entry.getKey(), (String)entry.getValue());
-			}
-            XMLUtils.startElement(handler, ITEM_STRING, attributes);
+        if ( config.itemTag ) {
+            Map parameters = item.getParameters();
+            if (parameters.size() == 0) {
+                XMLUtils.startElement(handler, config.itemTagName);
+            } else {
+                AttributesImpl attributes = new AttributesImpl();
+    
+    			Map.Entry entry;
+    			for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) {
+    				entry = (Map.Entry) iter.next();
+    				attributes.addCDATAAttribute((String)entry.getKey(), (String)entry.getValue());
+    			}
+                XMLUtils.startElement(handler, config.itemTagName, attributes);
+            }
         }
         processLayout(layout, service, handler);
-        XMLUtils.endElement(handler, ITEM_STRING);
-
+        if ( config.itemTag ) {
+            XMLUtils.endElement(handler, config.itemTagName);
+        }
 	}
 
     protected class PreparedConfiguration {
         public String tagName;
         public boolean rootTag;
-        
+        public boolean itemTag;
+        public String itemTagName;
+        public String rootTagId;
+        public String rootTagClass;
+
         public void takeValues(PreparedConfiguration from) {
             this.tagName = from.tagName;
             this.rootTag = from.rootTag;
+            this.itemTag = from.itemTag;
+            this.itemTagName = from.itemTagName;
+            this.rootTagId = from.rootTagId;
+            this.rootTagClass = from.rootTagClass;
         }
     }
     
-    /* (non-Javadoc)
+    /**
      * @see org.apache.cocoon.portal.layout.renderer.aspect.RendererAspect#prepareConfiguration(org.apache.avalon.framework.parameters.Parameters)
      */
     public Object prepareConfiguration(Parameters configuration) 
@@ -131,6 +155,10 @@
         PreparedConfiguration pc = new PreparedConfiguration();
         pc.tagName = configuration.getParameter("tag-name", "composite");
         pc.rootTag = configuration.getParameterAsBoolean("root-tag", true);
+        pc.itemTag = configuration.getParameterAsBoolean("item-tag", true);
+        pc.itemTagName = configuration.getParameter("item-tag-name", ITEM_STRING);
+        pc.rootTagId = configuration.getParameter("root-tag-id", null);
+        pc.rootTagClass = configuration.getParameter("root-tag-class", null);
         return pc;
     }
 



Mime
View raw message