Clean up topo2 initialization. (WIP)
Change-Id: I417800019a5ebdf90da0f29ef11e7c05a4999b77
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Zoom.js b/web/gui/src/main/webapp/app/view/topo2/topo2Zoom.js
index 7dcf325..d52154c 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Zoom.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Zoom.js
@@ -15,48 +15,44 @@
*/
/*
- ONOS GUI -- Topology Breadcrumb Module.
- Module that renders the breadcrumbs for regions
+ ONOS GUI -- Topology Zoom Module.
+ Module that handles Zoom events.
*/
(function () {
-
'use strict';
- var zs, ps;
+ // injected references
+ var fs, zs, ps;
+ // internal state
var zoomer,
zoomEventListeners = [];
+ function createZoomer(options) {
+ // need to wrap the original zoom callback to extend its behavior
+ var origCallback = fs.isF(options.zoomCallback) || function () {};
+
+ options.zoomCallback = function () {
+ origCallback();
+
+ angular.forEach(zoomEventListeners, function (ev) {
+ ev(zoomer);
+ });
+ };
+
+ zoomer = zs.createZoomer(options);
+ return zoomer;
+ }
+
function getZoomer() {
return zoomer;
}
- function createZoomer(options) {
- var settings = angular.extend({}, options, {
- zoomCallback: zoomCallback
- });
-
- zoomer = zs.createZoomer(settings);
- return zoomer;
- }
-
- function zoomCallback() {
- var sc = zoomer.scale(),
- tr = zoomer.translate();
-
- ps.setPrefs('topo_zoom', { tx: tr[0], ty: tr[1], sc: sc });
-
- angular.forEach(zoomEventListeners, function (ev) {
- ev(zoomer);
- });
- }
-
function findZoomEventListener(ev) {
- for (var i = 0, l = zoomEventListeners.length; i < l; i++) {
+ for (var i = 0, len = zoomEventListeners.length; i < len; i++) {
if (zoomEventListeners[i] === ev) return i;
}
-
return -1;
}
@@ -65,7 +61,6 @@
}
function removeZoomEventListener(callback) {
-
var evIndex = findZoomEventListener(callback);
if (evIndex !== -1) {
@@ -83,9 +78,10 @@
angular.module('ovTopo2')
.factory('Topo2ZoomService', [
- 'ZoomService', 'PrefsService',
- function (_zs_, _ps_) {
+ 'FnService', 'ZoomService', 'PrefsService',
+ function (_fs_, _zs_, _ps_) {
+ fs = _fs_;
zs = _zs_;
ps = _ps_;