cziegeler 2003/06/15 12:44:58
Modified:
src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl
FrameAspect.java
src/blocks/portal/conf portal.xconf
Log:
Finishing simplified configuration
Revision Changes Path
1.6 +47 -3
cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FrameAspect.java
Index: FrameAspect.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/blocks/portal/java/org/apache/cocoon/portal/layout/renderer/aspect/impl/FrameAspect.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FrameAspect.java 23 May 2003 14:20:09 -0000 1.5
+++ FrameAspect.java 15 Jun 2003 19:44:58 -0000 1.6
@@ -50,7 +50,13 @@
*/
package org.apache.cocoon.portal.layout.renderer.aspect.impl;
+import java.util.Collections;
+import java.util.Iterator;
+
+import org.apache.avalon.framework.parameters.ParameterException;
+import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.portal.aspect.impl.DefaultAspectDescription;
import org.apache.cocoon.portal.layout.Layout;
import org.apache.cocoon.portal.layout.impl.FrameLayout;
import org.apache.cocoon.portal.layout.renderer.aspect.RendererAspectContext;
@@ -67,17 +73,55 @@
public class FrameAspect extends AbstractCIncludeAspect {
public void toSAX(RendererAspectContext context, Layout layout, PortalService
service, ContentHandler handler)
- throws SAXException {
+ throws SAXException {
+ PreparedConfiguration config =
(PreparedConfiguration)context.getAspectConfiguration();
if (!(layout instanceof FrameLayout)) {
throw new SAXException("Wrong layout type, FrameLayout expected: " +
layout.getClass().getName());
}
- String source = (String)layout.getAspectData("frame");
+ String source = (String)layout.getAspectData(config.aspectName);
if (source == null) {
source = ((FrameLayout) layout).getSource();
}
this.createCInclude(source, handler);
+ }
+
+ protected class PreparedConfiguration {
+ public String aspectName;
+ public String store;
+
+ public void takeValues(PreparedConfiguration from) {
+ this.aspectName = from.aspectName;
+ this.store = from.store;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.cocoon.portal.layout.renderer.aspect.RendererAspect#prepareConfiguration(org.apache.avalon.framework.parameters.Parameters)
+ */
+ public Object prepareConfiguration(Parameters configuration)
+ throws ParameterException {
+ PreparedConfiguration pc = new PreparedConfiguration();
+ pc.aspectName = configuration.getParameter("aspect-name", "frame");
+ pc.store = configuration.getParameter("store");
+ return pc;
+ }
+
+ /**
+ * Return the aspects required for this renderer
+ * @return An iterator for the aspect descriptions or null.
+ */
+ public Iterator getAspectDescriptions(Object configuration) {
+ PreparedConfiguration pc = (PreparedConfiguration)configuration;
+
+ DefaultAspectDescription desc = new DefaultAspectDescription();
+ desc.setName(pc.aspectName);
+ desc.setClassName("java.lang.String");
+ desc.setPersistence(pc.store);
+ desc.setAutoCreate(false);
+
+ return Collections.singletonList(desc).iterator();
}
}
1.18 +3 -6 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.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- portal.xconf 14 Jun 2003 17:55:44 -0000 1.17
+++ portal.xconf 15 Jun 2003 19:44:58 -0000 1.18
@@ -110,11 +110,11 @@
</renderer>
<renderer name="frame"
class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal" >
<aspects>
- <aspect type="frame"/>
+ <aspect type="frame">
+ <parameter name="store" value="request"/>
+ </aspect>
</aspects>
</renderer>
- <!--renderer name="frame"
class="org.apache.cocoon.portal.layout.renderer.impl.FrameRenderer" logger="portal"/-->
- <!--renderer name="nowindow"
class="org.apache.cocoon.portal.layout.renderer.impl.NoWindowRenderer"
logger="portal"/-->
<renderer name="nowindow"
class="org.apache.cocoon.portal.layout.renderer.impl.AspectRenderer" logger="portal" >
<aspects>
<aspect type="coplet"/>
@@ -160,9 +160,6 @@
<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">