44 lines
1.6 KiB
JavaScript
44 lines
1.6 KiB
JavaScript
class BatchcodeByCountryBarChartView {
|
|
|
|
#uiContainer;
|
|
|
|
constructor(uiContainer) {
|
|
this.#uiContainer = uiContainer
|
|
}
|
|
|
|
displayBatchcodeByCountryBarChart(batchcode) {
|
|
this
|
|
.#loadBarChartDescription(batchcode)
|
|
.then(barChartDescription => this.#displayBatchcodeByCountryBarChart(barChartDescription));
|
|
}
|
|
|
|
#loadBarChartDescription(batchcode) {
|
|
const loadingText = document.createTextNode('Loading...');
|
|
this.#uiContainer.appendChild(loadingText);
|
|
return BarChartDescriptionProvider
|
|
.getBarChartDescription(batchcode)
|
|
.then(barChartDescriptionTable => {
|
|
loadingText.remove();
|
|
return barChartDescriptionTable;
|
|
});
|
|
}
|
|
|
|
#displayBatchcodeByCountryBarChart(barChartDescription) {
|
|
this.#displayHeading(barChartDescription.batchcode);
|
|
const chartWithSlider = UIUtils.instantiateTemplate('template-chartWithSlider');
|
|
const chartView = new BatchcodeByCountryBarChartView2(chartWithSlider.querySelector("canvas"));
|
|
this.#uiContainer.appendChild(chartWithSlider);
|
|
this.#displayBarChart(barChartDescription, chartView);
|
|
}
|
|
|
|
#displayHeading(batchcode) {
|
|
const h1 = document.createElement("h3");
|
|
h1.appendChild(document.createTextNode(`Frequencies of reported Symptoms for Batch Code Combinations containing ${batchcode}`));
|
|
this.#uiContainer.appendChild(h1);
|
|
}
|
|
|
|
#displayBarChart(barChartDescription, chartView) {
|
|
chartView.displayChart(barChartDescription);
|
|
}
|
|
}
|