Simplified Custom View code (ui archetype).

Change-Id: Ia9d1f1023f287653d00abc3a2f9cf7498f3875e0
diff --git a/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java b/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java
index e996444..d648632 100644
--- a/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java
+++ b/tools/package/archetypes/ui/src/main/resources/archetype-resources/src/main/java/AppUiMessageHandler.java
@@ -22,165 +22,56 @@
 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 Custom-View message handler.
  */
 public class AppUiMessageHandler extends UiMessageHandler {
-    // TODO: reduce the code down to just the custom view example
 
     private static final String SAMPLE_CUSTOM_DATA_REQ = "sampleCustomDataRequest";
     private static final String SAMPLE_CUSTOM_DATA_RESP = "sampleCustomDataResponse";
-    private static final String SAMPLE_CUSTOMS = "sampleCustoms";
 
-    private static final String SAMPLE_CUSTOM_DETAIL_REQ = "sampleCustomDetailsRequest";
-    private static final String SAMPLE_CUSTOM_DETAIL_RESP = "sampleCustomDetailsResponse";
-    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 SampleCustomDataRequestHandler(),
-                new SampleCustomDetailRequestHandler()
+                new SampleCustomDataRequestHandler()
         );
     }
 
-    // handler for sample table requests
-    private final class SampleCustomDataRequestHandler extends TableRequestHandler {
+    // handler for sample data requests
+    private final class SampleCustomDataRequestHandler extends RequestHandler {
 
         private SampleCustomDataRequestHandler() {
-            super(SAMPLE_CUSTOM_DATA_REQ, SAMPLE_CUSTOM_DATA_RESP, SAMPLE_CUSTOMS);
-        }
-
-        @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 SampleCustomDetailRequestHandler extends RequestHandler {
-
-        private SampleCustomDetailRequestHandler() {
-            super(SAMPLE_CUSTOM_DETAIL_REQ);
+            super(SAMPLE_CUSTOM_DATA_REQ);
         }
 
         @Override
         public void process(long sid, ObjectNode payload) {
-            String id = string(payload, ID, "(none)");
+            someIncrement++;
+            someNumber += someIncrement;
+            log.debug("Computing data for {}...", someNumber);
 
-            // 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_CUSTOM_DETAIL_RESP, 0, rootNode);
+            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);
         }
     }
-
-
-    // ===================================================================
-    // 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;
-            }
-        }
-        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