Added Key Commands to topo2
Change-Id: I83f596dfa7d906a2760cbcdc2fcd2d2aedb88832
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2KeyCommands.js b/web/gui/src/main/webapp/app/view/topo2/topo2KeyCommands.js
new file mode 100644
index 0000000..f3b444d
--- /dev/null
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2KeyCommands.js
@@ -0,0 +1,67 @@
+/*
+* Copyright 2016-present 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.
+*/
+
+(function () {
+
+ // Injected Services
+ var ks, t2ps;
+ var topo2ForceService;
+
+ // Commmands
+ var actionMap = {
+ L: [cycleDeviceLabels, 'Cycle device labels']
+ };
+
+ function init(t2fs) {
+ topo2ForceService = t2fs;
+ bindCommands();
+ }
+
+ function bindCommands() {
+
+ ks.keyBindings(actionMap);
+
+ ks.gestureNotes([
+ ['click', 'Select the item and show details'],
+ ['shift-click', 'Toggle selection state'],
+ ['drag', 'Reposition (and pin) device / host'],
+ ['cmd-scroll', 'Zoom in / out'],
+ ['cmd-drag', 'Pan']
+ ]);
+ }
+
+ function cycleDeviceLabels() {
+ var deviceLabelIndex = t2ps.get('dlbls') + 1;
+ t2ps.set('dlbls', deviceLabelIndex % 3);
+ topo2ForceService.updateNodes();
+ }
+
+ angular.module('ovTopo2')
+ .factory('Topo2KeyCommandService',
+ ['KeyService', 'Topo2PrefsService',
+
+ function (_ks_, _t2ps_) {
+
+ t2ps = _t2ps_;
+ ks = _ks_;
+
+ return {
+ init: init,
+ bindCommands: bindCommands
+ };
+ }
+ ]);
+})();