Skip to content

Commit

Permalink
ISIS-1493: changed the way reversing order applies for null values
Browse files Browse the repository at this point in the history
  • Loading branch information
Erik de Hair committed Sep 21, 2016
1 parent 019b692 commit f36c342
Showing 1 changed file with 14 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,10 @@

package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable;

import java.util.Iterator;
import java.util.List;

import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Ordering;

import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
import org.apache.wicket.model.IModel;

import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
Expand All @@ -44,6 +35,13 @@
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
import org.apache.wicket.model.IModel;

import java.util.Iterator;
import java.util.List;

/**
* Part of the {@link AjaxFallbackDefaultDataTable} API.
Expand Down Expand Up @@ -160,14 +158,16 @@ private static Ordering<ObjectAdapter> orderingBy(final ObjectAssociation sortPr
public int compare(final ObjectAdapter p, final ObjectAdapter q) {
final ObjectAdapter pSort = sortProperty.get(p, InteractionInitiatedBy.FRAMEWORK);
final ObjectAdapter qSort = sortProperty.get(q, InteractionInitiatedBy.FRAMEWORK);
Ordering<ObjectAdapter> naturalOrdering =
ascending
? ORDERING_BY_NATURAL.nullsFirst()
: ORDERING_BY_NATURAL.nullsLast();
Ordering<ObjectAdapter> naturalOrdering;
if(ascending){
naturalOrdering = ORDERING_BY_NATURAL.nullsFirst();
} else {
naturalOrdering = ORDERING_BY_NATURAL.reverse().nullsLast();
}
return naturalOrdering.compare(pSort, qSort);
}
};
return ascending?ordering:ordering.reverse();
return ordering;
}

private static Ordering<ObjectAdapter> ORDERING_BY_NATURAL = new Ordering<ObjectAdapter>(){
Expand Down

0 comments on commit f36c342

Please sign in to comment.