GUI -- refactored all the table views (server side) to use the new TableModel method of data generation.

Change-Id: Ib8a188ad432ff335db6cff1e49e08dbaf039436b
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/PortViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/PortViewMessageHandler.java
index 796207c..a6b5818 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/PortViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/PortViewMessageHandler.java
@@ -24,13 +24,11 @@
 import org.onosproject.net.device.PortStatistics;
 import org.onosproject.ui.RequestHandler;
 import org.onosproject.ui.UiMessageHandler;
-import org.onosproject.ui.table.AbstractTableRow;
+import org.onosproject.ui.table.TableModel;
 import org.onosproject.ui.table.TableRequestHandler;
-import org.onosproject.ui.table.TableRow;
+import org.onosproject.ui.table.cell.LongComparator;
 
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
 
 
 /**
@@ -51,6 +49,11 @@
     private static final String PKT_TX_DRP = "pkt_tx_drp";
     private static final String DURATION = "duration";
 
+    private static final String[] COL_IDS = {
+            ID, PKT_RX, PKT_TX, BYTES_RX, BYTES_TX,
+            PKT_RX_DRP, PKT_TX_DRP, DURATION
+    };
+
     @Override
     protected Collection<RequestHandler> getHandlers() {
         return ImmutableSet.of(new PortDataRequest());
@@ -64,47 +67,44 @@
         }
 
         @Override
-        protected TableRow[] generateTableRows(ObjectNode payload) {
-            String uri = string(payload, "devId");
-            if (Strings.isNullOrEmpty(uri)) {
-                return new TableRow[0];
-            }
-            DeviceId deviceId = DeviceId.deviceId(uri);
-            DeviceService service = get(DeviceService.class);
-            List<TableRow> list = new ArrayList<>();
-            for (PortStatistics stat : service.getPortStatistics(deviceId)) {
-                list.add(new PortTableRow(stat));
-            }
-            return list.toArray(new TableRow[list.size()]);
-        }
-    }
-
-    /**
-     * TableRow implementation for
-     * {@link org.onosproject.net.device.PortStatistics port statistics}.
-     */
-    private static class PortTableRow extends AbstractTableRow {
-
-        private static final String[] COL_IDS = {
-                ID, PKT_RX, PKT_TX, BYTES_RX, BYTES_TX,
-                PKT_RX_DRP, PKT_TX_DRP, DURATION
-        };
-
-        public PortTableRow(PortStatistics stat) {
-            add(ID, Integer.toString(stat.port()));
-            add(PKT_RX, Long.toString(stat.packetsReceived()));
-            add(PKT_TX, Long.toString(stat.packetsSent()));
-            add(BYTES_RX, Long.toString(stat.bytesReceived()));
-            add(BYTES_TX, Long.toString(stat.bytesSent()));
-            add(PKT_RX_DRP, Long.toString(stat.packetsRxDropped()));
-            add(PKT_TX_DRP, Long.toString(stat.packetsTxDropped()));
-            add(DURATION, Long.toString(stat.durationSec()));
+        protected String[] getColumnIds() {
+            return COL_IDS;
         }
 
         @Override
-        protected String[] columnIds() {
-            return COL_IDS;
+        protected TableModel createTableModel() {
+            TableModel tm = super.createTableModel();
+            tm.setComparator(PKT_RX, LongComparator.INSTANCE);
+            tm.setComparator(PKT_TX, LongComparator.INSTANCE);
+            tm.setComparator(BYTES_RX, LongComparator.INSTANCE);
+            tm.setComparator(BYTES_TX, LongComparator.INSTANCE);
+            tm.setComparator(PKT_RX_DRP, LongComparator.INSTANCE);
+            tm.setComparator(PKT_TX_DRP, LongComparator.INSTANCE);
+            tm.setComparator(DURATION, LongComparator.INSTANCE);
+            return tm;
+        }
+
+        @Override
+        protected void populateTable(TableModel tm, ObjectNode payload) {
+            String uri = string(payload, "devId");
+            if (!Strings.isNullOrEmpty(uri)) {
+                DeviceId deviceId = DeviceId.deviceId(uri);
+                DeviceService ds = get(DeviceService.class);
+                for (PortStatistics stat : ds.getPortStatistics(deviceId)) {
+                    populateRow(tm.addRow(), stat);
+                }
+            }
+        }
+
+        private void populateRow(TableModel.Row row, PortStatistics stat) {
+            row.cell(ID, stat.port())
+                .cell(PKT_RX, stat.packetsReceived())
+                .cell(PKT_TX, stat.packetsSent())
+                .cell(BYTES_RX, stat.bytesReceived())
+                .cell(BYTES_TX, stat.bytesSent())
+                .cell(PKT_RX_DRP, stat.packetsRxDropped())
+                .cell(PKT_TX_DRP, stat.packetsTxDropped())
+                .cell(DURATION, stat.durationSec());
         }
     }
-
 }