You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Janko Muzykant <um...@googlemail.com> on 2007/05/25 13:46:58 UTC
T5 selective rendering
hi all,
is anyone able to give me a hint how could I render only one component from
whole the tree of all components that given page consists of? I did such a
thing a few month ago for T4 and it worked exactly like this:
* there was a Border component wrapping all the children
* there was a special component (let's name it @AjaxContainer)
* in case a special id was found in session/request, @Border was replacing
current MarkupWriter with NullMarkupWriter and passed the control down to
the children.
* every component which was not an @AjaxContainer was obviously not rendered
in such a case
* @AjaxContainer was rendering its contents using original MarkupWriter.
as a result i got only contents of my @AjaxContainer.
The question is, how to achieve this functionality in T5? The first problem
for me was lack of NullMarkupWriter, secondly I don't know how to pass
"replaced" writer to the children components. I guess it may be achieved
somehow easier using MarkupWriterFactory, but how?
regards,
umrzyk
Re: T5 selective rendering
Posted by Kristian Marinkovic <kr...@porsche.co.at>.
i did some partial page rendering (PPR) myself ... but i don't
know it is the tapestry 5 way of doing it...
rendering a component from any page....
@Inject
private RequestPageCache _cache;
@Inject
private MarkupWriterFactory mwf;
@Inject
private PageRenderInitializer initializer;
public Object doPPR() {
MarkupWriter markupWriter = mwf.newMarkupWriter();
initializer.setup(markupWriter);
Page page = _cache.get("anypage");
ComponentPageElement element =
page.getRootElement().getEmbeddedElement("anycomponent");
RenderQueueImpl queue =
new RenderQueueImpl(page.getLog());
queue.push(element);
queue.run(markupWriter);
initializer.cleanup(markupWriter);
return new
TextStreamResponse("text/html",markupWriter.toString());
}
"Alexandru Dragomir" <al...@gmail.com>
25.05.2007 19:15
Bitte antworten an
"Tapestry users" <us...@tapestry.apache.org>
An
"Tapestry users" <us...@tapestry.apache.org>
Kopie
Thema
Re: T5 selective rendering
sorry , pressed wrong button:
boolean beginRender() {
return false;
}
And the doc is here :
http://tapestry.apache.org/tapestry5/tapestry-core/guide/rendering.html
On 5/25/07, Alexandru Dragomir <al...@gmail.com> wrote:
>
> As simple as it can get :
>
> @Inject
> private ComponentResources resources;
>
> Component setupRender() {
> return resources.getEmbeddedComponent("yourComponent");
> }
>
> boolean beginRender() {
>
> }
>
> On 5/25/07, Janko Muzykant <um...@googlemail.com> wrote:
> >
> > hi all,
> > is anyone able to give me a hint how could I render only one component
> > from
> > whole the tree of all components that given page consists of? I did
such
> > a
> > thing a few month ago for T4 and it worked exactly like this:
> > * there was a Border component wrapping all the children
> > * there was a special component (let's name it @AjaxContainer)
> > * in case a special id was found in session/request, @Border was
> > replacing
> > current MarkupWriter with NullMarkupWriter and passed the control down
> > to
> > the children.
> > * every component which was not an @AjaxContainer was obviously not
> > rendered
> > in such a case
> > * @AjaxContainer was rendering its contents using original
MarkupWriter.
> >
> > as a result i got only contents of my @AjaxContainer.
> >
> > The question is, how to achieve this functionality in T5? The first
> > problem
> > for me was lack of NullMarkupWriter, secondly I don't know how to pass
> > "replaced" writer to the children components. I guess it may be
achieved
> >
> > somehow easier using MarkupWriterFactory, but how?
> >
> > regards,
> > umrzyk
> >
>
>
Re: T5 selective rendering
Posted by Alexandru Dragomir <al...@gmail.com>.
sorry , pressed wrong button:
boolean beginRender() {
return false;
}
And the doc is here :
http://tapestry.apache.org/tapestry5/tapestry-core/guide/rendering.html
On 5/25/07, Alexandru Dragomir <al...@gmail.com> wrote:
>
> As simple as it can get :
>
> @Inject
> private ComponentResources resources;
>
> Component setupRender() {
> return resources.getEmbeddedComponent("yourComponent");
> }
>
> boolean beginRender() {
>
> }
>
> On 5/25/07, Janko Muzykant <um...@googlemail.com> wrote:
> >
> > hi all,
> > is anyone able to give me a hint how could I render only one component
> > from
> > whole the tree of all components that given page consists of? I did such
> > a
> > thing a few month ago for T4 and it worked exactly like this:
> > * there was a Border component wrapping all the children
> > * there was a special component (let's name it @AjaxContainer)
> > * in case a special id was found in session/request, @Border was
> > replacing
> > current MarkupWriter with NullMarkupWriter and passed the control down
> > to
> > the children.
> > * every component which was not an @AjaxContainer was obviously not
> > rendered
> > in such a case
> > * @AjaxContainer was rendering its contents using original MarkupWriter.
> >
> > as a result i got only contents of my @AjaxContainer.
> >
> > The question is, how to achieve this functionality in T5? The first
> > problem
> > for me was lack of NullMarkupWriter, secondly I don't know how to pass
> > "replaced" writer to the children components. I guess it may be achieved
> >
> > somehow easier using MarkupWriterFactory, but how?
> >
> > regards,
> > umrzyk
> >
>
>
Re: T5 selective rendering
Posted by Alexandru Dragomir <al...@gmail.com>.
As simple as it can get :
@Inject
private ComponentResources resources;
Component setupRender() {
return resources.getEmbeddedComponent("yourComponent");
}
boolean beginRender() {
}
On 5/25/07, Janko Muzykant <um...@googlemail.com> wrote:
>
> hi all,
> is anyone able to give me a hint how could I render only one component
> from
> whole the tree of all components that given page consists of? I did such a
> thing a few month ago for T4 and it worked exactly like this:
> * there was a Border component wrapping all the children
> * there was a special component (let's name it @AjaxContainer)
> * in case a special id was found in session/request, @Border was replacing
> current MarkupWriter with NullMarkupWriter and passed the control down to
> the children.
> * every component which was not an @AjaxContainer was obviously not
> rendered
> in such a case
> * @AjaxContainer was rendering its contents using original MarkupWriter.
>
> as a result i got only contents of my @AjaxContainer.
>
> The question is, how to achieve this functionality in T5? The first
> problem
> for me was lack of NullMarkupWriter, secondly I don't know how to pass
> "replaced" writer to the children components. I guess it may be achieved
> somehow easier using MarkupWriterFactory, but how?
>
> regards,
> umrzyk
>