Bri Prebilic Cole

GUI -- Refactored ToolbarService to have only new toolbar functions.

Change-Id: I0319335915f37d3a63b3ac734d8f8e00ebed20ae
......@@ -33,7 +33,7 @@
}
function button(div, id, gid, cb, tooltip) {
if (!div || div.empty()) {
if (!div) {
$log.warn('Button cannot append to div');
return null;
}
......@@ -53,7 +53,7 @@
}
function toggle(div, id, gid, initState, cb, tooltip) {
if (!div || div.empty()) {
if (!div) {
$log.warn('Toggle cannot append to div');
return null;
}
......@@ -84,7 +84,7 @@
}
function radioSet(div, id, rset) {
if (!div || div.empty()) {
if (!div) {
$log.warn('Radio buttons cannot append to div');
return null;
}
......
......@@ -22,80 +22,16 @@
var $log, fs, ps, bns;
var toolBtnIds = {},
toolbarPanel,
toolbarDiv;
var ids = [],
tbarId,
tbarPanel,
tbarDiv;
tbarDiv,
tbarArrowDiv;
function init() {
toolBtnIds = {};
ids = [];
}
function addButton(btn) {
// pass in button object and pass separate the pieces in this function,
// to be passed to ButtonService
var btndiv = toolbarDiv.append('div').attr('class', 'btn');
// use ButtonService to create btn with other arguments and btndiv
}
function addToggle(tog) {
var togdiv = toolbarDiv.append('div').attr('class', 'tog');
// use ButtonService to create btn with other arguments and togdiv
}
function addRadio(rad) {
var raddiv = toolbarDiv.append('div').attr('class', 'rad');
// use ButtonService to create btn with other arguments and raddiv
}
function addSeparator() {
toolbarDiv.append('div')
.attr('class', 'sep')
.style({'width': '2px',
'border-width': '1px',
'border-style': 'solid'});
}
function makeButton(id, gid, cb) {
return {
t: 'btn',
id: id,
gid: gid,
cb: cb
};
}
function makeToggle(id, gid, cb) {
return {
t: 'tog',
id: id,
gid: gid,
cb: cb
};
}
function makeRadio(id, gid, cb) {
(id in toolBtnIds) ? toolBtnIds[id] += 1 : toolBtnIds[id] = 0;
return {
t: 'rad',
id: id + '-' + toolBtnIds[id],
rid: toolBtnIds[id] + '',
gid: gid,
cb: cb
};
}
function separator() {
return {
t: 'sep'
};
}
function validId(id, caller) {
if (fs.inArray(id, ids) !== -1) {
$log.warn(caller + ': ID already exists');
......@@ -104,39 +40,38 @@
return true;
}
function addButton1(id, gid, cb, tooltip) {
function addButton(id, gid, cb, tooltip) {
var btnId = tbarId + '-' + id;
if (!validId(btnId, 'addButton')) {
return null;
}
if (!validId(btnId, 'addButton')) { return null; }
ids.push(btnId);
return bns.button(tbarDiv, btnId, gid, cb, tooltip);
}
function addToggle1(id, gid, initState, cb, tooltip) {
function addToggle(id, gid, initState, cb, tooltip) {
var togId = tbarId + '-' + id;
if (!validId(togId, 'addToggle')) {
return null;
}
if (!validId(togId, 'addToggle')) { return null; }
ids.push(togId);
return bns.toggle(tbarDiv, togId, gid, initState, cb, tooltip);
}
function addRadioSet(id, rset) {
var radId = tbarId + '-' + id;
if (!validId(radId, 'addRadioSet')) {
return null;
}
if (!validId(radId, 'addRadioSet')) { return null; }
ids.push(radId);
return bns.radioSet(tbarDiv, radId, rset);
}
// TODO: finish this and remove unneeded code
function addSeparator1() {
function addSeparator() {
if (!tbarDiv) {
$log.warn('Separator cannot append to div');
return null;
}
tbarArrowDiv = tbarDiv.append('div')
.classed('sep', true)
.style('width', '2px');
}
function createToolbar1(id, settings) {
function createToolbar(id, settings) {
if (!id) {
$log.warn('createToolbar: no ID given');
return null;
......@@ -144,78 +79,23 @@
tbarId = 'tbar-' + id;
var opts = fs.isO(settings) || {}; // default settings should be put here
if (!validId(tbarId, 'createToolbar')) {
return null;
}
if (!validId(tbarId, 'createToolbar')) { return null; }
ids.push(tbarId);
tbarPanel = ps.createPanel(tbarId, opts);
tbarDiv = tbarPanel.classed('toolbar', true);
// TODO: change names of functions
return {
addButton1: addButton1,
addToggle1: addToggle1,
addButton: addButton,
addToggle: addToggle,
addRadioSet: addRadioSet,
addSeparator1: addSeparator1
addSeparator: addSeparator
}
}
// function currently not working
//function currently not working
function destroyToolbar(id) {
ps.destroyPanel(id);
}
function createToolbar(tbarId, tools) {
var api;
if (!tbarId) {
$log.warn('createToolbar: no ID given');
return null;
}
if (!tools || tools.constructor !== Array || !tools.length) {
$log.warn('createToolbar: no tools given');
return null;
}
for (var i = 0; i < tools.length; i += 1) {
if (tools[i].t === 'rad' || tools[i].t === 'sep') {
continue;
} else {
if (tools[i].id in toolBtnIds) {
$log.warn('createToolbar: item with id '
+ tools[i].id + ' already exists');
return null;
}
toolBtnIds[tools[i].id] = 1;
}
}
// need to pass in an object with settings for where the toolbar will go
toolbarPanel = ps.createPanel(tbarId, {});
toolbarPanel.classed('toolbar', true);
toolbarDiv = toolbarPanel.el();
tools.forEach(function (tool) {
switch (tool['t']) {
case 'btn': addButton(tool); break;
case 'tog': addToggle(tool); break;
case 'rad': addRadio(tool); break;
default: addSeparator(); break;
}
});
// api functions to be returned defined here
function size(arr) {
return arr.length;
}
api = {
size: size
};
return api;
//ps.destroyPanel(id);
}
angular.module('onosWidget')
......@@ -229,14 +109,8 @@
return {
init: init,
makeButton: makeButton,
makeToggle: makeToggle,
makeRadio: makeRadio,
separator: separator,
createToolbar: createToolbar,
createToolbar1: createToolbar1,
destroyToolbar: destroyToolbar
};
}]);
}());
......