Brain Freeze

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Brain Freeze

Patrick Casey
 

            I'm brain frozen on something that should be drop dead simple
and I was hoping somebody could help me out.

 

            I have a component. It is made up of some "normal" tapestry
stuff, and a big chunk of html that the component class itself emits.

 

            Right now, the renderComponent() method looks like:

 

            Write some stuff

            Super.render(writer, cycle);

 

            Net result is I get a component with "my stuff" on top and the
stuff in the template file beneath it.

 

            Conversely if I do:

 

            Super.render(writer.cycle);

            Write some stuff

 

            I get whatever's in the template html file on top with "my
stuff" on the bottom.

 

            So far, so good, and it's all very logical.

 

            What I'd like to do though is control where in the template "my
stuff" shows up, ideally by using some sort of special tag e.g. I'd like to
be able to have my template look like:

 

            Hello

            <span jwcid="MY STUFF"/>

            World

 

            Or

            Hello World! Here is <span jwcid="MY STUFF" />

 

            This all has to happen though within a single component as, for
historical reasons, I can't just break my component apart and make a
subcomponent called MY STUFF. Can anyone help here? Basically I need the
inverse of renderBody.

 

            --- Pat

Reply | Threaded
Open this post in threaded view
|

Re: Brain Freeze

Konstantin Ignatyev
Looks like all you need is

Hello
<span jwcid="@InsertText" value="ognl:myStuff"/>

And your component should have method String getMyStuff()


Patrick Casey wrote:

>
>
>            I'm brain frozen on something that should be drop dead simple
>and I was hoping somebody could help me out.
>
>
>
>            I have a component. It is made up of some "normal" tapestry
>stuff, and a big chunk of html that the component class itself emits.
>
>
>
>            Right now, the renderComponent() method looks like:
>
>
>
>            Write some stuff
>
>            Super.render(writer, cycle);
>
>
>
>            Net result is I get a component with "my stuff" on top and the
>stuff in the template file beneath it.
>
>
>
>            Conversely if I do:
>
>
>
>            Super.render(writer.cycle);
>
>            Write some stuff
>
>
>
>            I get whatever's in the template html file on top with "my
>stuff" on the bottom.
>
>
>
>            So far, so good, and it's all very logical.
>
>
>
>            What I'd like to do though is control where in the template "my
>stuff" shows up, ideally by using some sort of special tag e.g. I'd like to
>be able to have my template look like:
>
>
>
>            Hello
>
>            <span jwcid="MY STUFF"/>
>
>            World
>
>
>
>            Or
>
>            Hello World! Here is <span jwcid="MY STUFF" />
>
>
>
>            This all has to happen though within a single component as, for
>historical reasons, I can't just break my component apart and make a
>subcomponent called MY STUFF. Can anyone help here? Basically I need the
>inverse of renderBody.
>
>
>
>            --- Pat
>
>
>  
>


--
Thanks,

Konstantin Ignatyev

http://www.kgionline.com





PS: If this is a typical day on planet earth, humans will add fifteen million tons of carbon to the atmosphere, destroy 115 square miles of tropical rainforest, create seventy-two miles of desert, eliminate between forty to one hundred species, erode seventy-one million tons of topsoil, add 2.700 tons of CFCs to the stratosphere, and increase their population by 263.000

Bowers, C.A.  The Culture of Denial:  
Why the Environmental Movement Needs a Strategy for Reforming Universities and Public Schools.  
New York:  State University of New York Press, 1997: (4) (5) (p.206)


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: Brain Freeze

Patrick Casey

        <smacks head>

        Yep, that should work great, thanks!

        --- Pat

> -----Original Message-----
> From: Konstantin Iignatyev [mailto:[hidden email]]
> Sent: Sunday, May 15, 2005 6:27 PM
> To: Tapestry users
> Subject: Re: Brain Freeze
>
> Looks like all you need is
>
> Hello
> <span jwcid="@InsertText" value="ognl:myStuff"/>
>
> And your component should have method String getMyStuff()
>
>
> Patrick Casey wrote:
>
> >
> >
> >            I'm brain frozen on something that should be drop dead simple
> >and I was hoping somebody could help me out.
> >
> >
> >
> >            I have a component. It is made up of some "normal" tapestry
> >stuff, and a big chunk of html that the component class itself emits.
> >
> >
> >
> >            Right now, the renderComponent() method looks like:
> >
> >
> >
> >            Write some stuff
> >
> >            Super.render(writer, cycle);
> >
> >
> >
> >            Net result is I get a component with "my stuff" on top and
> the
> >stuff in the template file beneath it.
> >
> >
> >
> >            Conversely if I do:
> >
> >
> >
> >            Super.render(writer.cycle);
> >
> >            Write some stuff
> >
> >
> >
> >            I get whatever's in the template html file on top with "my
> >stuff" on the bottom.
> >
> >
> >
> >            So far, so good, and it's all very logical.
> >
> >
> >
> >            What I'd like to do though is control where in the template
> "my
> >stuff" shows up, ideally by using some sort of special tag e.g. I'd like
> to
> >be able to have my template look like:
> >
> >
> >
> >            Hello
> >
> >            <span jwcid="MY STUFF"/>
> >
> >            World
> >
> >
> >
> >            Or
> >
> >            Hello World! Here is <span jwcid="MY STUFF" />
> >
> >
> >
> >            This all has to happen though within a single component as,
> for
> >historical reasons, I can't just break my component apart and make a
> >subcomponent called MY STUFF. Can anyone help here? Basically I need the
> >inverse of renderBody.
> >
> >
> >
> >            --- Pat
> >
> >
> >
> >
>
>
> --
> Thanks,
>
> Konstantin Ignatyev
>
> http://www.kgionline.com
>
>
>
>
>
> PS: If this is a typical day on planet earth, humans will add fifteen
> million tons of carbon to the atmosphere, destroy 115 square miles of
> tropical rainforest, create seventy-two miles of desert, eliminate between
> forty to one hundred species, erode seventy-one million tons of topsoil,
> add 2.700 tons of CFCs to the stratosphere, and increase their population
> by 263.000
>
> Bowers, C.A.  The Culture of Denial:
> Why the Environmental Movement Needs a Strategy for Reforming Universities
> and Public Schools.
> New York:  State University of New York Press, 1997: (4) (5) (p.206)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]



---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Brain Freeze

Robert Zeigler
Depending on the complexity of what you're inserting/doing,
you might also consider looking into block & renderBlock.

Robert

Patrick Casey wrote:

> <smacks head>
>
> Yep, that should work great, thanks!
>
> --- Pat
>
>
>>-----Original Message-----
>>From: Konstantin Iignatyev [mailto:[hidden email]]
>>Sent: Sunday, May 15, 2005 6:27 PM
>>To: Tapestry users
>>Subject: Re: Brain Freeze
>>
>>Looks like all you need is
>>
>>Hello
>><span jwcid="@InsertText" value="ognl:myStuff"/>
>>
>>And your component should have method String getMyStuff()
>>
>>
>>Patrick Casey wrote:
>>
>>
>>>
>>>           I'm brain frozen on something that should be drop dead simple
>>>and I was hoping somebody could help me out.
>>>
>>>
>>>
>>>           I have a component. It is made up of some "normal" tapestry
>>>stuff, and a big chunk of html that the component class itself emits.
>>>
>>>
>>>
>>>           Right now, the renderComponent() method looks like:
>>>
>>>
>>>
>>>           Write some stuff
>>>
>>>           Super.render(writer, cycle);
>>>
>>>
>>>
>>>           Net result is I get a component with "my stuff" on top and
>>
>>the
>>
>>>stuff in the template file beneath it.
>>>
>>>
>>>
>>>           Conversely if I do:
>>>
>>>
>>>
>>>           Super.render(writer.cycle);
>>>
>>>           Write some stuff
>>>
>>>
>>>
>>>           I get whatever's in the template html file on top with "my
>>>stuff" on the bottom.
>>>
>>>
>>>
>>>           So far, so good, and it's all very logical.
>>>
>>>
>>>
>>>           What I'd like to do though is control where in the template
>>
>>"my
>>
>>>stuff" shows up, ideally by using some sort of special tag e.g. I'd like
>>
>>to
>>
>>>be able to have my template look like:
>>>
>>>
>>>
>>>           Hello
>>>
>>>           <span jwcid="MY STUFF"/>
>>>
>>>           World
>>>
>>>
>>>
>>>           Or
>>>
>>>           Hello World! Here is <span jwcid="MY STUFF" />
>>>
>>>
>>>
>>>           This all has to happen though within a single component as,
>>
>>for
>>
>>>historical reasons, I can't just break my component apart and make a
>>>subcomponent called MY STUFF. Can anyone help here? Basically I need the
>>>inverse of renderBody.
>>>
>>>
>>>
>>>           --- Pat
>>>
>>>
>>>
>>>
>>
>>
>>--
>>Thanks,
>>
>>Konstantin Ignatyev
>>
>>http://www.kgionline.com
>>
>>
>>
>>
>>
>>PS: If this is a typical day on planet earth, humans will add fifteen
>>million tons of carbon to the atmosphere, destroy 115 square miles of
>>tropical rainforest, create seventy-two miles of desert, eliminate between
>>forty to one hundred species, erode seventy-one million tons of topsoil,
>>add 2.700 tons of CFCs to the stratosphere, and increase their population
>>by 263.000
>>
>>Bowers, C.A.  The Culture of Denial:
>>Why the Environmental Movement Needs a Strategy for Reforming Universities
>>and Public Schools.
>>New York:  State University of New York Press, 1997: (4) (5) (p.206)
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [hidden email]
>>For additional commands, e-mail: [hidden email]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: Brain Freeze

Patrick Casey

        It's fairly complex, but I already had the code around to write it
out to an HTMLWriter, so it was like 5 lines of code to construct an
HTMLWriter from a stringwriter and use the exact same code.

        --- Pat

> -----Original Message-----
> From: Robert Zeigler [mailto:[hidden email]]
> Sent: Sunday, May 15, 2005 8:04 PM
> To: Tapestry users
> Subject: Re: Brain Freeze
>
> Depending on the complexity of what you're inserting/doing,
> you might also consider looking into block & renderBlock.
>
> Robert
>
> Patrick Casey wrote:
> > <smacks head>
> >
> > Yep, that should work great, thanks!
> >
> > --- Pat
> >
<snip>



---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]