GUI -- Simplified setRadio() api. Other minor cleanup. Added test topology data files.
diff --git a/web/gui/src/main/webapp/onos2.js b/web/gui/src/main/webapp/onos2.js
index f509757..427a23f 100644
--- a/web/gui/src/main/webapp/onos2.js
+++ b/web/gui/src/main/webapp/onos2.js
@@ -50,7 +50,10 @@
},
built = false,
errorCount = 0,
- keyHandler = {};
+ keyHandler = {
+ fn: null,
+ map: {}
+ };
// DOM elements etc.
var $view,
@@ -258,50 +261,56 @@
}
// generate 'unique' id by prefixing view id
- function uid(view, id) {
+ function makeUid(view, id) {
return view.vid + '-' + id;
}
// restore id by removing view id prefix
- function unUid(view, uid) {
+ function unmakeUid(view, uid) {
var re = new RegExp('^' + view.vid + '-');
return uid.replace(re, '');
}
- function setRadioButtons(vid, btnSet, callback) {
+ function setRadioButtons(vid, btnSet) {
var view = views[vid],
btnG;
// lazily create the buttons...
if (!(btnG = view.radioButtons)) {
btnG = d3.select(document.createElement('div'));
+ btnG.buttonDef = {};
btnSet.forEach(function (btn, i) {
var bid = btn.id || 'b' + i,
txt = btn.text || 'Button #' + i,
- b = btnG.append('span')
+ uid = makeUid(view, bid),
+ button = btnG.append('span')
.attr({
- id: uid(view, bid),
+ id: uid,
class: 'radio'
})
.text(txt);
+
+ btnG.buttonDef[uid] = btn;
+
if (i === 0) {
- b.classed('active', true);
+ button.classed('active', true);
}
});
btnG.selectAll('span')
.on('click', function (d) {
- var btn = d3.select(this),
- bid = btn.attr('id'),
- act = btn.classed('active');
+ var button = d3.select(this),
+ uid = button.attr('id'),
+ btn = btnG.buttonDef[uid],
+ act = button.classed('active');
if (!act) {
- $mastRadio.selectAll('span')
- .classed('active', false);
- btn.classed('active', true);
-
- callback(view.token(), unUid(view, bid));
+ btnG.selectAll('span').classed('active', false);
+ button.classed('active', true);
+ if (isF(btn.cb)) {
+ btn.cb(view.token(), btn);
+ }
}
});
@@ -479,8 +488,8 @@
return $(this.$div.node()).height();
},
- setRadio: function (btnSet, cb) {
- setRadioButtons(this.vid, btnSet, cb);
+ setRadio: function (btnSet) {
+ setRadioButtons(this.vid, btnSet);
},
setKeys: function (keyArg) {
@@ -488,7 +497,7 @@
},
uid: function (id) {
- return uid(this, id);
+ return makeUid(this, id);
}
// TODO: consider schedule, clearTimer, etc.