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 ? > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> > > > > > >