ok I tested it. I think the solution is simple and I'll check it in
tomorrow. I need some more testing and the current bugs in NiceUrl and
Library should be fixed first.

Juergen

On 1/8/06, Juergen Donnerstag <[EMAIL PROTECTED]> wrote:
> > so Component.validateMarkupStream(final MarkupStream markupStream) will not 
> > be
> >called
> >Maybe we can set the markup position on the component that is not
> visible? Right before
> > skipComponent call?
>
> I'll check that.
>
> BTW a childs markupPosition may as well be -1. It is only required if
> that is the root component to be re-rendered.
>
> Martjin: you are using doRender() to redraw the component, not render() 
> correct?
>
>
> Juergen
>
> On 1/8/06, Juergen Donnerstag <[EMAIL PROTECTED]> wrote:
> > I think the easiest solution is to put the panel into a
> > WebMarkupContainer which contains nothing but the Panel. Because the
> > containers always get rendered you can re-render it. Somthng like
> >
> > <span wicket:id="panelParent"><span wicket:id="myPanel"/></span>
> >
> > Now myPanel can be invisible and you are still able to render it by
> > rendering parentPanel instead
> >
> > Juergen
> >
> > On 1/8/06, Johan Compagner <[EMAIL PROTECTED]> wrote:
> > > that was the case previously (we did the render but with a null response)
> > > But we encountered problems for that because the component must be
> > > completely be initialized.. and developers didn't expect that
> > >
> > > now we do:
> > >
> > > if (renderAllowed && isVisible())
> > >             {
> > >                 // Rendering is beginning
> > >                 if (log.isDebugEnabled())
> > >                 {
> > >                     log.debug("Begin render " + this);
> > >                 }
> > >
> > >                 // Call implementation to render component
> > >                 onRender();
> > >
> > >                 // Component has been rendered
> > >                 rendered();
> > >
> > >                 if ( log.isDebugEnabled())
> > >                 {
> > >                     log.debug("End render " + this);
> > >                 }
> > >             }
> > >             else
> > >             {
> > >                 findMarkupStream().skipComponent();
> > >             }
> > >
> > >
> > > so Component.validateMarkupStream(final MarkupStream markupStream) will 
> > > not
> > > be called
> > > Maybe we can set the markup position on the component that is not visible?
> > > Right before skipComponent call?
> > > But the problem is that then that component is fine but childs of that
> > > component again are still not be able to render..
> > >
> > > Maybe juergen can jump in?
> > >
> > >
> > > johan
> > >
> > >
> > > On 1/8/06, Martijn Dashorst <[EMAIL PROTECTED]> wrote:
> > > > It was not visible, so the actual markup wasn't sent to the client,
> > > > but I expect(ed) it to be read into the markup stream...
> > > >
> > > > Martijn
> > > >
> > > >
> > > > On 1/8/06, Johan Compagner < [EMAIL PROTECTED]> wrote:
> > > > > is it renderd once in a full render?
> > > > > because the markupstream position that seems to be -1 in youre case 
> > > > > can
> > > only
> > > > > be set first in a full render.
> > > > >
> > > > > johan
> > > > >
> > > > >
> > > > >
> > > > > On 1/8/06, Martijn Dashorst <[EMAIL PROTECTED]> wrote:
> > > > > > Hi,
> > > > > >
> > > > > > I'm trying to get an advanced partial page rendering thing working,
> > > but
> > > > > I'm having a hard time getting the first render to work. I'm getting
> > > > > indexoutofbounds exceptions on the markup stream.
> > > > > >
> > > > > > java.lang.ArrayIndexOutOfBoundsException: -1
> > > > > > at java.util.ArrayList.get(ArrayList.java:324)
> > > > > > at
> > > > >
> > > java.util.Collections$UnmodifiableList.get(Collections.java:1155)
> > > > > > at wicket.markup.Markup.get
> > > > > > (
> > > > > > Markup.java:143)
> > > > > > at wicket.markup.MarkupStream.get(MarkupStream.java:324)
> > > > > > at
> > > > >
> > > wicket.markup.MarkupStream.setCurrentIndex(MarkupStream.java:202)
> > > > > > at wicket.Component.doRender(Component.java:579)
> > > > > >
> > > > > > at
> > > > > >
> > > > >
> > > wicket.request.target.ComponentRequestTarget.respond(ComponentRequestTarget.java:73)
> > > > > > at
> > > > >
> > > wicket.request.compound.DefaultResponseStrategy.respond(DefaultResponseStrategy.java
> > > :47)
> > > > > > at
> > > > >
> > > wicket.request.compound.AbstractCompoundRequestCycleProcessor.respond
> > > > > >
> > > > > > (AbstractCompoundRequestCycleProcessor.java:66)
> > > > > > at
> > > > > wicket.RequestCycle.doProcessEventsAndRespond
> > > (RequestCycle.java:839)
> > > > > > at
> > > > >
> > > wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:899)
> > > > > > at wicket.RequestCycle.step
> > > > > >
> > > > > > (RequestCycle.java:1008)
> > > > > > at wicket.RequestCycle.steps(RequestCycle.java:1065)
> > > > > > at wicket.RequestCycle.request(RequestCycle.java:539)
> > > > > > at
> > > > >
> > > wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:199
> > > > > >
> > > > > >
> > > > > >
> > > > > > Basically the thing I do is this: on a panel I have a subpanel that
> > > needs
> > > > > to be re-rendered:
> > > > > >
> > > > > > class Panel1 {
> > > > > >     Panel1(IDataProvider provider) {
> > > > > >         Panel panel2 = new Panel2("panel2", dataprovider);
> > > > > >         add(panel2);
> > > > > >         panel2.setVisible(false);
> > > > > >         add(new Link('foo') {
> > > > > >             public void onClick() {
> > > > > >                 Component target = getParent().get("panel2");
> > > > > >                 target.setVisible(true);
> > > > > >                 ComponentRequestTarget target = new
> > > > > ComponentRequestTarget(panel);
> > > > > >                 RequestCycle cycle = RequestCycle.get();
> > > > > >                 cycle.setRequestTarget(target);
> > > > > >             }
> > > > > >         });
> > > > > >     }
> > > > > > }
> > > > > >
> > > > > > Is this not supported?
> > > > > >
> > > > > > BTW I did get it to work, but by doing it a completely other way: I
> > > > > provide the dataview with a IDataProvider that returns an empty 
> > > > > Iterator
> > > and
> > > > > size = 0 when a flag isn't set. If the flag is set (in the ajax
> > > handler),
> > > > > then the custom IDataProvider works as usual. It is quite a hack, and
> > > I'm
> > > > > not too proud of it, but it works. Now using the isVisible flags...
> > > > > >
> > > > > > Martijn
> > > > > > --
> > > > > > Living a wicket life...
> > > > > >
> > > > > > Martijn Dashorst -
> > > http://www.jroller.com/page/dashorst
> > > > > >
> > > > > > Wicket 1.1 is out:
> > > > > http://wicket.sourceforge.net/wicket-1.1
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Living a wicket life...
> > > >
> > > > Martijn Dashorst - http://www.jroller.com/page/dashorst
> > > >
> > > > Wicket 1.1 is out:
> > > http://wicket.sourceforge.net/wicket-1.1
> > > >
> > > >
> > > > -------------------------------------------------------
> > > > This SF.net email is sponsored by: Splunk Inc. Do you grep through log
> > > files
> > > > for problems?  Stop!  Download the new AJAX search engine that makes
> > > > searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
> > > > http://ads.osdn.com/?ad_idv37&alloc_id865&opclick
> > > > _______________________________________________
> > > > Wicket-develop mailing list
> > > > [email protected]
> > > >
> > > https://lists.sourceforge.net/lists/listinfo/wicket-develop
> > > >
> > >
> > >
> >
>


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop

Reply via email to