programatic way to remove a component

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

programatic way to remove a component

pepone.onrez
Hello  all

Any body knows howto remove a child component in a page method

i want to remove a componet that i add calling addBody(component1);

thanks

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

Reply | Threaded
Open this post in threaded view
|

Re: programatic way to remove a component

Howard Lewis Ship
In Tapestry, pages are supposed to be statically constructed, much
like Java classes.  This question is equivalent to asking "how to I
programmatically remove a method?".

Use Conditional components to control if a component gets rendered.

Use Block and RenderBlock to control which components get rendered.

On 5/20/05, pepone pepone <[hidden email]> wrote:

> Hello  all
>
> Any body knows howto remove a child component in a page method
>
> i want to remove a componet that i add calling addBody(component1);
>
> thanks
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


--
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

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

Reply | Threaded
Open this post in threaded view
|

Re: programatic way to remove a component

pepone.onrez
Hello Howard i thinking in a AbstractComponent not in a page sorry for
this mistake

 i create and abstract component and add child componets  to this
component calling addBody(newComponent); and this works fine

but what i don't know is how remove a component that is no more longer
needed for the page.

thanks in advantage

On 5/21/05, Howard Lewis Ship <[hidden email]> wrote:

> In Tapestry, pages are supposed to be statically constructed, much
> like Java classes.  This question is equivalent to asking "how to I
> programmatically remove a method?".
>
> Use Conditional components to control if a component gets rendered.
>
> Use Block and RenderBlock to control which components get rendered.
>
> On 5/20/05, pepone pepone <[hidden email]> wrote:
> > Hello  all
> >
> > Any body knows howto remove a child component in a page method
> >
> > i want to remove a componet that i add calling addBody(component1);
> >
> > thanks
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
>
> --
> Howard M. Lewis Ship
> Independent J2EE / Open-Source Java Consultant
> Creator, Jakarta Tapestry
> Creator, Jakarta HiveMind
>
> Professional Tapestry training, mentoring, support
> and project work.  http://howardlewisship.com
>

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

Reply | Threaded
Open this post in threaded view
|

Re: programatic way to remove a component

Howard Lewis Ship
It only appears to work fine.

You page will not pool correctly.  Different instances in the pool
will not contain the same structure. It will appear to work as a
single developer but will fail in production.

On 5/21/05, pepone pepone <[hidden email]> wrote:

> Hello Howard i thinking in a AbstractComponent not in a page sorry for
> this mistake
>
>  i create and abstract component and add child componets  to this
> component calling addBody(newComponent); and this works fine
>
> but what i don't know is how remove a component that is no more longer
> needed for the page.
>
> thanks in advantage
>
> On 5/21/05, Howard Lewis Ship <[hidden email]> wrote:
> > In Tapestry, pages are supposed to be statically constructed, much
> > like Java classes.  This question is equivalent to asking "how to I
> > programmatically remove a method?".
> >
> > Use Conditional components to control if a component gets rendered.
> >
> > Use Block and RenderBlock to control which components get rendered.
> >
> > On 5/20/05, pepone pepone <[hidden email]> wrote:
> > > Hello  all
> > >
> > > Any body knows howto remove a child component in a page method
> > >
> > > i want to remove a componet that i add calling addBody(component1);
> > >
> > > thanks
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [hidden email]
> > > For additional commands, e-mail: [hidden email]
> > >
> > >
> >
> >
> > --
> > Howard M. Lewis Ship
> > Independent J2EE / Open-Source Java Consultant
> > Creator, Jakarta Tapestry
> > Creator, Jakarta HiveMind
> >
> > Professional Tapestry training, mentoring, support
> > and project work.  http://howardlewisship.com
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


--
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

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

Reply | Threaded
Open this post in threaded view
|

Re: programatic way to remove a component

pepone.onrez
i don't understand what you want  say.  

is not the same case whe you have a for-each rendering a list of
components if the model of the for-each changue the list of components
needs to be updated and old version of this page will be difrent with
more or less items

what is the correct aproach in tapestry to manage a case like this.

one component for example CatalogView  and other component CatalogViewItem  
the CalogView renders a collection of CatalogViewItems this items
depends of the CatalogModel object asociated with CatalogView.
CatalogModel is exponse to changues by add or remove items in the
admin interface

thanks

On 5/21/05, Howard Lewis Ship <[hidden email]> wrote:

> It only appears to work fine.
>
> You page will not pool correctly.  Different instances in the pool
> will not contain the same structure. It will appear to work as a
> single developer but will fail in production.
>
> On 5/21/05, pepone pepone <[hidden email]> wrote:
> > Hello Howard i thinking in a AbstractComponent not in a page sorry for
> > this mistake
> >
> >  i create and abstract component and add child componets  to this
> > component calling addBody(newComponent); and this works fine
> >
> > but what i don't know is how remove a component that is no more longer
> > needed for the page.
> >
> > thanks in advantage
> >
> > On 5/21/05, Howard Lewis Ship <[hidden email]> wrote:
> > > In Tapestry, pages are supposed to be statically constructed, much
> > > like Java classes.  This question is equivalent to asking "how to I
> > > programmatically remove a method?".
> > >
> > > Use Conditional components to control if a component gets rendered.
> > >
> > > Use Block and RenderBlock to control which components get rendered.
> > >
> > > On 5/20/05, pepone pepone <[hidden email]> wrote:
> > > > Hello  all
> > > >
> > > > Any body knows howto remove a child component in a page method
> > > >
> > > > i want to remove a componet that i add calling addBody(component1);
> > > >
> > > > thanks
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [hidden email]
> > > > For additional commands, e-mail: [hidden email]
> > > >
> > > >
> > >
> > >
> > > --
> > > Howard M. Lewis Ship
> > > Independent J2EE / Open-Source Java Consultant
> > > Creator, Jakarta Tapestry
> > > Creator, Jakarta HiveMind
> > >
> > > Professional Tapestry training, mentoring, support
> > > and project work.  http://howardlewisship.com
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
> >
>
>
> --
> Howard M. Lewis Ship
> Independent J2EE / Open-Source Java Consultant
> Creator, Jakarta Tapestry
> Creator, Jakarta HiveMind
>
> Professional Tapestry training, mentoring, support
> and project work.  http://howardlewisship.com
>

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

Reply | Threaded
Open this post in threaded view
|

Re: programatic way to remove a component

Massimo Lusetti
On 5/21/05, pepone pepone <[hidden email]> wrote:

> i don't understand what you want  say.

i think you're trying to see Tapestry pages as DOM (which they
actually are since they're html) while Tapestry don't work on them
like DOM.

You should use components and wrapping components within conditional
ones like Howard say.

Howard and others, please correct me if I'm wrong

--
Massimo

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

Reply | Threaded
Open this post in threaded view
|

Re: programatic way to remove a component

pepone.onrez
Hello Massimo i not thinking in Dom at all

I think in Tapestry as a web component framework, and componets can
has a number of child components if i right

when you create a tapestry.page you are using a tapestry specific
component and you can add sub-components in the page specification or
page template

you can use a Foreach component to render a variable number of other
components in this page

and i only want to do the same in an abstract component.

i don't knows the correct way to  doit

but if it's posible to do in a tapestry page why not in a AbstractComponent?

 

On 5/21/05, Massimo Lusetti <[hidden email]> wrote:

> On 5/21/05, pepone pepone <[hidden email]> wrote:
>
> > i don't understand what you want  say.
>
> i think you're trying to see Tapestry pages as DOM (which they
> actually are since they're html) while Tapestry don't work on them
> like DOM.
>
> You should use components and wrapping components within conditional
> ones like Howard say.
>
> Howard and others, please correct me if I'm wrong
>
> --
> Massimo
>

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

Reply | Threaded
Open this post in threaded view
|

Re: programatic way to remove a component

Massimo Lusetti
On 5/21/05, pepone pepone <[hidden email]> wrote:

> you can use a Foreach component to render a variable number of other
> components in this page

Foreach components never remove components from pages.
From foreach javadocs:
"Repeatedly renders its wrapped contents while iterating through a
list of values" so it never clone/duplicate a components or pages part
but it "repeatedly renders" them, so the page structure is never
changed.

Please, again, correct me if my understandings are wrong

--
Massimo

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

Reply | Threaded
Open this post in threaded view
|

Re: programatic way to remove a component

Ron Piterman
In reply to this post by pepone.onrez
Hi,

You don't tell much about what you want to do.

If you have a component in your component, which should only render
occasionaly, you should use some kind of conditional *rendering*.

In Tapestry, there seems to be a difference between *rendering* and
*instanciating*. Where instanciating (components) is of static nature.
rendering is flexible. so a components can be added only once to its
container (you can not use the same components twice...), but can be
rendered many times.

If you can't live with that, you could delegate the rendering of your
component to an external Renderer, and keep it flexible... just an idee...

Cheers,
Ron



????? pepone pepone:

> Hello  all
>
> Any body knows howto remove a child component in a page method
>
> i want to remove a componet that i add calling addBody(component1);
>
> thanks
>
> ---------------------------------------------------------------------
> 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: programatic way to remove a component

pepone.onrez
What i trying to is a Product catalog  my aproach is add One
PoductViewComponent for each product in the catalog and one
ProducCategory for each category in the catalog


--------ProductCategoryComponent ---------
------------ProductCagetory
------------ProductViewComponent 1----
...................................................
------------ProductViewComponent N -----

but if I understand you weel i can do it this whit only one instance
of ProductViewComponent ProductCategoryComponent and render it many
times?


thanks
On 5/22/05, Ron Piterman <[hidden email]> wrote:

> Hi,
>
> You don't tell much about what you want to do.
>
> If you have a component in your component, which should only render
> occasionaly, you should use some kind of conditional *rendering*.
>
> In Tapestry, there seems to be a difference between *rendering* and
> *instanciating*. Where instanciating (components) is of static nature.
> rendering is flexible. so a components can be added only once to its
> container (you can not use the same components twice...), but can be
> rendered many times.
>
> If you can't live with that, you could delegate the rendering of your
> component to an external Renderer, and keep it flexible... just an idee...
>
> Cheers,
> Ron
>
>
>
> ציטוט pepone pepone:
> > Hello  all
> >
> > Any body knows howto remove a child component in a page method
> >
> > i want to remove a componet that i add calling addBody(component1);
> >
> > thanks
> >
> > ---------------------------------------------------------------------
> > 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: programatic way to remove a component

Ron Piterman
????? pepone pepone:

> What i trying to is a Product catalog  my aproach is add One
> PoductViewComponent for each product in the catalog and one
> ProducCategory for each category in the catalog
>
>
> --------ProductCategoryComponent ---------
> ------------ProductCagetory
> ------------ProductViewComponent 1----
> ...................................................
> ------------ProductViewComponent N -----
>
> but if I understand you weel i can do it this whit only one instance
> of ProductViewComponent ProductCategoryComponent and render it many
> times?

Thats the only way to do it.
You create a ProductViewComponent, which renders the Product Bean, and
use it in your CategoryComponent, most likeley inside a foreach component:

<span jwcid="@Foreach" source="ognl:products"
     value="ognl:currentProduct">

        <span
            jwcid="@ProductViewComponent"
            value="ognl:currentProduct"/>

</span>


Cheers,
Ron

>
>
> thanks
> On 5/22/05, Ron Piterman <[hidden email]> wrote:
>
>>Hi,
>>
>>You don't tell much about what you want to do.
>>
>>If you have a component in your component, which should only render
>>occasionaly, you should use some kind of conditional *rendering*.
>>
>>In Tapestry, there seems to be a difference between *rendering* and
>>*instanciating*. Where instanciating (components) is of static nature.
>>rendering is flexible. so a components can be added only once to its
>>container (you can not use the same components twice...), but can be
>>rendered many times.
>>
>>If you can't live with that, you could delegate the rendering of your
>>component to an external Renderer, and keep it flexible... just an idee...
>>
>>Cheers,
>>Ron
>>
>>
>>
>>????? pepone pepone:
>>
>>>Hello  all
>>>
>>>Any body knows howto remove a child component in a page method
>>>
>>>i want to remove a componet that i add calling addBody(component1);
>>>
>>>thanks
>>>
>>>---------------------------------------------------------------------
>>>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]