GUI -- Enhanced DefaultCellComparator to utilize Comparable implementation if available on the objects being compared, defaulting to string comparison otherwise.
- Deleted obsolete comparators.

Change-Id: Ifeb74c05f73bd974d1afb3dc27527a5c7ad1bc12
diff --git a/core/api/src/test/java/org/onosproject/ui/table/TableModelTest.java b/core/api/src/test/java/org/onosproject/ui/table/TableModelTest.java
index 7e3c651..77326ce 100644
--- a/core/api/src/test/java/org/onosproject/ui/table/TableModelTest.java
+++ b/core/api/src/test/java/org/onosproject/ui/table/TableModelTest.java
@@ -20,7 +20,6 @@
 import org.onosproject.ui.table.TableModel.SortDir;
 import org.onosproject.ui.table.cell.DefaultCellFormatter;
 import org.onosproject.ui.table.cell.HexFormatter;
-import org.onosproject.ui.table.cell.IntComparator;
 
 import static org.junit.Assert.*;
 
@@ -35,6 +34,10 @@
     private static final String BAR = "bar";
     private static final String ZOO = "zoo";
 
+    private enum StarWars {
+        LUKE_SKYWALKER, LEIA_ORGANA, HAN_SOLO, C3PO, R2D2, JABBA_THE_HUTT
+    }
+
     private static class ParenFormatter implements CellFormatter {
         @Override
         public String format(Object value) {
@@ -220,9 +223,6 @@
     public void tableNumberSort() {
         initUnsortedTable();
 
-        // first, tell the table to use an integer-based comparator
-        tm.setComparator(BAR, IntComparator.INSTANCE);
-
         // sort by number
         tm.sort(BAR, SortDir.ASC);
 
@@ -251,8 +251,7 @@
     public void sortAndFormat() {
         initUnsortedTable();
 
-        // set integer-based comparator and hex formatter
-        tm.setComparator(BAR, IntComparator.INSTANCE);
+        // set hex formatter
         tm.setFormatter(BAR, HexFormatter.INSTANCE);
 
         // sort by number
@@ -320,4 +319,26 @@
         assertEquals("null sort dir", SortDir.ASC, TableModel.sortDir(null));
     }
 
+
+    @Test
+    public void enumSort() {
+        tm = new TableModel(FOO);
+        tm.addRow().cell(FOO, StarWars.HAN_SOLO);
+        tm.addRow().cell(FOO, StarWars.C3PO);
+        tm.addRow().cell(FOO, StarWars.JABBA_THE_HUTT);
+        tm.addRow().cell(FOO, StarWars.LEIA_ORGANA);
+        tm.addRow().cell(FOO, StarWars.R2D2);
+        tm.addRow().cell(FOO, StarWars.LUKE_SKYWALKER);
+
+        tm.sort(FOO, SortDir.ASC);
+
+        // verify expected results
+        StarWars[] ordered = StarWars.values();
+        TableModel.Row[] rows = tm.getRows();
+        assertEquals("wrong length?", ordered.length, rows.length);
+        int nr = rows.length;
+        for (int i = 0; i < nr; i++) {
+            assertEquals(UNEX_SORT + i, ordered[i], rows[i].get(FOO));
+        }
+    }
 }