ONOS-1479 - GUI Topology Overlay Work - (WIP)
- created TopoOverlayService to allow registration of topology overlays
- modified topoToolbar to include a radio button set for each registered overlay
- created seed traffic overlay
Change-Id: I70770cb1c691730914c81e497823ea08703587f1
diff --git a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
index 8fec8cb..342e108 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoToolbar.js
@@ -23,7 +23,7 @@
'use strict';
// injected references
- var $log, fs, tbs, ps, api;
+ var $log, fs, tbs, ps, tov, api;
// internal state
var toolbar, keyData, cachedState;
@@ -142,13 +142,50 @@
addToggle('B');
addToggle('S', true);
}
+
function addSecondRow() {
//addToggle('X');
addToggle('Z');
addButton('N');
addButton('L');
addButton('R');
+ toolbar.addSeparator();
+ addButton('E');
}
+
+ function setOverlay(overlayId) {
+ if (!overlayId) {
+ $log.debug('CLEAR overlay');
+ } else {
+ $log.debug('SET overlay', overlayId);
+ }
+ }
+
+ function addOverlays() {
+ toolbar.addSeparator();
+
+ // generate radio button set for overlays; start with 'none'
+ var rset = [{
+ gid: 'unknown',
+ tooltip: 'No Overlay',
+ cb: function () { setOverlay(); }
+ }];
+
+ tov.list().forEach(function (key) {
+ var ov = tov.overlay(key);
+ rset.push({
+ gid: ov._glyphId,
+ tooltip: (ov.tooltip || '(no tooltip)'),
+ cb: function () {
+ setOverlay(ov.overlayId);
+ }
+ });
+ });
+
+ toolbar.addRadioSet('topo-overlays', rset);
+ }
+
+ // TODO: 3rd row needs to be swapped in/out based on selected overlay
function addThirdRow() {
addButton('V');
addButton('leftArrow');
@@ -156,8 +193,6 @@
addButton('W');
addButton('A');
addButton('F');
- toolbar.addSeparator();
- addButton('E');
}
function createToolbar() {
@@ -166,8 +201,10 @@
addFirstRow();
toolbar.addRow();
addSecondRow();
+ addOverlays();
toolbar.addRow();
addThirdRow();
+
if (cachedState.toolbar) {
toolbar.show();
} else {
@@ -199,12 +236,14 @@
angular.module('ovTopo')
.factory('TopoToolbarService',
['$log', 'FnService', 'ToolbarService', 'PrefsService',
+ 'TopoOverlayService',
- function (_$log_, _fs_, _tbs_, _ps_) {
+ function (_$log_, _fs_, _tbs_, _ps_, _tov_) {
$log = _$log_;
fs = _fs_;
tbs = _tbs_;
ps = _ps_;
+ tov = _tov_;
return {
init: init,