aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/com/vaadin/ui/components/grid/Grid.java
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/com/vaadin/ui/components/grid/Grid.java')
-rw-r--r--server/src/com/vaadin/ui/components/grid/Grid.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/components/grid/Grid.java b/server/src/com/vaadin/ui/components/grid/Grid.java
index 79effadab9..f18ca6045e 100644
--- a/server/src/com/vaadin/ui/components/grid/Grid.java
+++ b/server/src/com/vaadin/ui/components/grid/Grid.java
@@ -1239,8 +1239,15 @@ public class Grid extends AbstractComponent implements SelectionChangeNotifier {
Object[] propertyIds = new Object[items];
boolean[] directions = new boolean[items];
+ String[] columnKeys = new String[items];
+ SortDirection[] stateDirs = new SortDirection[items];
+
for (int i = 0; i < items; ++i) {
SortOrder order = sortOrder.get(i);
+
+ columnKeys[i] = this.columnKeys.key(order.getPropertyId());
+ stateDirs[i] = order.getDirection();
+
propertyIds[i] = order.getPropertyId();
switch (order.getDirection()) {
case ASCENDING:
@@ -1259,6 +1266,9 @@ public class Grid extends AbstractComponent implements SelectionChangeNotifier {
fireEvent(new SortOrderChangeEvent(this, new ArrayList<SortOrder>(
sortOrder)));
+
+ getState().sortColumns = columnKeys;
+ getState(false).sortDirs = stateDirs;
} else {
throw new IllegalStateException(
"Container is not sortable (does not implement Container.Sortable)");