aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java')
-rw-r--r--framework/src/onos/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java162
1 files changed, 25 insertions, 137 deletions
diff --git a/framework/src/onos/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java b/framework/src/onos/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java
index d9d68b53..d6486328 100644
--- a/framework/src/onos/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java
+++ b/framework/src/onos/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java
@@ -22,168 +22,56 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.collect.ImmutableSet;
import org.onosproject.ui.RequestHandler;
import org.onosproject.ui.UiMessageHandler;
-import org.onosproject.ui.table.TableModel;
-import org.onosproject.ui.table.TableRequestHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.lang.Override;
-import java.util.ArrayList;
import java.util.Collection;
-import java.util.List;
/**
- * Skeletal ONOS UI message handler.
- * <p>
- * This example specifically supporting a "table" view.
+ * Skeletal ONOS UI Custom-View message handler.
*/
public class AppUiMessageHandler extends UiMessageHandler {
- private static final String SAMPLE_DATA_REQ = "sampleDataRequest";
- private static final String SAMPLE_DATA_RESP = "sampleDataResponse";
- private static final String SAMPLES = "samples";
+ private static final String SAMPLE_CUSTOM_DATA_REQ = "sampleCustomDataRequest";
+ private static final String SAMPLE_CUSTOM_DATA_RESP = "sampleCustomDataResponse";
- private static final String SAMPLE_DETAIL_REQ = "sampleDetailsRequest";
- private static final String SAMPLE_DETAIL_RESP = "sampleDetailsResponse";
- private static final String DETAILS = "details";
-
- private static final String ID = "id";
- private static final String LABEL = "label";
- private static final String CODE = "code";
- private static final String COMMENT = "comment";
- private static final String RESULT = "result";
-
- private static final String[] COLUMN_IDS = { ID, LABEL, CODE };
+ private static final String NUMBER = "number";
+ private static final String SQUARE = "square";
+ private static final String CUBE = "cube";
+ private static final String MESSAGE = "message";
+ private static final String MSG_FORMAT = "Next incrememt is %d units";
private final Logger log = LoggerFactory.getLogger(getClass());
+ private long someNumber = 1;
+ private long someIncrement = 1;
@Override
protected Collection<RequestHandler> createRequestHandlers() {
return ImmutableSet.of(
- new SampleDataRequestHandler(),
- new SampleDetailRequestHandler()
+ new SampleCustomDataRequestHandler()
);
}
- // handler for sample table requests
- private final class SampleDataRequestHandler extends TableRequestHandler {
-
- private SampleDataRequestHandler() {
- super(SAMPLE_DATA_REQ, SAMPLE_DATA_RESP, SAMPLES);
- }
-
- // if necessary, override defaultColumnId() -- if it isn't "id"
+ // handler for sample data requests
+ private final class SampleCustomDataRequestHandler extends RequestHandler {
- @Override
- protected String[] getColumnIds() {
- return COLUMN_IDS;
- }
-
- @Override
- protected void populateTable(TableModel tm, ObjectNode payload) {
- // === set custom column cell formatters/comparators if need be...
- // tm.setFormatter(CODE, new CodeFormatter());
- // tm.setComparator(CODE, new CodeComparator());
-
- // === retrieve table row items from some service...
- // SomeService ss = get(SomeService.class);
- // List<Item> items = ss.getItems()
-
- // fake data for demonstration purposes...
- List<Item> items = getItems();
- for (Item item: items) {
- populateRow(tm.addRow(), item);
- }
- }
-
- private void populateRow(TableModel.Row row, Item item) {
- row.cell(ID, item.id())
- .cell(LABEL, item.label())
- .cell(CODE, item.code());
- }
- }
-
-
- // handler for sample item details requests
- private final class SampleDetailRequestHandler extends RequestHandler {
-
- private SampleDetailRequestHandler() {
- super(SAMPLE_DETAIL_REQ);
+ private SampleCustomDataRequestHandler() {
+ super(SAMPLE_CUSTOM_DATA_REQ);
}
@Override
public void process(long sid, ObjectNode payload) {
- String id = string(payload, ID, "(none)");
-
- // SomeService ss = get(SomeService.class);
- // Item item = ss.getItemDetails(id)
-
- // fake data for demonstration purposes...
- Item item = getItem(id);
-
- ObjectNode rootNode = MAPPER.createObjectNode();
- ObjectNode data = MAPPER.createObjectNode();
- rootNode.set(DETAILS, data);
-
- if (item == null) {
- rootNode.put(RESULT, "Item with id '" + id + "' not found");
- log.warn("attempted to get item detail for id '{}'", id);
-
- } else {
- rootNode.put(RESULT, "Found item with id '" + id + "'");
-
- data.put(ID, item.id());
- data.put(LABEL, item.label());
- data.put(CODE, item.code());
- data.put(COMMENT, "Some arbitrary comment");
- }
-
- sendMessage(SAMPLE_DETAIL_RESP, 0, rootNode);
- }
- }
-
-
- // ===================================================================
- // NOTE: The code below this line is to create fake data for this
- // sample code. Normally you would use existing services to
- // provide real data.
-
- // Lookup a single item.
- private static Item getItem(String id) {
- // We realize this code is really inefficient, but
- // it suffices for our purposes of demonstration...
- for (Item item : getItems()) {
- if (item.id().equals(id)) {
- return item;
- }
+ someIncrement++;
+ someNumber += someIncrement;
+ log.debug("Computing data for {}...", someNumber);
+
+ ObjectNode result = objectNode();
+ result.put(NUMBER, someNumber);
+ result.put(SQUARE, someNumber * someNumber);
+ result.put(CUBE, someNumber * someNumber * someNumber);
+ result.put(MESSAGE, String.format(MSG_FORMAT, someIncrement + 1));
+ sendMessage(SAMPLE_CUSTOM_DATA_RESP, 0, result);
}
- return null;
- }
-
- // Produce a list of items.
- private static List<Item> getItems() {
- List<Item> items = new ArrayList<>();
- items.add(new Item("item-1", "foo", 42));
- items.add(new Item("item-2", "bar", 99));
- items.add(new Item("item-3", "baz", 65));
- return items;
- }
-
- // Simple model class to provide sample data
- private static class Item {
- private final String id;
- private final String label;
- private final int code;
-
- Item(String id, String label, int code) {
- this.id = id;
- this.label = label;
- this.code = code;
- }
-
- String id() { return id; }
- String label() { return label; }
- int code() { return code; }
}
} \ No newline at end of file