I have made the changes in Wicket Bootstrap and all seems to be fine!

Martin Grigorov
Freelancer. Available for hire!
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Fri, Jul 10, 2015 at 10:53 AM, Sebastien <seb...@gmail.com> wrote:

> Hi Martin,
>
> On Fri, Jul 10, 2015 at 8:35 AM, Martin Grigorov <mgrigo...@apache.org>
> wrote:
>
> > On Fri, Jul 10, 2015 at 1:27 AM, Sven Meier <s...@meiers.net> wrote:
> >
> > > Yes, an overriden method with ART parameter will be something to be
> > > migrated :/.
> > >
> > > > We can try though!
> > >
> > > I've greped the Wicket's souce code once again, and only on*()- and
> > > respond()-methods kept their ART.
> > > All other 'active' methods (e.g. ModalWindow#close()) take a
> > > IPartialPageRequestHandler now.
> > >
> >
> > I've missed that ModalWindow#close() is changed too.
> > I'll do a grep as well.
> >
> > Since this change is done for Wicket then it should be done for other
> more
> > important UI libraries like Wicket jQuery UI, Wicket Bootstrap and
> > WicketStuff Foundation.
> > I suggest to postpone the release of Wicket 7.0.0 with few weeks until we
> > make the changes and test them for few days.
> > WDYT?
> >
>
> +1, would be a wise decision...
>
>
> >
> >
> > >
> > > If it helps, I could create a pull-request for the relevant methods in
> > > wicket-jquery-ui.
> > >
> > > Sven
> > >
> > >
> > >
> > > On 09.07.2015 22:32, Martin Grigorov wrote:
> > >
> > >> On Thu, Jul 9, 2015 at 9:23 PM, Sven Meier <s...@meiers.net> wrote:
> > >>
> > >>  Ok. you're partially right :/
> > >>>
> > >>>  The compilation error would happen if an application extends
> > ModalWindow
> > >> and overrides #close(AjaxRequestTarget) method to do some extra
> tasks. I
> > >> have such code for Wicket Bootstrap's Modal component in one of my
> > >> applications.
> > >>
> > >>
> > >>  #close(AjaxRequestTarget) to #close(IPartialPageRequestHandler)
> > >>>>
> > >>> Every application has to be recompiled as the method argument type
> has
> > >>> changed. But there won't be any compilation error.
> > >>> But for a migration to Wicket 7 each application will have to be
> > >>> recompiled anyway.
> > >>>
> > >>
> > >> The problem is that we probably won't find and change all possible
> > >> candidates for this change. And once 7.0.0 is out it will be too late.
> > We
> > >> can try though!
> > >>
> > >>
> > >>
> > >>> Sven
> > >>>
> > >>>
> > >>>
> > >>> On 09.07.2015 20:11, Sven Meier wrote:
> > >>>
> > >>>  Hi Martin,
> > >>>>
> > >>>>  This is what I meant as too disruptive change. If we change the
> type
> > of
> > >>>>>
> > >>>> the parameter from ART
> > >>>>
> > >>>>> to IPPRH then every application that uses ModalWindow will have to
> > fix
> > >>>>>
> > >>>> the compilation error.
> > >>>>
> > >>>> but ART *is* an IPPRH, so there will be no compilation error.
> > >>>>
> > >>>>   If we broaden the API from #close(AjaxRequestTarget) to
> > >>>>
> > >>>>> #close(IPartialPageRequestHandler) then this will be an API break.
> > >>>>> Every application will both at compile time and runtime.
> > >>>>>
> > >>>>>  Nope, see above.
> > >>>>
> > >>>> Regards
> > >>>> Sven
> > >>>>
> > >>>> On 09.07.2015 16:35, Martin Grigorov wrote:
> > >>>>
> > >>>>  Hi Sven,
> > >>>>>
> > >>>>> On Thu, Jul 9, 2015 at 4:31 PM, Sven Meier <s...@meiers.net>
> wrote:
> > >>>>>
> > >>>>>   Hi,
> > >>>>>
> > >>>>>> I've just changed all relevant places in Wicket from
> > AjaxRequestTarget
> > >>>>>> to
> > >>>>>> IPartialPageRequestHandler.
> > >>>>>>
> > >>>>>> I don't think this change is too disruptive:
> > >>>>>>
> > >>>>>>  - client code can still call the existing methods with an ART,
> e.g.
> > >>>>>
> > >>>>>  modalWindow.close(ajaxRequestTarget)
> > >>>>>>
> > >>>>>>   What Maxim wanted as changes in Wicket jQuery UI are actually
> > >>>>>> changes
> > >>>>>>
> > >>>>> exactly like ModalWindow#close().
> > >>>>> He needs to be able to close jQuery UI dialogs (non-modal window)
> > from
> > >>>>> WebSocket response.
> > >>>>> This is what I meant as too disruptive change. If we change the
> type
> > of
> > >>>>> the
> > >>>>> parameter from ART to IPPRH then every application that uses
> > >>>>> ModalWindow
> > >>>>> will have to fix the compilation error.
> > >>>>>
> > >>>>>
> > >>>>>   - all places needing an ART remain unchanged, e.g.
> > >>>>>
> > >>>>>>       AjaxLink#onClick(AjaxRequestTarget)
> > >>>>>>
> > >>>>>>   It is not possible to click a link with WebSocket request so
> this
> > is
> > >>>>>>
> > >>>>> OK.
> > >>>>> The application developer can roll WebSocketLink if something like
> > this
> > >>>>> is
> > >>>>> needed.
> > >>>>>
> > >>>>>
> > >>>>>   - a dozen Wicket components had to be changed to cooperate with
> > >>>>>
> > >>>>>> IPartialPageRequestHandler instead of just ART:
> > >>>>>>       find(IPartialPageRequestHandler.class)
> > >>>>>>
> > >>>>>>   Those are good changes!
> > >>>>>>
> > >>>>>
> > >>>>>   If we identify other methods later, we can still broaden their
> > >>>>> signature
> > >>>>>
> > >>>>>> to use IPartialPageRequestHandler
> > >>>>>> without breaking the API.
> > >>>>>>
> > >>>>>>  No. If we broaden the API from #close(AjaxRequestTarget) to
> > >>>>> #close(IPartialPageRequestHandler) then this will be an API break.
> > >>>>> Every application will both at compile time and runtime.
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>     we are very (very) close to release 7.0.0, that's why I am a
> > little
> > >>>>>> bit
> > >>>>>>
> > >>>>>>  concerned
> > >>>>>>>
> > >>>>>>>   So am I, but for now I think it's simpler to go one step
> further
> > >>>>>>>
> > >>>>>> instead
> > >>>>>> of 2 steps back.
> > >>>>>>
> > >>>>>>   IMO, it is OK-ish to change APIs in Wicket jQuery UI (Sebastien
> > does
> > >>>>>>
> > >>>>> this
> > >>>>> from time to time).
> > >>>>> Even if we decide to not break the API of some component then as I
> > >>>>> suggested it should be possible to create an adapter from IPPRH to
> > ART:
> > >>>>>
> > >>>>> MyComponent.java:
> > >>>>>
> > >>>>> add(new WebSocketBehavior() {
> > >>>>> protected void onPush(WebSocketRequestHandler handler,
> > >>>>> IWebSocketPushMessage message)
> > >>>>>       {
> > >>>>>          AjaxRequestTarget target =
> > >>>>>
> > >>>>>
> >
> WebApplication.get().getAjaxRequestTargetProvider().get(handler.getPage());
> > >>>>>
> > >>>>>          modalWindow.close(target);
> > >>>>>       }
> > >>>>> });
> > >>>>>
> > >>>>>
> > >>>>>   Regards
> > >>>>>
> > >>>>>> Sven
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> On 09.07.2015 00:31, Sebastien wrote:
> > >>>>>>
> > >>>>>>   Hi Sven,
> > >>>>>>
> > >>>>>>>
> > >>>>>>>    But it seems in wicket-jquery-ui there are more methods of
> this
> > >>>>>>> kind?
> > >>>>>>>
> > >>>>>>>     True, about 85 methods (taking an ART without starting with
> > >>>>>>>>
> > >>>>>>>>  "on"-prefix).
> > >>>>>>> In these, I should identify the ones that should be changed (like
> > >>>>>>> #open,
> > >>>>>>> #close, #show, #hide, #refresh, etc), the others, plus 2 calls to
> > >>>>>>> #find(ART.class) to be taken into account...
> > >>>>>>> This is a new change since -M6 and we are very (very) close to
> > >>>>>>> release
> > >>>>>>> 7.0.0, that's why I am a little bit concerned (did I wrote
> > "worried"
> > >>>>>>> previously? ;)). I hope I/we do not miss/forget something here...
> > >>>>>>>
> > >>>>>>> Thanks & best regards,
> > >>>>>>> Sebastien.
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > ---------------------------------------------------------------------
> > >>>>>>>
> > >>>>>> 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