I think it is time to update the version numbers for trunk to 5.3.0-SNAPSHOT
On Mon, Dec 20, 2010 at 1:12 PM, <[email protected]> wrote: > Author: dadams > Date: Mon Dec 20 21:12:29 2010 > New Revision: 1051293 > > URL: http://svn.apache.org/viewvc?rev=1051293&view=rev > Log: > (closed TAP5-1378) Allow Delegate component to be used for creating > in-template components > > Added: > tapestry/tapestry5/trunk/tapestry-core/src/test/app1/DelegateInline.tml > > > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/DelegateInline.java > Modified: > > > tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Delegate.java > tapestry/tapestry5/trunk/tapestry-core/src/test/conf/ (props changed) > > > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GeneralComponentTests.java > > > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java > > Modified: > tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Delegate.java > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Delegate.java?rev=1051293&r1=1051292&r2=1051293&view=diff > > ============================================================================== > --- > tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Delegate.java > (original) > +++ > tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/Delegate.java > Mon Dec 20 21:12:29 2010 > @@ -15,12 +15,25 @@ > package org.apache.tapestry5.corelib.components; > > import org.apache.tapestry5.Block; > +import org.apache.tapestry5.ComponentResources; > +import org.apache.tapestry5.annotations.InjectContainer; > import org.apache.tapestry5.annotations.Parameter; > +import org.apache.tapestry5.annotations.SupportsInformalParameters; > +import org.apache.tapestry5.ioc.annotations.Inject; > +import org.apache.tapestry5.runtime.Component; > > /** > * A component that does not do any rendering of its own, but will delegate > to some other object that can do rendering. > * This other object may be a component or a {...@link Block} (among other > things). > + * <p> > + * This component may also be used to create inline components. For each > informal parameter the value will be stored as a > + * render variable. To create an inline component, create a block > + * and use Delegate multiple times in the template to render the block > passing parameters to Delegate. In the block body > + * reference the render variables using the "var:" binding prefix and the > name of the parameter. > + * <p> > + * Note that the default binding prefix for parameter values is "literal". > */ > +...@supportsinformalparameters > public class Delegate > { > /** > @@ -30,8 +43,16 @@ public class Delegate > @Parameter(required = true) > private Object to; > > - Object beginRender() > - { > + @Inject private ComponentResources resources; > + @InjectContainer private Component container; > + > + Object beginRender() > + { > + for(String name : resources.getInformalParameterNames()) { > + Object value = resources.getInformalParameter(name, > Object.class); > + container.getComponentResources().storeRenderVariable(name, > value); > + } > + > return to; > } > } > > Added: > tapestry/tapestry5/trunk/tapestry-core/src/test/app1/DelegateInline.tml > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/app1/DelegateInline.tml?rev=1051293&view=auto > > ============================================================================== > --- tapestry/tapestry5/trunk/tapestry-core/src/test/app1/DelegateInline.tml > (added) > +++ tapestry/tapestry5/trunk/tapestry-core/src/test/app1/DelegateInline.tml > Mon Dec 20 21:12:29 2010 > @@ -0,0 +1,11 @@ > +<t:border xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" > xmlns:p="tapestry:parameter"> > + <h1>Inline Components using Delegate</h1> > + > + <t:delegate to="block:block1" /> > + <t:delegate to="block:block2" firstName="Steve" lastName="Rogers" > /> > + <t:delegate to="block:block2" firstName="Bruce" lastName="Banner" > /> > + > + <t:block id="block1"><span id="block1">block 1</span></t:block> > + <t:block id="block2"><p class="superhero">${var:firstName} > ${var:lastName}</p></t:block> > +</t:border> > + > > Propchange: tapestry/tapestry5/trunk/tapestry-core/src/test/conf/ > > ------------------------------------------------------------------------------ > --- svn:ignore (added) > +++ svn:ignore Mon Dec 20 21:12:29 2010 > @@ -0,0 +1 @@ > +testng-custom.xml > > Modified: > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GeneralComponentTests.java > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GeneralComponentTests.java?rev=1051293&r1=1051292&r2=1051293&view=diff > > ============================================================================== > --- > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GeneralComponentTests.java > (original) > +++ > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/GeneralComponentTests.java > Mon Dec 20 21:12:29 2010 > @@ -81,4 +81,16 @@ public class GeneralComponentTests exten > > assertText("//t...@class='t-location-content t-location-current']", > "<t:unavailablecomponent/>"); > } > + > + /** TAP5-1378 */ > + @Test public void using_delegate_for_inline_components() { > + clickThru("Inline Delegate"); > + > + // no params > + assertText("block1", "block 1"); > + > + // multiple renders w/ multiple parameters > + assertText("xpath=(//p...@class='superhero'])[1]", "Steve Rogers"); > + assertText("xpath=(//p...@class='superhero'])[2]", "Bruce Banner"); > + } > } > > Added: > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/DelegateInline.java > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/DelegateInline.java?rev=1051293&view=auto > > ============================================================================== > --- > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/DelegateInline.java > (added) > +++ > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/DelegateInline.java > Mon Dec 20 21:12:29 2010 > @@ -0,0 +1,19 @@ > +// Copyright 2006, 2007, 2008, 2009, 2010 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. > + > +package org.apache.tapestry5.integration.app1.pages; > + > +public class DelegateInline { > + > +} > > Modified: > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java > URL: > http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java?rev=1051293&r1=1051292&r2=1051293&view=diff > > ============================================================================== > --- > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java > (original) > +++ > tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java > Mon Dec 20 21:12:29 2010 > @@ -356,6 +356,8 @@ public class Index > "Actions can exist on pages other than the > active page, via Blocks."), > > new Item("unlessdemo", "Unless Demo", "use of the > Unless component"), > + > + new Item("delegateinline", "Inline Delegate", "Using > the delegate component to create inline components"), > > new Item("MagicValueEncoder", "Magic ValueEncoder > Demo", > "Automatic creation of ValueEncoder using the > TypeCoercer"), > > > -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com
