Bug 570435 - Usability improvements in X-Y-Chartviewer
Color of channels in Chartviewer is now based on the hash code of the
channel name instead of generating it randomly. Thus the channel does
not change its color if the chart is refreshed.
Change-Id: I3fdb2a2cf5f63e11f4d82aca03d3d9e34862feff
Signed-off-by: Matthias Koller <m.koller@peak-solution.de>
diff --git a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.ts b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.ts
index 729dae5..29cf41d 100644
--- a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.ts
+++ b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/chartviewer/chart-viewer.component.ts
@@ -194,7 +194,6 @@
label: measuredValues.name + ' [' + measuredValues.unit + ']',
unit: measuredValues.unit,
data: data ? data.values : [],
- borderColor: '#' + Math.random().toString(16).substr(-6),
measuredValues: map,
channel: new Node()
};
diff --git a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/xy-chart-viewer/xy-chart-viewer.component.ts b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/xy-chart-viewer/xy-chart-viewer.component.ts
index e24d136..24ade79 100644
--- a/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/xy-chart-viewer/xy-chart-viewer.component.ts
+++ b/nucleus/webclient/src/main/webapp/src/app/chartviewer/components/xy-chart-viewer/xy-chart-viewer.component.ts
@@ -244,10 +244,18 @@
dataset.fill = this.toolbarProperties.fillArea;
dataset.lineTension = this.toolbarProperties.lineTension;
dataset.borderWidth = this.toolbarProperties.lineWidth;
- const color = '#' + Math.random().toString(16).substr(-6);
+ const color = '#' + this.hashCode(dataset.label).toString(16).substr(-6)
dataset.borderColor = color;
dataset.backgroundColor = color;
return dataset;
}
+
+ private hashCode(s) {
+ let h : number;
+ for(let i = 0; i < s.length; i++) {
+ h = Math.imul(31, h) + s.charCodeAt(i) | 0;
+ }
+ return h;
+ }
}