Hi Sven, On Wed, Oct 28, 2015 at 10:02 PM, <[email protected]> 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 <[email protected]> > Authored: Wed Oct 28 20:59:28 2015 +0100 > Committer: Sven Meier <[email protected]> > 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 > */ > >
