]> source.dussan.org Git - vaadin-framework.git/commitdiff
Added Table.setSortEnabled and deprecated setSortDisabled (#9021)
authorArtur Signell <artur@vaadin.com>
Mon, 25 Jun 2012 16:04:56 +0000 (19:04 +0300)
committerArtur Signell <artur@vaadin.com>
Mon, 25 Jun 2012 16:05:40 +0000 (19:05 +0300)
src/com/vaadin/ui/Table.java
tests/testbench/com/vaadin/tests/components/beanitemcontainer/BeanItemContainerNullValues.java
tests/testbench/com/vaadin/tests/components/table/HeaderClick.java
tests/testbench/com/vaadin/tests/components/table/HeaderFooterClickLeftRightMiddle.java

index b74de7e180020c613c09a6cabf349ee6af3d5807..a1cc4f95fe4653f901469adc3e554fdbdc54eaf2 100644 (file)
@@ -476,10 +476,9 @@ public class Table extends AbstractSelect implements Action.Container,
     private Object sortContainerPropertyId = null;
 
     /**
-     * Is table sorting disabled alltogether; even if some of the properties
-     * would be sortable.
+     * Is table sorting by the user enabled.
      */
-    private boolean sortDisabled = false;
+    private boolean sortEnabled = true;
 
     /**
      * Number of rows explicitly requested by the client to be painted on next
@@ -2589,7 +2588,7 @@ public class Table extends AbstractSelect implements Action.Container,
             clientNeedsContentRefresh = true;
         }
 
-        if (!sortDisabled) {
+        if (isSortEnabled()) {
             // Sorting
             boolean doSort = false;
             if (variables.containsKey("sortcolumn")) {
@@ -4323,16 +4322,21 @@ public class Table extends AbstractSelect implements Action.Container,
 
     /**
      * Gets the container property IDs, which can be used to sort the item.
+     * <p>
+     * Note that the {@link #isSortEnabled()} state affects what this method
+     * returns. Disabling sorting causes this method to always return an empty
+     * collection.
+     * </p>
      * 
      * @see com.vaadin.data.Container.Sortable#getSortableContainerPropertyIds()
      */
 
     public Collection<?> getSortableContainerPropertyIds() {
         final Container c = getContainerDataSource();
-        if (c instanceof Container.Sortable && !isSortDisabled()) {
+        if (c instanceof Container.Sortable && isSortEnabled()) {
             return ((Container.Sortable) c).getSortableContainerPropertyIds();
         } else {
-            return new LinkedList<Object>();
+            return Collections.EMPTY_LIST;
         }
     }
 
@@ -4423,23 +4427,47 @@ public class Table extends AbstractSelect implements Action.Container,
      * would support this.
      * 
      * @return True iff sorting is disabled.
+     * @deprecated Use {@link #isSortEnabled()} instead
      */
+    @Deprecated
     public boolean isSortDisabled() {
-        return sortDisabled;
+        return !isSortEnabled();
     }
 
     /**
-     * Disables the sorting altogether.
+     * Checks if sorting is enabled.
      * 
-     * To disable sorting altogether, set to true. In this case no sortable
-     * columns are given even in the case where datasource would support this.
+     * @return true if sorting by the user is allowed, false otherwise
+     */
+    public boolean isSortEnabled() {
+        return sortEnabled;
+    }
+
+    /**
+     * Disables the sorting by the user altogether.
      * 
      * @param sortDisabled
      *            True iff sorting is disabled.
+     * @deprecated Use {@link #setSortEnabled(boolean)} instead
      */
+    @Deprecated
     public void setSortDisabled(boolean sortDisabled) {
-        if (this.sortDisabled != sortDisabled) {
-            this.sortDisabled = sortDisabled;
+        setSortEnabled(!sortDisabled);
+    }
+
+    /**
+     * Enables or disables sorting.
+     * <p>
+     * Setting this to false disallows sorting by the user. It is still possible
+     * to call {@link #sort()}.
+     * </p>
+     * 
+     * @param sortEnabled
+     *            true to allow the user to sort the table, false to disallow it
+     */
+    public void setSortEnabled(boolean sortEnabled) {
+        if (this.sortEnabled != sortEnabled) {
+            this.sortEnabled = sortEnabled;
             requestRepaint();
         }
     }
index 9045d1894080b21026388b1f93929a08acc34363..f613a8b14ff5c10028457f89e62c7bef577c31c1 100644 (file)
@@ -30,11 +30,11 @@ public class BeanItemContainerNullValues extends TestBase {
         Button b = new Button("Disable sorting", new Button.ClickListener() {
 
             public void buttonClick(ClickEvent event) {
-                table.setSortDisabled(!table.isSortDisabled());
-                if (table.isSortDisabled()) {
-                    event.getButton().setCaption("Enable sorting");
-                } else {
+                table.setSortEnabled(!table.isSortEnabled());
+                if (table.isSortEnabled()) {
                     event.getButton().setCaption("Disable sorting");
+                } else {
+                    event.getButton().setCaption("Enable sorting");
                 }
             }
 
index 970618374e5e65a8760097a82e5c83cd9f5495f1..d5debcfe16c8c6c07cfe946e03be8bcdb58a51d2 100644 (file)
@@ -45,7 +45,7 @@ public class HeaderClick extends TestBase {
 
         CheckBox sortEnabledCheckbox = new CheckBox("Sortable");
         sortEnabledCheckbox.setImmediate(true);
-        sortEnabledCheckbox.setValue(!table.isSortDisabled());
+        sortEnabledCheckbox.setValue(table.isSortEnabled());
         sortEnabledCheckbox.addListener(new Property.ValueChangeListener() {
 
             public void valueChange(ValueChangeEvent event) {
index 091891043fe02a2ff10dbfd1c5cc6080485502cf..cd54e21395eb08f99842d0dd3d572100516591b2 100644 (file)
@@ -93,10 +93,10 @@ public class HeaderFooterClickLeftRightMiddle extends TestBase {
 
         CheckBox sortEnabledCheckbox = new CheckBox("Sortable");
         sortEnabledCheckbox.setImmediate(true);
-        sortEnabledCheckbox.setValue(!table.isSortDisabled());
+        sortEnabledCheckbox.setValue(table.isSortEnabled());
         sortEnabledCheckbox.addListener(new ValueChangeListener() {
             public void valueChange(ValueChangeEvent event) {
-                table.setSortDisabled(!(Boolean) event.getProperty().getValue());
+                table.setSortEnabled((Boolean) event.getProperty().getValue());
             }
         });