Hi Sven,

yes it was something else in the hierarchy - many thanks for the help.

On Mon, Nov 16, 2015 at 8:52 PM, Martin Grigorov <mgrigo...@apache.org>
wrote:

> OK, I see.
> You are right!
>
>
> On Mon, Nov 16, 2015 at 9:48 PM, Sven Meier <s...@meiers.net> wrote:
>
> > Hi Martin,
> >
> > to my knowledge the usual pattern is to override #onConfigure() and set
> up
> > the visibility and enabling of the component for the next rendering *and*
> > the following 'ACTION phase':
> >
> >
> >
> http://wicketinaction.com/2011/11/implement-wicket-component-visibility-changes-properly/
> >
> > Usually I don't see any need to override #canCallListenerInterface(),
> > except in very special cases. I would not advice to override it
> > lightheartedly.
> >
> > From Wayne's description I deduced that he used the 'old' pattern to
> > override #isVisible(), which leads to
> ListenerInvocationNotAllowedException
> > if the condition for visibility and/or enabling changes between rendering
> > and the next incoming request.
> >
> > Regards
> > Sven
> >
> >
> >
> > On 16.11.2015 21:38, Martin Grigorov wrote:
> >
> >> Hi Sven,
> >>
> >> What I'm saying is that Wicket uses Component#canCallListenerInterface()
> >> to
> >> decide whether the listener interface method could be executed or not.
> >> See
> >>
> >>
> https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/RequestListenerInterface.java#L207
> >>
> >> So overriding #onConfigure() won't help him because #onConfigure() is
> >> called later, after successful #onClick().
> >>
> >> He needs to override #canCallListenerInterface() if he needs to call
> >> onClick even on invisible/disabled component.
> >>
> >> Martin Grigorov
> >> Wicket Training and Consulting
> >> https://twitter.com/mtgrigorov
> >>
> >> On Mon, Nov 16, 2015 at 9:31 PM, Sven Meier <s...@meiers.net> wrote:
> >>
> >> Hi Martin,
> >>>
> >>> I didn't understand your comment.
> >>>
> >>> Do you think Wayne might have overriden #canCallListenerInterface()?
> >>>
> >>> Regards
> >>> Sven
> >>>
> >>>
> >>>
> >>> On 16.11.2015 19:32, Martin Grigorov wrote:
> >>>
> >>> Hi,
> >>>>
> >>>> Actually org.apache.wicket.Component#canCallListenerInterface() is
> >>>> responsible for the ACTION phase.
> >>>> #onConfigure() is called in the RENDER phase, i.e. after onClick().
> >>>>
> >>>> Martin Grigorov
> >>>> Wicket Training and Consulting
> >>>> https://twitter.com/mtgrigorov
> >>>>
> >>>> On Mon, Nov 16, 2015 at 7:27 PM, Sven Meier <s...@meiers.net> wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>>>
> >>>>> this should work.
> >>>>>
> >>>>> Do you have #isVisible() or #isEnabled() overridden in one of the
> >>>>> component's parents?
> >>>>>
> >>>>> Have fun
> >>>>> Sven
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 16.11.2015 18:08, Wayne W wrote:
> >>>>>
> >>>>> Hi Sven,
> >>>>>
> >>>>>>
> >>>>>> I tried overriding :
> >>>>>>
> >>>>>> @Override
> >>>>>>
> >>>>>> protected void onConfigure()
> >>>>>>
> >>>>>> {
> >>>>>>
> >>>>>> setVisible(documentModel.getObject().isLocked());
> >>>>>>
> >>>>>> super.onConfigure();
> >>>>>>
> >>>>>> }
> >>>>>>
> >>>>>>
> >>>>>> and removing the isVisible() override but I still get the same
> >>>>>> exception.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> org.apache.wicket.core.request.handler.ListenerInvocationNotAllowedException:
> >>>>>> Component rejected interface invocationComponent: [Link [Component
> id
> >>>>>> =
> >>>>>> unlock2]] Listener: [RequestListenerInterface name=ILinkListener,
> >>>>>> method=public abstract void
> >>>>>> org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()]
> >>>>>>
> >>>>>> at org.apache.wicket.RequestListenerInterface.invoke(
> >>>>>> RequestListenerInterface.java:212)
> >>>>>>
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(
> >>>>>> ListenerInterfaceRequestHandler.java:243)
> >>>>>>
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(
> >>>>>> ListenerInterfaceRequestHandler.java:236)
> >>>>>>
> >>>>>> at
> >>>>>>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(
> >>>>>> RequestCycle.java:862)
> >>>>>>
> >>>>>> at org.apache.wicket.request.RequestHandlerStack.execute(
> >>>>>> RequestHandlerStack.java:64)
> >>>>>>
> >>>>>> ....
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> any ideas?
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Mon, Nov 16, 2015 at 4:54 PM, Sven Meier <s...@meiers.net>
> wrote:
> >>>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>>
> >>>>>>> Would it be because wicket is checking boolean isVisible() when
> >>>>>>>
> >>>>>>> making this decision? (as we override the links isVisible()
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> indeed.
> >>>>>>>
> >>>>>>> You should override #onConfigure() and call #setVisible() instead
> of
> >>>>>>> overriding #isVisible().
> >>>>>>>
> >>>>>>> Regards
> >>>>>>> Sven
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> On 16.11.2015 16:59, Wayne W wrote:
> >>>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>>
> >>>>>>>> I have a org.apache.wicket.markup.html.link.Link within a page
> this
> >>>>>>>> is
> >>>>>>>> visible only if a certain criteria is met.
> >>>>>>>>
> >>>>>>>> If user A visits this page the changes the criteria the link is
> >>>>>>>> visible.
> >>>>>>>> The user can then click on the link for some other functionality.
> >>>>>>>>
> >>>>>>>> However I'm finding is User B (in a different session) visits the
> >>>>>>>> same
> >>>>>>>> page
> >>>>>>>> and changes the criteria so that the link is no longer visible but
> >>>>>>>> the
> >>>>>>>> user
> >>>>>>>> A still has this page open and user A then clicks on the link
> >>>>>>>> a ListenerInvocationNotAllowedException is thrown which I just
> don't
> >>>>>>>> understand.
> >>>>>>>>
> >>>>>>>> I would get it if user B somehow got the hit the url that
> represents
> >>>>>>>> that
> >>>>>>>> link, but why does this link component in another session throw
> the
> >>>>>>>> exception? Would it be because wicket is checking boolean
> >>>>>>>> isVisible()
> >>>>>>>> when
> >>>>>>>> making this decision? (as we override the links isVisible() to
> show
> >>>>>>>> depending on the criteria.
> >>>>>>>>
> >>>>>>>> thanks
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> ---------------------------------------------------------------------
> >>>>>>>>
> >>>>>>>> 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
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>> ---------------------------------------------------------------------
> >>> 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
> >
> >
>

Reply via email to