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">