GUI -- Introduce TableRequestHandler and refactor all table-based requests to use this class.
Change-Id: Ia26a78e9c4abead17de5e7f6babd54202c6772d9
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java
index 2e8336c..806e8c6 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java
@@ -30,12 +30,10 @@
import org.onosproject.ui.RequestHandler;
import org.onosproject.ui.UiMessageHandler;
import org.onosproject.ui.table.AbstractTableRow;
-import org.onosproject.ui.table.RowComparator;
+import org.onosproject.ui.table.TableRequestHandler;
import org.onosproject.ui.table.TableRow;
-import org.onosproject.ui.table.TableUtils;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -47,7 +45,12 @@
public class DeviceViewMessageHandler extends UiMessageHandler {
private static final String DEV_DATA_REQ = "deviceDataRequest";
- private static final String DEV_DETAIL_REQ = "deviceDetailRequest";
+ private static final String DEV_DATA_RESP = "deviceDataResponse";
+ private static final String DEVICES = "devices";
+
+ private static final String DEV_DETAILS_REQ = "deviceDetailsRequest";
+ private static final String DEV_DETAILS_RESP = "deviceDetailsResponse";
+ private static final String DETAILS = "details";
private static final String ID = "id";
private static final String TYPE = "type";
@@ -78,30 +81,16 @@
);
}
- // ======================================================================
-
- private final class DataRequestHandler extends RequestHandler {
-
+ // handler for device table requests
+ private final class DataRequestHandler extends TableRequestHandler {
private DataRequestHandler() {
- super(DEV_DATA_REQ);
+ super(DEV_DATA_REQ, DEV_DATA_RESP, DEVICES);
}
@Override
- public void process(long sid, ObjectNode payload) {
- RowComparator rc = TableUtils.createRowComparator(payload);
-
+ protected TableRow[] generateTableRows(ObjectNode payload) {
DeviceService service = get(DeviceService.class);
MastershipService mastershipService = get(MastershipService.class);
- TableRow[] rows = generateTableRows(service, mastershipService);
- Arrays.sort(rows, rc);
- ObjectNode rootNode = MAPPER.createObjectNode();
- rootNode.set("devices", TableUtils.generateArrayNode(rows));
-
- sendMessage("deviceDataResponse", 0, rootNode);
- }
-
- private TableRow[] generateTableRows(DeviceService service,
- MastershipService mastershipService) {
List<TableRow> list = new ArrayList<>();
for (Device dev : service.getDevices()) {
list.add(new DeviceTableRow(service, mastershipService, dev));
@@ -110,11 +99,10 @@
}
}
- // ======================================================================
-
+ // handler for selected device detail requests
private final class DetailRequestHandler extends RequestHandler {
private DetailRequestHandler() {
- super(DEV_DETAIL_REQ);
+ super(DEV_DETAILS_REQ);
}
@Override
@@ -152,8 +140,8 @@
data.set(PORTS, ports);
ObjectNode rootNode = MAPPER.createObjectNode();
- rootNode.set("details", data);
- sendMessage("deviceDetailsResponse", 0, rootNode);
+ rootNode.set(DETAILS, data);
+ sendMessage(DEV_DETAILS_RESP, 0, rootNode);
}
private ObjectNode portData(Port p, DeviceId id) {
@@ -183,7 +171,6 @@
}
-
private static String getTypeIconId(Device d) {
return DEV_ICON_PREFIX + d.type().toString();
}