Files
HowBadIsMyBatch/docs/HistogramView.js
frankknoll b69da4ccd0 refactoring
2023-01-30 08:43:22 +01:00

41 lines
1.4 KiB
JavaScript

class HistogramView {
#uiContainer;
constructor(uiContainer) {
this.#uiContainer = uiContainer
}
displayHistogramsForBatchcode(batchcode) {
this
.#loadHistoDescrsForBatchcode(batchcode)
.then(histoDescrs => this.#displayHistograms(histoDescrs));
}
#loadHistoDescrsForBatchcode(batchcode) {
const loadingText = document.createTextNode('Loading...');
this.#uiContainer.appendChild(loadingText);
return fetch(`data/histograms/${batchcode}.json`)
.then(response => {
loadingText.remove();
return response.json();
})
}
#displayHistograms(histoDescrs) {
this.#uiContainer.appendChild(document.createTextNode(histoDescrs.batchcode));
for (const histoDescr of histoDescrs.histograms) {
this.#displayHistogram(histoDescr);
}
}
#displayHistogram(histoDescr) {
// FK-TODO: brauchen Slider wie bei intensivstationen
// FK-TODO: extract class for template-chartWithSlider
const element = UIUtils.instantiateTemplate('template-chartWithSlider');
const canvas = element.querySelector("canvas");
this.#uiContainer.appendChild(element);
const histogramChartView = new HistogramChartView(canvas);
histogramChartView.displayChart(histoDescr);
}
}