Consistency ftw! Martijn
On Thu, Oct 29, 2015 at 8:31 AM, Martin Grigorov <mgrigo...@apache.org> wrote: > Hi Sven, > > On Wed, Oct 28, 2015 at 10:02 PM, <svenme...@apache.org> wrote: > >> Repository: wicket >> Updated Branches: >> refs/heads/wicket-7.x 5a5ae6d73 -> e74fdcf21 >> >> >> WICKET-6013 add css classes to AjaxFallbackOrderByBorder too >> >> >> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo >> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e74fdcf2 >> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e74fdcf2 >> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e74fdcf2 >> >> Branch: refs/heads/wicket-7.x >> Commit: e74fdcf219938fe3b262fdec742a7bc15694c4b6 >> Parents: 5a5ae6d >> Author: Sven Meier <svenme...@apache.org> >> Authored: Wed Oct 28 20:59:28 2015 +0100 >> Committer: Sven Meier <svenme...@apache.org> >> Committed: Wed Oct 28 20:59:28 2015 +0100 >> >> ---------------------------------------------------------------------- >> .../data/sort/AjaxFallbackOrderByBorder.java | 21 ++++++++++++-------- >> 1 file changed, 13 insertions(+), 8 deletions(-) >> ---------------------------------------------------------------------- >> >> >> >> http://git-wip-us.apache.org/repos/asf/wicket/blob/e74fdcf2/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java >> ---------------------------------------------------------------------- >> diff --git >> a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java >> b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java >> index 7355b23..f38e53c 100644 >> --- >> a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java >> +++ >> b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java >> @@ -20,7 +20,7 @@ import org.apache.wicket.ajax.AjaxRequestTarget; >> import org.apache.wicket.ajax.attributes.IAjaxCallListener; >> import >> org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator; >> import >> org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByBorder; >> -import org.apache.wicket.markup.html.border.Border; >> +import >> org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink; >> >> >> /** >> @@ -35,9 +35,10 @@ import org.apache.wicket.markup.html.border.Border; >> * @author Igor Vaynberg (ivaynberg) >> * >> */ >> -public abstract class AjaxFallbackOrderByBorder<S> extends Border >> +public abstract class AjaxFallbackOrderByBorder<S> extends >> OrderByBorder<S> >> { >> private static final long serialVersionUID = 1L; >> + private IAjaxCallListener ajaxCallListener; >> > > IAjaxCallListener is not Serializable. > AjaxCallListener happens to be Serializable because it inherits > IComponentAwareHeaderContributor, but it is not guaranteed that the > application will use AjaxCallListener. It may use custom IACL. > > >> >> /** >> * Constructor >> @@ -63,9 +64,16 @@ public abstract class AjaxFallbackOrderByBorder<S> >> extends Border >> public AjaxFallbackOrderByBorder(final String id, final S >> sortProperty, >> final ISortStateLocator<S> stateLocator, final >> IAjaxCallListener ajaxCallListener) >> { >> - super(id); >> - AjaxFallbackOrderByLink<S> link = new >> AjaxFallbackOrderByLink<S>("orderByLink", sortProperty, >> - stateLocator, ajaxCallListener) >> + super(id, sortProperty, stateLocator); >> + >> + this.ajaxCallListener = ajaxCallListener; >> + } >> + >> + @Override >> + protected OrderByLink<S> newOrderByLink(String id, S property, >> + ISortStateLocator<S> stateLocator) >> + { >> + return new AjaxFallbackOrderByLink<S>("orderByLink", >> property, stateLocator, ajaxCallListener) >> > > I see that AjaxFallbackOrderByLink uses this IACL field since a long time. > And it was me who migrated this from IAjaxCallDecorator (Wicket 1.5.x) to > IAjaxCallListener (Wicket 6.x)... > IMO this is bad design. Ajax** components should provide "protected void > updateAjaxAttributes(attrs)", e.g. > org.apache.wicket.ajax.markup.html.AjaxLink#updateAjaxAttributes(). > This way the application developer has more control than just being able to > provide custom IACL. > I think we should improve this in 7.x and remove the IACL field in 8.x. > WDYT ? > > >> { >> >> private static final long serialVersionUID = 1L; >> @@ -83,10 +91,7 @@ public abstract class AjaxFallbackOrderByBorder<S> >> extends Border >> >> } >> }; >> - addToBorder(link); >> - link.add(getBodyContainer()); >> } >> - >> /** >> * This method is a hook for subclasses to perform an action after >> sort has changed >> */ >> >> -- Become a Wicket expert, learn from the best: http://wicketinaction.com