it seems no :-( On Tue, Oct 14, 2014 at 11:16 AM, Ernesto Reinaldo Barreiro < reier...@gmail.com> wrote:
> It is already good for people wanting/needing to use it :-) > > Is there any other way to hook into onRender? Any way to avoid onRender > being called via a global listener? If component is intanceof Bla don't > call onRender? > > On Tue, Oct 14, 2014 at 10:47 AM, Martin Grigorov <mgrigo...@apache.org> > wrote: > >> Oops. It seems PortletLike (a copy of PanelA with an exception in the >> rendering of its Label child) hasn't be added to Git ... >> >> I've refactored it even further. >> But as you can see the default rendering of a component should be >> suppressed (PortletLike#onRender() {}) so it is not enough just to have >> the >> behavior. >> >> This is just a simple demo. >> I'd like some feedback from a real usage before even thinking about adding >> this to core. >> >> Martin Grigorov >> Wicket Training and Consulting >> https://twitter.com/mtgrigorov >> >> On Tue, Oct 14, 2014 at 1:24 PM, Ernesto Reinaldo Barreiro < >> reier...@gmail.com> wrote: >> >> > Martin, >> > >> > PortletLike b = new PortletLike("b", Model.of("panel b"))... I can't >> > see a PortletLike... >> > on same package. Maybe a good way to use the behavior is: 1- Roll a >> > PorletLikeBehavior. and an Interface IPorletLike { CharSequence >> > getOnFailContents(); } to mark porlet like components. 2- Add a >> component >> > instantiation listener that if a component implement IPorletLike >> > automatically adds the behavior. >> > >> > On Tue, Oct 14, 2014 at 10:14 AM, Martin Grigorov <mgrigo...@apache.org >> > >> > wrote: >> > >> > > Hi Ernesto, >> > > >> > > I didn't get the question. >> > > >> > > Martin Grigorov >> > > Wicket Training and Consulting >> > > https://twitter.com/mtgrigorov >> > > >> > > On Tue, Oct 14, 2014 at 1:10 PM, Ernesto Reinaldo Barreiro < >> > > reier...@gmail.com> wrote: >> > > >> > > > Thanks! Whose PortletLike on >> > > > >> > > > >> > > >> > >> https://github.com/martin-g/component-rendering-default/blob/master/src/main/java/com/mycompany/HomePage.java >> > > > ? >> > > > PanelA? >> > > > >> > > > On Tue, Oct 14, 2014 at 9:03 AM, Martin Grigorov < >> mgrigo...@apache.org >> > > >> > > > wrote: >> > > > >> > > > > Hi, >> > > > > >> > > > > Here is a demo app with Wicket 6.x: >> > > > > https://github.com/martin-g/component-rendering-default >> > > > > >> > > > > Martin Grigorov >> > > > > Wicket Training and Consulting >> > > > > https://twitter.com/mtgrigorov >> > > > > >> > > > > On Mon, Oct 13, 2014 at 6:13 PM, Martin Grigorov < >> > mgrigo...@apache.org >> > > > >> > > > > wrote: >> > > > > >> > > > > > Here is a possible solution *now*: >> > > > > > >> > > > > > portletLike.add(new AbstractTransformerBehavior() { >> > > > > > @Override public CharSequence transform(Component c, >> CharSequence >> > > > > > output) { >> > > > > > try { >> > > > > > c.internalRenderComponent(); >> > > > > > } catch (Exception x) { >> > > > > > return "default result"; >> > > > > > } >> > > > > > } >> > > > > > }); >> > > > > > >> > > > > > Something like this should do it. >> > > > > > >> > > > > > Martin Grigorov >> > > > > > Wicket Training and Consulting >> > > > > > https://twitter.com/mtgrigorov >> > > > > > >> > > > > > On Mon, Oct 13, 2014 at 5:39 PM, Ernesto Reinaldo Barreiro < >> > > > > > reier...@gmail.com> wrote: >> > > > > > >> > > > > >> I see... you may have already streamed content --> Maybe same >> > > > interface >> > > > > >> serves to mark a component as "do not stream anything till the >> > end", >> > > > or >> > > > > >> stream the contents to an intermediate buffer... but what I way >> > > above >> > > > > >> might >> > > > > >> not make sense as well. >> > > > > >> >> > > > > >> >> > > > > >> On Mon, Oct 13, 2014 at 4:33 PM, Martin Grigorov < >> > > > mgrigo...@apache.org> >> > > > > >> wrote: >> > > > > >> >> > > > > >> > On Mon, Oct 13, 2014 at 5:09 PM, Ernesto Reinaldo Barreiro < >> > > > > >> > reier...@gmail.com> wrote: >> > > > > >> > >> > > > > >> > > @Martin, >> > > > > >> > > >> > > > > >> > > Just a (maybe stupid) idea: >> > > > > >> > > >> > > > > >> > > 1- Mark some component as ISafeFail >> > > > > >> > > 2- If rendering fails take Component_onfail.html and >> render it >> > > > > >> > > >> > > > > >> > >> > > > > >> > As I said earlier this is not so trivial. >> > > > > >> > The failure may happen in the middle of the rendering and the >> > > > content >> > > > > >> > collected so far in RequestCycle#getResponse() could be >> invalid >> > > > HTML. >> > > > > >> > Appending anything (loaded from a file or generated on the >> fly) >> > is >> > > > not >> > > > > >> > really a solution. >> > > > > >> > >> > > > > >> > >> > > > > >> > > >> > > > > >> > > On Mon, Oct 13, 2014 at 4:02 PM, Martin Grigorov < >> > > > > >> mgrigo...@apache.org> >> > > > > >> > > wrote: >> > > > > >> > > >> > > > > >> > > > https://issues.apache.org/jira/browse/WICKET-4321 >> > > > > >> > > > this is the ticker I meant >> > > > > >> > > > it suggests to restart the rendering completely for the >> > whole >> > > > page >> > > > > >> and >> > > > > >> > > this >> > > > > >> > > > is not enough >> > > > > >> > > > I'll see what kind of changes would be needed to >> accomplish >> > > > this. >> > > > > >> > > > >> > > > > >> > > > Martin Grigorov >> > > > > >> > > > Wicket Training and Consulting >> > > > > >> > > > https://twitter.com/mtgrigorov >> > > > > >> > > > >> > > > > >> > > > On Fri, Oct 10, 2014 at 2:29 PM, Martin Grigorov < >> > > > > >> mgrigo...@apache.org >> > > > > >> > > >> > > > > >> > > > wrote: >> > > > > >> > > > >> > > > > >> > > > > Hi, >> > > > > >> > > > > >> > > > > >> > > > > There is no support for this, even in 7.x. >> > > > > >> > > > > I remember Carl-Eric Menzel asking for the same >> > > functionality >> > > > > >> before >> > > > > >> > > ... >> > > > > >> > > > > Behavior#onException() sounds like something similar >> but >> > > there >> > > > > is >> > > > > >> no >> > > > > >> > > way >> > > > > >> > > > > to suppress the bubbling of the exception at the >> moment. >> > > > > >> > > > > The bigger problem is that the rendering can fail in >> the >> > > > middle, >> > > > > >> i.e. >> > > > > >> > > the >> > > > > >> > > > > component can have written some response already and >> then >> > > > fail. >> > > > > If >> > > > > >> > the >> > > > > >> > > > > written response is proper HTML then it is OKish. But >> if >> > > some >> > > > > tag >> > > > > >> is >> > > > > >> > > not >> > > > > >> > > > > closed then the rendering of the complete page may >> fail. >> > > > > >> > > > > So if we try to add this functionality we will have to >> use >> > > > > >> temporary >> > > > > >> > > > > Response objects for the rendering of each component >> to be >> > > > able >> > > > > to >> > > > > >> > > throw >> > > > > >> > > > > away whatever it has produced before failing. >> > > > > >> > > > > >> > > > > >> > > > > Usually the problem is related to the component's >> model. A >> > > > > >> workaround >> > > > > >> > > for >> > > > > >> > > > > you could be to use a wrapper Model that returns "empty >> > > data" >> > > > > when >> > > > > >> > the >> > > > > >> > > > > underlying model throws an exception. >> > > > > >> > > > > >> > > > > >> > > > > Martin Grigorov >> > > > > >> > > > > Wicket Training and Consulting >> > > > > >> > > > > https://twitter.com/mtgrigorov >> > > > > >> > > > > >> > > > > >> > > > > On Fri, Oct 10, 2014 at 12:59 PM, Ernesto Reinaldo >> > Barreiro >> > > < >> > > > > >> > > > > reier...@gmail.com> wrote: >> > > > > >> > > > > >> > > > > >> > > > >> Hi, >> > > > > >> > > > >> >> > > > > >> > > > >> On Fri, Oct 10, 2014 at 11:50 AM, Tobias Gierke < >> > > > > >> > > > >> tobias.gie...@voipfuture.com> wrote: >> > > > > >> > > > >> >> > > > > >> > > > >> > Hi, >> > > > > >> > > > >> > >> > > > > >> > > > >> >> Wouldn't it be possible to "embed" the failing >> prone >> > > > > porlets >> > > > > >> > > inside >> > > > > >> > > > >> >> iframes so that each one is a Wicket page? >> > > > > >> > > > >> >> >> > > > > >> > > > >> > I already thought about this but the page uses >> quite a >> > > lot >> > > > of >> > > > > >> > fancy >> > > > > >> > > > >> > CSS/Ajax/Javascript (portlets are rendered in a grid >> > with >> > > > > >> > > configurable >> > > > > >> > > > >> > row/column count, drag'n'drop to move them around >> etc.) >> > > and >> > > > > I'd >> > > > > >> > > rather >> > > > > >> > > > >> not >> > > > > >> > > > >> > touch the existing code if there's a Java-side only >> > > > solution >> > > > > >> ;-) >> > > > > >> > > > >> > >> > > > > >> > > > >> >> > > > > >> > > > >> I do not know of any :-( >> > > > > >> > > > >> >> > > > > >> > > > >> Another possibility is build each client entirely on >> > > > JavaScript >> > > > > >> and >> > > > > >> > > use >> > > > > >> > > > >> Wicket just as a service layer... not very Wicket like >> > but >> > > > you >> > > > > >> would >> > > > > >> > > not >> > > > > >> > > > >> have this problem. >> > > > > >> > > > >> >> > > > > >> > > > >> >> > > > > >> > > > >> > >> > > > > >> > > > >> > Cheers, >> > > > > >> > > > >> > Tobias >> > > > > >> > > > >> > >> > > > > >> > > > >> > >> > > > > >> > > > >> >> On Fri, Oct 10, 2014 at 11:12 AM, Tobias Gierke < >> > > > > >> > > > >> >> tobias.gie...@voipfuture.com> wrote: >> > > > > >> > > > >> >> >> > > > > >> > > > >> >> Hi, >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> In our web application we have a dashboard-like >> > > homepage >> > > > > that >> > > > > >> > > > >> displays a >> > > > > >> > > > >> >>> number of user-configurable 'portlets' (which are >> > > really >> > > > > just >> > > > > >> > > > ordinary >> > > > > >> > > > >> >>> Wicket components and have nothing to do with the >> > > Portlet >> > > > > >> spec). >> > > > > >> > > I'm >> > > > > >> > > > >> >>> looking for a way of preventing the application >> from >> > > > > becoming >> > > > > >> > > > >> unusable in >> > > > > >> > > > >> >>> case one or more of these portlets continuously >> fail >> > to >> > > > > >> render >> > > > > >> > > > >> because of >> > > > > >> > > > >> >>> some internal error/bug. >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> We're currently using a custom >> RequestCycleListener >> > > with >> > > > > the >> > > > > >> > > > >> >>> onException() >> > > > > >> > > > >> >>> method redirecting to a generic error page, thus >> when >> > > > > >> rendering >> > > > > >> > > of a >> > > > > >> > > > >> >>> 'portlet' fails the user will never get to see the >> > > > homepage >> > > > > >> and >> > > > > >> > > > always >> > > > > >> > > > >> >>> end >> > > > > >> > > > >> >>> up on the error page - which is obviously not >> really >> > > > > >> desirable. >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> Is there a way to to hook into Wicket's rendering >> > cycle >> > > > so >> > > > > >> that >> > > > > >> > I >> > > > > >> > > > can >> > > > > >> > > > >> >>> provide some default markup in case rendering of a >> > > > > component >> > > > > >> > > > (subtree) >> > > > > >> > > > >> >>> fails with a RuntimeException ? >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> I understand that this maybe be very tricky since >> the >> > > > > >> component >> > > > > >> > > > >> subtree >> > > > > >> > > > >> >>> might've rendered partially and thus internal >> state >> > > will >> > > > be >> > > > > >> > > > >> inconsistent. >> > > > > >> > > > >> >>> It would probably require serializing the initial >> > state >> > > > of >> > > > > >> the >> > > > > >> > > > >> component >> > > > > >> > > > >> >>> (subtree) before rendering starts and reverting >> the >> > > > wholle >> > > > > >> > subtree >> > > > > >> > > > to >> > > > > >> > > > >> its >> > > > > >> > > > >> >>> initial state once a RuntimeException is thrown. >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> We're running Wicket 1.5.12. >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> Thanks in advance, >> > > > > >> > > > >> >>> Tobias >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> -- >> > > > > >> > > > >> >>> Tobias Gierke >> > > > > >> > > > >> >>> Development >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> VOIPFUTURE GmbH Wendenstraße 4 20097 Hamburg, >> > > > Germany >> > > > > >> > > > >> >>> Phone +49 40 688 900 164 Fax +49 40 688 900 199 >> > > > > >> > > > >> >>> Email tobias.gie...@voipfuture.com Web >> > > > > >> > > http://www.voipfuture.com >> > > > > >> > > > >> >>> CEO Jan Bastian >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> Commercial Court AG Hamburg HRB 109896, VAT ID >> > > > > DE263738086 >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> >> > > > > >> > > > >> > > > > >> >> > > --------------------------------------------------------------------- >> > > > > >> > > > >> >>> To unsubscribe, e-mail: >> > > > > users-unsubscr...@wicket.apache.org >> > > > > >> > > > >> >>> For additional commands, e-mail: >> > > > > >> users-h...@wicket.apache.org >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >>> >> > > > > >> > > > >> >> >> > > > > >> > > > >> > >> > > > > >> > > > >> > >> > > > > >> > > >> > > > > >> --------------------------------------------------------------------- >> > > > > >> > > > >> > To unsubscribe, e-mail: >> > > > users-unsubscr...@wicket.apache.org >> > > > > >> > > > >> > For additional commands, e-mail: >> > > > > users-h...@wicket.apache.org >> > > > > >> > > > >> > >> > > > > >> > > > >> > >> > > > > >> > > > >> >> > > > > >> > > > >> >> > > > > >> > > > >> -- >> > > > > >> > > > >> Regards - Ernesto Reinaldo Barreiro >> > > > > >> > > > >> >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > >> > > > > >> > > >> > > > > >> > > >> > > > > >> > > >> > > > > >> > > -- >> > > > > >> > > Regards - Ernesto Reinaldo Barreiro >> > > > > >> > > >> > > > > >> > >> > > > > >> >> > > > > >> >> > > > > >> >> > > > > >> -- >> > > > > >> Regards - Ernesto Reinaldo Barreiro >> > > > > >> >> > > > > > >> > > > > > >> > > > > >> > > > >> > > > >> > > > >> > > > -- >> > > > Regards - Ernesto Reinaldo Barreiro >> > > > >> > > >> > >> > >> > >> > -- >> > Regards - Ernesto Reinaldo Barreiro >> > >> > > > > -- > Regards - Ernesto Reinaldo Barreiro > -- Regards - Ernesto Reinaldo Barreiro