GUI -- TopoToolbarService created, working first set of toggles added.
- WIP on svg exercise (tabled to be worked on on another date)

Change-Id: I8d4ed84f0de44516419910dc5ee4c8eca7dc46ff
diff --git a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
new file mode 100644
index 0000000..80351a3
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ ONOS GUI -- Topology Toolbar Module.
+ Defines functions for manipulating the toolbar.
+ */
+
+(function () {
+
+    // injected references
+    var $log, tbs;
+
+    var api, toolbar;
+
+    // buttons (named for keystroke)
+    var O, I, D, H, M, P, B;
+    var togSummary, togInstances, togDetails,
+        togHosts, togOffline, togPorts, togBackground;
+
+    function init(_api_) {
+        api = _api_;
+    }
+
+    function getActions() {
+        togSummary = api.getActionEntry('O');
+        togInstances = api.getActionEntry('I');
+        togDetails = api.getActionEntry('D');
+
+        togHosts = api.getActionEntry('H');
+        togOffline = api.getActionEntry('M');
+        togPorts = api.getActionEntry('P');
+        togBackground = api.getActionEntry('B');
+    }
+
+    function entryCallback(entry) {
+        return entry[0];
+    }
+
+    function entryToolTip(entry) {
+        return entry[1];
+    }
+
+    function createToolbar() {
+        getActions();
+        // in actions, function reference is entry[0], tooltip is entry[1]
+        toolbar = tbs.createToolbar('topo-tbar');
+        toolbar.addToggle('summary-tog', 'unknown', true,
+            entryCallback(togSummary), entryToolTip(togSummary));
+        toolbar.addToggle('instance-tog', 'unknown', true,
+            entryCallback(togInstances), entryToolTip(togInstances));
+        toolbar.addToggle('details-tog', 'unknown', true,
+            entryCallback(togDetails), entryToolTip(togDetails));
+        toolbar.addSeparator();
+
+        toolbar.addToggle('hosts-tog', 'endstation', false,
+            entryCallback(togHosts), entryToolTip(togHosts));
+        toolbar.addToggle('offline-tog', 'unknown', true,
+            entryCallback(togOffline), entryToolTip(togOffline));
+        toolbar.addToggle('ports-tog', 'unknown', true,
+            entryCallback(togPorts), entryToolTip(togPorts));
+        toolbar.addToggle('bkgrnd-tog', 'unknown', true,
+            entryCallback(togBackground), entryToolTip(togBackground));
+
+        toolbar.hide();
+    }
+
+    angular.module('ovTopo')
+        .factory('TopoToolbarService', ['$log', 'ToolbarService',
+
+        function (_$log_, _tbs_) {
+            $log = _$log_;
+            tbs = _tbs_;
+
+            return {
+                init: init,
+                createToolbar: createToolbar
+            };
+        }]);
+}());
\ No newline at end of file