Topo2: Scale links when zooming in and out
Topo2: Limit icon scaling
Change-Id: I9b203183ebfe25ae9993a9ee8813608969867849
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2NodeModel.js b/web/gui/src/main/webapp/app/view/topo2/topo2NodeModel.js
index 09e6ef0..109a694 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2NodeModel.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2NodeModel.js
@@ -29,6 +29,8 @@
var nearDist = 15;
var devIconDim = 36,
+ devIconDimMin = 20,
+ devIconDimMax = 40,
labelPad = 5,
textPad = 5,
halfDevIcon = devIconDim / 2;
@@ -143,9 +145,9 @@
.factory('Topo2NodeModel',
['Topo2Model', 'FnService', 'RandomService', 'Topo2PrefsService',
'SvgUtilService', 'IconService', 'ThemeService',
- 'Topo2MapConfigService',
+ 'Topo2MapConfigService', 'Topo2ZoomService',
function (Model, _fn_, _RandomService_, _ps_, _sus_, _is_, _ts_,
- _t2mcs_) {
+ _t2mcs_, zoomService) {
randomService = _RandomService_;
ts = _ts_;
@@ -268,6 +270,20 @@
this.el = d3.select(el);
this.render();
},
+ setScale: function () {
+
+ var dim = devIconDim,
+ multipler = 1;
+
+ if (dim * zoomService.scale() < devIconDimMin) {
+ multipler = devIconDimMin / (dim * zoomService.scale());
+ } else if (dim * zoomService.scale() > devIconDimMax) {
+ multipler = devIconDimMax / (dim * zoomService.scale());
+ }
+
+
+ this.el.selectAll('*').style('transform', 'scale(' + multipler + ')');
+ },
render: function () {
var node = this.el,
glyphId = this.icon(this.get('type')),
@@ -289,6 +305,8 @@
if (this.events) {
this.setUpEvents();
}
+
+ this.setScale();
}
});
}]