GUI -- Augment sprite definitions to include subpaths and fills.
- Added sample segment routing sprite layer.
Change-Id: I531992754632255ca9156b536cb08386816add16
diff --git a/web/gui/src/main/webapp/app/view/topo/topoSprite.js b/web/gui/src/main/webapp/app/view/topo/topoSprite.js
index 9b5dbab..1c95741 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoSprite.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoSprite.js
@@ -58,9 +58,24 @@
gs.loadDefs(defsElement, ids, true);
}
+ function applyStrokeStyle(s, use) {
+ var style;
+ if (s) {
+ style = {};
+ angular.forEach(s, function (value, key) {
+ style['stroke-' + key] = value;
+ });
+ use.style(style);
+ }
+ }
- function doSprite(spr, def, pmeta) {
- var c = spr.class || 'gray1',
+ function applyFillClass(f, use) {
+ use.classed('fill-' + f, true);
+ }
+
+ function doSprite(spr, def, pathmeta) {
+ var pmeta = pathmeta[def.path],
+ c = spr.class || 'gray1',
p = spr.pos || [0,0],
lab = spr.label,
dim = def.dim || [40,40],
@@ -69,7 +84,7 @@
dy = def.labelyoff || 1,
sc = def.scale,
xfm = sus.translate(p),
- g, attr, use, style;
+ g, attr, use;
if (sc) {
xfm += sus.scale(sc, sc);
@@ -86,13 +101,24 @@
};
use = g.append('use').attr(attr);
+ applyStrokeStyle(pmeta.s, use);
+ applyFillClass(def.fill, use);
- if (pmeta.s) {
- style = {};
- angular.forEach(pmeta.s, function (value, key) {
- style['stroke-' + key] = value;
+
+ // add subpaths if they have been defined
+ if (fs.isA(def.subpaths)) {
+ def.subpaths.forEach(function (v) {
+ pmeta = pathmeta[v.path];
+ attr = {
+ width: w,
+ height: h,
+ 'xlink:href': '#' + pmeta.u,
+ transform: sus.translate(v.pos)
+ };
+ use = g.append('use').attr(attr);
+ applyStrokeStyle(pmeta.s, use);
+ applyFillClass(def.subpathfill, use);
});
- use.style(style);
}
if (lab) {
@@ -188,9 +214,8 @@
if (sprites) {
sprites.forEach(function (spr) {
- var def = defs[spr.id],
- pmeta = pathmeta[def.path];
- doSprite(spr, def, pmeta);
+ var def = defs[spr.id];
+ doSprite(spr, def, pathmeta);
});
}