aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/web/gui/src/main/webapp/app/fw/widget/toolbar.js
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/web/gui/src/main/webapp/app/fw/widget/toolbar.js')
-rw-r--r--framework/src/onos/web/gui/src/main/webapp/app/fw/widget/toolbar.js268
1 files changed, 0 insertions, 268 deletions
diff --git a/framework/src/onos/web/gui/src/main/webapp/app/fw/widget/toolbar.js b/framework/src/onos/web/gui/src/main/webapp/app/fw/widget/toolbar.js
deleted file mode 100644
index 050afd0f..00000000
--- a/framework/src/onos/web/gui/src/main/webapp/app/fw/widget/toolbar.js
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * 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 -- Widget -- Toolbar Service
- */
-// TODO: Augment service to allow toolbars to exist on right edge of screen
-// TODO: also - make toolbar more object aware (rows etc.)
-
-
-(function () {
- 'use strict';
-
- // injected refs
- var $log, fs, ps, bns, is;
-
- // configuration
- var arrowSize = 10,
- sepWidth = 6,
- defaultSettings = {
- edge: 'left',
- width: 20,
- margin: 0,
- hideMargin: -20,
- top: 'auto',
- bottom: '10px',
- fade: false,
- shown: false
- };
-
- // internal state
- var tbars = {};
-
-
- // === Helper functions --------------------------------------
-
- // translate uses 50 because the svg viewbox is 50
- function rotateArrowLeft(adiv) {
- adiv.select('g')
- .attr('transform', 'translate(0 50) rotate(-90)');
- }
- function rotateArrowRight(adiv) {
- adiv.select('g')
- .attr('transform', 'translate(50 0) rotate(90)');
- }
-
- function createArrow(panel) {
- var arrowDiv = panel.append('div')
- .classed('tbar-arrow', true);
- is.loadIcon(arrowDiv, 'triangleUp', arrowSize, true);
- return arrowDiv;
- }
-
- function warn(msg, id) {
- $log.warn('createToolbar: ' + msg + ': [' + id + ']');
- return null;
- }
-
- // ==================================
-
- function createToolbar(id, opts) {
- if (!id) return warn('no ID given');
- if (tbars[id]) return warn('duplicate ID given', id);
-
- var settings = angular.extend({}, defaultSettings, fs.isO(opts)),
- items = {},
- tbid = 'toolbar-' + id,
- panel = ps.createPanel(tbid, settings),
- arrowDiv = createArrow(panel),
- currentRow = panel.append('div').classed('tbar-row', true),
- rowButtonIds = [], // for removable buttons
- tbWidth = arrowSize + 2, // empty toolbar width
- maxWidth = panel.width();
-
- arrowDiv.on('click', toggle);
-
- // add a descriptor for this toolbar
- tbars[id] = {
- settings: settings,
- items: items,
- panel: panel,
- panelId: tbid
- };
-
- panel.classed('toolbar', true)
- .style('top', settings.top)
- .style('bottom', settings.bottom);
-
- // Helper functions
-
- function dupId(id, caller) {
- if (items[id]) {
- $log.warn(caller + ': duplicate ID:', id);
- return true;
- }
- return false;
- }
-
- function adjustWidth(btnWidth) {
- if (fs.noPxStyle(currentRow, 'width') >= maxWidth) {
- tbWidth += btnWidth;
- maxWidth = tbWidth;
- }
- panel.width(tbWidth);
- }
-
- // API functions
-
- function addButton(id, gid, cb, tooltip) {
- if (dupId(id, 'addButton')) return null;
-
- var bid = tbid + '-' + id,
- btn = bns.button(currentRow, bid, gid, cb, tooltip);
-
- items[id] = btn;
- adjustWidth(btn.width());
- return btn;
- }
-
- function addToggle(id, gid, initState, cb, tooltip) {
- if (dupId(id, 'addToggle')) return null;
-
- var tid = tbid + '-' + id,
- tog = bns.toggle(currentRow, tid, gid, initState, cb, tooltip);
-
- items[id] = tog;
- adjustWidth(tog.width());
- return tog;
- }
-
- function addRadioSet(id, rset) {
- if (dupId(id, 'addRadioSet')) return null;
-
- var rid = tbid + '-' + id,
- rad = bns.radioSet(currentRow, rid, rset);
-
- items[id] = rad;
- adjustWidth(rad.width());
- return rad;
- }
-
- function addSeparator() {
- currentRow.append('div')
- .classed('separator', true);
- tbWidth += sepWidth;
- }
-
- function addRow() {
- if (currentRow.select('div').empty()) {
- return null;
- } else {
- panel.append('br');
- currentRow = panel.append('div').classed('tbar-row', true);
-
- // return API to allow caller more access to the row
- return {
- clear: rowClear,
- setText: rowSetText,
- addButton: rowAddButton,
- classed: rowClassed
- };
- }
- }
-
- function rowClear() {
- currentRow.selectAll('*').remove();
- rowButtonIds.forEach(function (bid) {
- delete items[bid];
- });
- rowButtonIds = [];
- }
-
- // installs a div with text into the button row
- function rowSetText(text) {
- rowClear();
- currentRow.append('div').classed('tbar-row-text', true)
- .html(text);
- }
-
- function rowAddButton(id, gid, cb, tooltip) {
- var b = addButton(id, gid, cb, tooltip);
- if (b) {
- rowButtonIds.push(id);
- }
- }
-
- function rowClassed(classes, bool) {
- currentRow.classed(classes, bool);
- }
-
- function show(cb) {
- rotateArrowLeft(arrowDiv);
- panel.show(cb);
- }
-
- function hide(cb) {
- rotateArrowRight(arrowDiv);
- panel.hide(cb);
- }
-
- function toggle(cb) {
- if (panel.isVisible()) {
- hide(cb);
- } else {
- show(cb);
- }
- }
-
- return {
- addButton: addButton,
- addToggle: addToggle,
- addRadioSet: addRadioSet,
- addSeparator: addSeparator,
- addRow: addRow,
-
- show: show,
- hide: hide,
- toggle: toggle
- };
- }
-
- function destroyToolbar(id) {
- var tb = tbars[id];
- delete tbars[id];
-
- if (tb) {
- ps.destroyPanel(tb.panelId);
- }
- }
-
- // === Module Definition ===
-
- angular.module('onosWidget')
- .factory('ToolbarService',
- ['$log', 'FnService', 'PanelService', 'ButtonService', 'IconService',
-
- function (_$log_, _fs_, _ps_, _bns_, _is_) {
- $log = _$log_;
- fs = _fs_;
- ps = _ps_;
- bns = _bns_;
- is = _is_;
-
- // this function is only used in testing
- function init() {
- tbars = {};
- }
-
- return {
- init: init,
- createToolbar: createToolbar,
- destroyToolbar: destroyToolbar
- };
- }]);
-}());