diff options
author | Ashlee Young <ashlee@onosfw.com> | 2015-10-09 18:32:44 -0700 |
---|---|---|
committer | Ashlee Young <ashlee@onosfw.com> | 2015-10-09 18:32:44 -0700 |
commit | 6a07d2d622eaa06953f3353e39c080984076e8de (patch) | |
tree | bfb50a2090fce186c2cc545a400c969bf2ea702b /framework/src/onos/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java | |
parent | e6d71622143ff9b2421a1abbe8434b954b5b1099 (diff) |
Updated master to commit id 6ee8aa3e67ce89908a8c93aa9445c6f71a18f986
Change-Id: I94b055ee2f298daf71e2ec794fd0f2495bd8081f
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.java | 162 |
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 |