Hi Nick,

On Wed, May 22, 2013 at 3:30 PM, Nick Pratt <nbpr...@gmail.com> wrote:

> With regards to the default setting of this value, I think we should follow
> whatever jquery / JS does by default (I dont know whether this is the case
> or not). I think events propagate by default, so any provided components
> that need to alter this behavior should explicitly set (false) for this
> value.
>

We need to prevent the default for AjaxFallback** components because
otherwise both the Ajax and the non-Ajax behaviors will be executed.

We need to stop the propagation of the event by default because otherwise
you may get more than one Ajax calls when you click on a link which is
inside a div which also has listener for 'click' (WICKET-5093).


>
> N
>
>
> On Wed, May 22, 2013 at 7:14 AM, Martin Grigorov <mgrigo...@apache.org
> >wrote:
>
> > On Wed, May 22, 2013 at 1:46 PM, Sven Meier <s...@meiers.net> wrote:
> >
> > > I still think we can change the default value for 'allowDefault' to
> true.
> > >> Can you think of a bad scenario when this will break ?
> > >>
> > >
> > > I'm not sure, but it will surely break somewhere.
> > >
> > > For 6.x I'd just restore AjaxFormValidatingBehavior's functionality
> with
> > > allowDefault=true iff a throttle is given. This could be done in
> 6.9.0, a
> > > workaround for 6.8.0 exists by copying the #addToAllFormComponents()
> > method.
> > >
> > > All developers using throttlingSettings in their own behaviors will
> have
> > > to set allowDefault=true for themselves to restore the old behavior.
> > >
> > > For 7.0.0 we could rename the setting to "preventDefault" (as in
> jquery)
> > > with "false" as default value.
> > >
> >
> > There was a reason why I named it 'allowDefault' but I don't remember it
> > now.
> > I'll make a ticket for 7.0.0
> >
> >
> > >
> > > Sven
> > >
> > >
> > >
> > >
> > > On 05/22/2013 12:30 PM, Martin Grigorov wrote:
> > >
> > >> Ouch!
> > >> You are correct!
> > >> It is the same behavior in 6.7.0 and 6.6.0.
> > >> So, I agree that there is no need of 6.8.1.
> > >>
> > >>
> > >> I still think we can change the default value for 'allowDefault' to
> > true.
> > >> Can you think of a bad scenario when this will break ?
> > >> Since there are no user complaints I'm not keen to do the change
> neither
> > >> in
> > >> 6.x nor in 7.0.0 but I think the change is a good improvement.
> > >>
> > >>
> > >> On Wed, May 22, 2013 at 1:11 PM, Sven Meier <s...@meiers.net> wrote:
> > >>
> > >>  It's been that way ever since:
> > >>>
> > >>> "keydown" with allowDefault=false -> not character input
> > >>>
> > >>> Sven
> > >>>
> > >>>
> > >>> On 05/22/2013 12:07 PM, Martin Grigorov wrote:
> > >>>
> > >>>  The quickstart in the ticket is very simple, there is no usage of
> > >>>> throttling.
> > >>>> It's just:
> > >>>>
> > >>>> textField.add(new AjaxEventBehavior("keydown") {
> > >>>>    @Override
> > >>>> protected void onEvent(AjaxRequestTarget target) {
> > >>>> System.err.println("event");
> > >>>>    }
> > >>>> });
> > >>>>
> > >>>> Without explicitly allowing the default behavior the user cannot
> > enter a
> > >>>> single character in the <input type=text>.
> > >>>>
> > >>>>
> > >>>> On Wed, May 22, 2013 at 1:01 PM, Sven Meier <s...@meiers.net>
> wrote:
> > >>>>
> > >>>>   AFAICS this is a problem only for behaviors which are throttled.
> > >>>>
> > >>>>> AjaxFormValidatingBehavior is the only one in Wicket, we can simple
> > set
> > >>>>> allowDefault=true for that one. And I don't think this is so urgent
> > to
> > >>>>> require a 6.8.1 release.
> > >>>>>
> > >>>>> Anyone else using ThrottlingSettings can easily set
> allowDefault=true
> > >>>>> in
> > >>>>> their own behavior.
> > >>>>>
> > >>>>> Changing the default for allowDefault might break many other places
> > in
> > >>>>> user's code :(.
> > >>>>>
> > >>>>> Sven
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> On 05/22/2013 09:04 AM, Martin Grigorov wrote:
> > >>>>>
> > >>>>>   Hi,
> > >>>>>
> > >>>>>> I think we need 6.8.1 because of the problem in
> > >>>>>> https://issues.apache.org/******jira/browse/WICKET-5194<
> > https://issues.apache.org/****jira/browse/WICKET-5194>
> > >>>>>> <https:**//issues.apache.org/**jira/**browse/WICKET-5194<
> > https://issues.apache.org/**jira/browse/WICKET-5194>
> > >>>>>> >
> > >>>>>> <https:**//issues.apache.org/**jira/**browse/WICKET-5194<
> > http://issues.apache.org/jira/**browse/WICKET-5194>
> > >>>>>> <http**s://issues.apache.org/jira/**browse/WICKET-5194<
> > https://issues.apache.org/jira/browse/WICKET-5194>
> > >>>>>> >
> > >>>>>>
> > >>>>>> .
> > >>>>>> The quickstart shows that textField.add(new
> > >>>>>> AjaxEventBehavior("keydown"))
> > >>>>>> doesn't work because the event' default behavior is prevented.
> > >>>>>>
> > >>>>>> org.apache.wicket.ajax.******attributes.******
> > >>>>>> AjaxRequestAttributes#**
> > >>>>>>
> > >>>>>>
> > >>>>>> allowDefault
> > >>>>>> default value was 'false' since 6.0.0 but it seems it was not used
> > at
> > >>>>>> all
> > >>>>>> in many cases before the changes in WICKET-5093:
> > >>>>>>
> > >>>>>> https://git-wip-us.apache.org/******repos/asf/wicket/repo?p=**<
> > https://git-wip-us.apache.org/****repos/asf/wicket/repo?p=**>
> > >>>>>> **<https://git-wip-us.apache.
> **org/**repos/asf/wicket/repo?p=****<
> > https://git-wip-us.apache.org/**repos/asf/wicket/repo?p=**>
> > >>>>>> >
> > >>>>>> wicket.git;a=commitdiff;h=******a11ce8a7e3b575385d8f03db621305****
> > >>>>>> **17a2b80d09<https://git-wip-****us.apache.org/repos/asf/**
> > >>>>>> wicket/repo?p=wicket.git;a=****commitdiff;h=**
> > >>>>>>
> > >>>>>> a11ce8a7e3b575385d8f03db621305****17a2b80d09<https://git-wip-**
> > >>>>>>
> > us.apache.org/repos/asf/**wicket/repo?p=wicket.git;a=**commitdiff;h=*
> > >>>>>> *a11ce8a7e3b575385d8f03db621305**17a2b80d09<
> >
> https://git-wip-us.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=a11ce8a7e3b575385d8f03db62130517a2b80d09
> > >
> > >>>>>> >
> > >>>>>> https://git-wip-us.apache.org/******repos/asf/wicket/repo?p=**<
> > https://git-wip-us.apache.org/****repos/asf/wicket/repo?p=**>
> > >>>>>> **<https://git-wip-us.apache.
> **org/**repos/asf/wicket/repo?p=****<
> > https://git-wip-us.apache.org/**repos/asf/wicket/repo?p=**>
> > >>>>>> >
> > >>>>>> wicket.git;a=commitdiff;h=******6eec04b135a60c31fac7b74b866d9f****
> > >>>>>> **dcc862ef30<https://git-wip-****us.apache.org/repos/asf/**
> > >>>>>> wicket/repo?p=wicket.git;a=****commitdiff;h=**
> > >>>>>>
> > >>>>>> 6eec04b135a60c31fac7b74b866d9f****dcc862ef30<https://git-wip-**
> > >>>>>>
> > us.apache.org/repos/asf/**wicket/repo?p=wicket.git;a=**commitdiff;h=*
> > >>>>>> *6eec04b135a60c31fac7b74b866d9f**dcc862ef30<
> >
> https://git-wip-us.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=6eec04b135a60c31fac7b74b866d9fdcc862ef30
> > >
> > >>>>>> >
> > >>>>>>
> > >>>>>> I suggest to change the default value of 'allowDefault' to 'true'.
> > >>>>>>
> > >>>>>> Do you see any use cases where the value should be 'false' ?
> > >>>>>> The 'false' value was because AjaxFallbackLink should not execute
> it
> > >>>>>> default behavior - following its href location. But here really
> the
> > >>>>>> effective JS event property is 'stopPropagation' which has been
> > >>>>>> extracted
> > >>>>>> to its own property in AjaxRequestAttributes.
> > >>>>>>
> > >>>>>> A workaround is to use:
> > >>>>>>
> > >>>>>> getAjaxRequestTargetListeners(******).add(new AjaxRequestTarget.**
> > >>>>>> AbstractListener()
> > >>>>>> {
> > >>>>>>     @Override
> > >>>>>> public void updateAjaxAttributes(******AjaxRequestAttributes
> > >>>>>> attributes)
> > >>>>>> {
> > >>>>>>     super.updateAjaxAttributes(******attributes);
> > >>>>>>
> > >>>>>> attributes.setAllowDefault(******true);
> > >>>>>>
> > >>>>>>
> > >>>>>> }
> > >>>>>>     });
> > >>>>>>
> > >>>>>> in YourApp#init(). But we cannot ask all users to do this until
> > 6.9.0
> > >>>>>> is
> > >>>>>> released.
> > >>>>>>
> > >>>>>> What do you think ? Should we fix this and release 6.8.1 as soon
> as
> > >>>>>> possible ?
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >
> >
>

Reply via email to