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

Reply via email to