refactoring

This commit is contained in:
frankknoll
2023-11-09 12:15:48 +01:00
parent 6f20261d23
commit cee3c38e00
4 changed files with 50 additions and 33 deletions

View File

@@ -38,6 +38,7 @@
<script src="./js/PrrBySymptomTableView.js"></script> <script src="./js/PrrBySymptomTableView.js"></script>
<script src="./js/SymptomVsSymptomChartView.js"></script> <script src="./js/SymptomVsSymptomChartView.js"></script>
<script src="./js/SymptomVsSymptomChartDataProvider.js"></script> <script src="./js/SymptomVsSymptomChartDataProvider.js"></script>
<script src="./js/SymptomVsSymptomChartViewInitializer.js"></script>
<script> <script>
document.addEventListener( document.addEventListener(
"DOMContentLoaded", "DOMContentLoaded",

View File

@@ -1,9 +1,5 @@
class PageInitializer { class PageInitializer {
static #symptomVsSymptomChartView;
static #symptomX = null;
static #symptomY = null;
static initializePage({ symptom, vaccine, symptomVsSymptomChart }) { static initializePage({ symptom, vaccine, symptomVsSymptomChart }) {
PageInitializer.#configureSymptom(symptom); PageInitializer.#configureSymptom(symptom);
PageInitializer.#configureVaccine(vaccine); PageInitializer.#configureVaccine(vaccine);
@@ -30,27 +26,10 @@ class PageInitializer {
}); });
} }
static #configureSymptomVsSymptomChart({ symptomSelectXElement, symptomSelectYElement, symptomVsSymptomChartViewElement }) { static #configureSymptomVsSymptomChart(symptomVsSymptomChart) {
PageInitializer.#symptomVsSymptomChartView = new SymptomVsSymptomChartView(symptomVsSymptomChartViewElement); new SymptomVsSymptomChartViewInitializer().configureSymptomVsSymptomChart(
PageInitializer.#initializeSelectElement( symptomVsSymptomChart,
{ PageInitializer.#initializeSelectElement);
selectElement: symptomSelectXElement,
onValueSelected: symptomX => {
PageInitializer.#symptomX = symptomX;
PageInitializer.#loadAndDisplayChart();
},
minimumInputLength: 4
});
PageInitializer.#initializeSelectElement(
{
selectElement: symptomSelectYElement,
onValueSelected: symptomY => {
PageInitializer.#symptomY = symptomY;
PageInitializer.#loadAndDisplayChart();
},
minimumInputLength: 4
});
PageInitializer.#loadAndDisplayChart();
} }
static #initializeSelectElement({ selectElement, onValueSelected, minimumInputLength }) { static #initializeSelectElement({ selectElement, onValueSelected, minimumInputLength }) {
@@ -62,12 +41,4 @@ class PageInitializer {
onValueSelected(value); onValueSelected(value);
}); });
} }
static #loadAndDisplayChart() {
if (PageInitializer.#symptomX != null && PageInitializer.#symptomY != null) {
PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart(
PageInitializer.#symptomX,
PageInitializer.#symptomY);
}
}
} }

View File

@@ -0,0 +1,44 @@
class SymptomVsSymptomChartViewInitializer {
#symptomVsSymptomChartView;
#symptomX;
#symptomY;
configureSymptomVsSymptomChart(
{ symptomSelectXElement, symptomSelectYElement, symptomVsSymptomChartViewElement },
initializeSelectElement) {
this.#symptomVsSymptomChartView = new SymptomVsSymptomChartView(symptomVsSymptomChartViewElement);
{
initializeSelectElement(
{
selectElement: symptomSelectXElement,
onValueSelected: symptomX => {
this.#symptomX = symptomX;
this.#loadAndDisplayChart();
},
minimumInputLength: 4
});
this.#symptomX = null;
}
{
initializeSelectElement(
{
selectElement: symptomSelectYElement,
onValueSelected: symptomY => {
this.#symptomY = symptomY;
this.#loadAndDisplayChart();
},
minimumInputLength: 4
});
this.#symptomY = null;
}
this.#loadAndDisplayChart();
}
#loadAndDisplayChart() {
if (this.#symptomX != null && this.#symptomY != null) {
this.#symptomVsSymptomChartView.loadAndDisplayChart(this.#symptomX, this.#symptomY);
}
}
}

View File

@@ -18,6 +18,7 @@
<script src="../js/PrrBySymptomTableView.js"></script> <script src="../js/PrrBySymptomTableView.js"></script>
<script src="../js/SymptomVsSymptomChartView.js"></script> <script src="../js/SymptomVsSymptomChartView.js"></script>
<script src="../js/SymptomVsSymptomChartDataProvider.js"></script> <script src="../js/SymptomVsSymptomChartDataProvider.js"></script>
<script src="../js/SymptomVsSymptomChartViewInitializer.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.17.2.css"> <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.17.2.css">
<script src="https://code.jquery.com/qunit/qunit-2.17.2.js"></script> <script src="https://code.jquery.com/qunit/qunit-2.17.2.js"></script>
<script type="text/javascript" src="./jshamcrest.js"></script> <script type="text/javascript" src="./jshamcrest.js"></script>