Hey guys. Sorry if I checked this is at the wrong point in the cycle. I have
a commit I'm about to do for TAP-742 (component rendering tracing). It
should be totally backward compatible though.

On Mon, Dec 20, 2010 at 5:19 PM, Howard Lewis Ship <[email protected]> wrote:

> Your always free to commit whatever you like.  I do hope the emphasis will
> stay on documentation for the next few weeks, however. That's what I intend
> to do, before launching into active 5.3 development.
>
> On Mon, Dec 20, 2010 at 1:58 PM, Josh Canfield <[email protected]
> >wrote:
>
> > Cool. I'd love to start checking in generics support. Does this mean
> > I'm free to do that?
> >
> > On Mon, Dec 20, 2010 at 1:36 PM, Howard Lewis Ship <[email protected]>
> > wrote:
> > > 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
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >
>
>
> --
> 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
>

Reply via email to