From 10ab037358b87b3c21ede2917ad2b7696706048d Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Wed, 5 Jan 2022 20:41:36 +0100 Subject: [PATCH 01/87] [refactor] Struktur --- .../github/weichware10/analyse/ClientGui.java | 25 -------- .../DiagramConfig.java} | 6 +- .../HeatmapConfig.java} | 6 +- .../analyse/{ => enums}/AnalyseType.java | 2 +- .../analyse/{ => enums}/DiagrammType.java | 2 +- .../analyse/{ => logic}/Analyse.java | 2 +- .../analyse/{ => logic}/Client.java | 14 +++-- .../{Diagramm.java => logic/Diagram.java} | 11 ++-- .../analyse/{ => logic}/Heatmap.java | 8 ++- .../analyse/{ => logic}/Verlauf.java | 2 +- .../weichware10/analyse/ClientTest.java | 2 + .../analyse/ConfigDiagrammTest.java | 46 +++++++------- .../analyse/ConfigHeatmapTest.java | 62 ++++++++++--------- .../weichware10/analyse/DiagrammTest.java | 26 ++++---- .../weichware10/analyse/HeatmapTest.java | 20 +++--- .../weichware10/analyse/VerlaufTest.java | 1 + 16 files changed, 115 insertions(+), 120 deletions(-) delete mode 100644 src/main/java/github/weichware10/analyse/ClientGui.java rename src/main/java/github/weichware10/analyse/{ConfigDiagramm.java => config/DiagramConfig.java} (96%) rename src/main/java/github/weichware10/analyse/{ConfigHeatmap.java => config/HeatmapConfig.java} (97%) rename src/main/java/github/weichware10/analyse/{ => enums}/AnalyseType.java (78%) rename src/main/java/github/weichware10/analyse/{ => enums}/DiagrammType.java (73%) rename src/main/java/github/weichware10/analyse/{ => logic}/Analyse.java (94%) rename src/main/java/github/weichware10/analyse/{ => logic}/Client.java (91%) rename src/main/java/github/weichware10/analyse/{Diagramm.java => logic/Diagram.java} (85%) rename src/main/java/github/weichware10/analyse/{ => logic}/Heatmap.java (86%) rename src/main/java/github/weichware10/analyse/{ => logic}/Verlauf.java (96%) diff --git a/src/main/java/github/weichware10/analyse/ClientGui.java b/src/main/java/github/weichware10/analyse/ClientGui.java deleted file mode 100644 index bdcfed2..0000000 --- a/src/main/java/github/weichware10/analyse/ClientGui.java +++ /dev/null @@ -1,25 +0,0 @@ -package github.weichware10.analyse; - -/** - * verantwortliche für die graphische Benutzeroberfläche des Clients mit Ein- - * und Ausgabe. - */ -public class ClientGui { - private Client client; - - /** - * verantwortliche für die graphische Benutzeroberfläche des Clients mit Ein- - * und Ausgabe. - */ - public ClientGui() { - this.client = new Client(); - } - - /** - * zeigt die graphische Benutzeroberfläche an. - */ - public void showGui() { - ; - } - -} diff --git a/src/main/java/github/weichware10/analyse/ConfigDiagramm.java b/src/main/java/github/weichware10/analyse/config/DiagramConfig.java similarity index 96% rename from src/main/java/github/weichware10/analyse/ConfigDiagramm.java rename to src/main/java/github/weichware10/analyse/config/DiagramConfig.java index 74332db..edd3b0b 100644 --- a/src/main/java/github/weichware10/analyse/ConfigDiagramm.java +++ b/src/main/java/github/weichware10/analyse/config/DiagramConfig.java @@ -1,9 +1,9 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.config; /** * Speicherung der Konfiguration der Diagramm-Analysemethoden. */ -public class ConfigDiagramm { +public class DiagramConfig { private int amountAreas; // * 2,4,6,8 private float minTime; // * >= 0 Länge | Zoomstufe private float maxTime; // * <= 10 Länge | Zoomstufe @@ -12,7 +12,7 @@ public class ConfigDiagramm { /** * Speicherung der Konfiguration der Diagramm-Analysemethoden. */ - public ConfigDiagramm() { + public DiagramConfig() { this.amountAreas = 4; this.minTime = 0.5f; this.maxTime = 2.5f; diff --git a/src/main/java/github/weichware10/analyse/ConfigHeatmap.java b/src/main/java/github/weichware10/analyse/config/HeatmapConfig.java similarity index 97% rename from src/main/java/github/weichware10/analyse/ConfigHeatmap.java rename to src/main/java/github/weichware10/analyse/config/HeatmapConfig.java index 32a7f88..a810078 100644 --- a/src/main/java/github/weichware10/analyse/ConfigHeatmap.java +++ b/src/main/java/github/weichware10/analyse/config/HeatmapConfig.java @@ -1,9 +1,9 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.config; /** * Speicherung der Konfiguration der Heatmap-Analysemethoden. */ -public class ConfigHeatmap { +public class HeatmapConfig { private float[] minColor; private float[] maxColor; private boolean grid; @@ -14,7 +14,7 @@ public class ConfigHeatmap { /** * Speicherung der Konfiguration der Heatmap-Analysemethoden. */ - public ConfigHeatmap() { + public HeatmapConfig() { this.minColor = new float[] { 0, 0, 1 }; this.maxColor = new float[] { 1, 0, 0 }; this.grid = true; diff --git a/src/main/java/github/weichware10/analyse/AnalyseType.java b/src/main/java/github/weichware10/analyse/enums/AnalyseType.java similarity index 78% rename from src/main/java/github/weichware10/analyse/AnalyseType.java rename to src/main/java/github/weichware10/analyse/enums/AnalyseType.java index b5238f6..8887fa0 100644 --- a/src/main/java/github/weichware10/analyse/AnalyseType.java +++ b/src/main/java/github/weichware10/analyse/enums/AnalyseType.java @@ -1,4 +1,4 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.enums; /** * Enum der möglichen Analyse-Typen. diff --git a/src/main/java/github/weichware10/analyse/DiagrammType.java b/src/main/java/github/weichware10/analyse/enums/DiagrammType.java similarity index 73% rename from src/main/java/github/weichware10/analyse/DiagrammType.java rename to src/main/java/github/weichware10/analyse/enums/DiagrammType.java index 7b87266..1969cd0 100644 --- a/src/main/java/github/weichware10/analyse/DiagrammType.java +++ b/src/main/java/github/weichware10/analyse/enums/DiagrammType.java @@ -1,4 +1,4 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.enums; /** * Enum der möglichen Diagramm-Typen. diff --git a/src/main/java/github/weichware10/analyse/Analyse.java b/src/main/java/github/weichware10/analyse/logic/Analyse.java similarity index 94% rename from src/main/java/github/weichware10/analyse/Analyse.java rename to src/main/java/github/weichware10/analyse/logic/Analyse.java index eedc010..450e7fd 100644 --- a/src/main/java/github/weichware10/analyse/Analyse.java +++ b/src/main/java/github/weichware10/analyse/logic/Analyse.java @@ -1,4 +1,4 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; import github.weichware10.util.data.TrialData; import java.util.List; diff --git a/src/main/java/github/weichware10/analyse/Client.java b/src/main/java/github/weichware10/analyse/logic/Client.java similarity index 91% rename from src/main/java/github/weichware10/analyse/Client.java rename to src/main/java/github/weichware10/analyse/logic/Client.java index d80307a..6321d3b 100644 --- a/src/main/java/github/weichware10/analyse/Client.java +++ b/src/main/java/github/weichware10/analyse/logic/Client.java @@ -1,5 +1,8 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; +import github.weichware10.analyse.config.DiagramConfig; +import github.weichware10.analyse.config.HeatmapConfig; +import github.weichware10.analyse.enums.AnalyseType; import github.weichware10.util.Enums.ToolType; import github.weichware10.util.data.TrialData; import java.util.ArrayList; @@ -10,13 +13,14 @@ /** * Grundlegende Klasse für den Analyse-Client. */ +@SuppressWarnings("unused") public class Client { private TrialData data; private TrialData dataForComp; private List analyseTypes; private List analyzedData; - private ConfigHeatmap confHm; - private ConfigDiagramm confDia; + private HeatmapConfig confHm; + private DiagramConfig confDia; public Client() { analyseTypes = new ArrayList(); @@ -106,7 +110,7 @@ public boolean getDataForComp(DateTime start, DateTime end, ToolType dataType) { * * @param confHm - Konfiguration der Heatmap-Analyse */ - public void setConfigAnalyseHm(ConfigHeatmap confHm) { + public void setConfigAnalyseHm(HeatmapConfig confHm) { this.confHm = confHm; } @@ -115,7 +119,7 @@ public void setConfigAnalyseHm(ConfigHeatmap confHm) { * * @param confDia - Konfiguration der Diagramm-Analyse */ - public void setConfigAnalyseDia(ConfigDiagramm confDia) { + public void setConfigAnalyseDia(DiagramConfig confDia) { this.confDia = confDia; } diff --git a/src/main/java/github/weichware10/analyse/Diagramm.java b/src/main/java/github/weichware10/analyse/logic/Diagram.java similarity index 85% rename from src/main/java/github/weichware10/analyse/Diagramm.java rename to src/main/java/github/weichware10/analyse/logic/Diagram.java index 3351e76..734a348 100644 --- a/src/main/java/github/weichware10/analyse/Diagramm.java +++ b/src/main/java/github/weichware10/analyse/logic/Diagram.java @@ -1,14 +1,17 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; +import github.weichware10.analyse.config.DiagramConfig; +import github.weichware10.analyse.enums.DiagrammType; import github.weichware10.util.data.TrialData; import java.util.List; /** * verantwortlich für die Erstellung der Diagramm-Diagramme. */ -public class Diagramm extends Analyse { +@SuppressWarnings("unused") +public class Diagram extends Analyse { private final TrialData data; - private final ConfigDiagramm confDia; + private final DiagramConfig confDia; /** * verantwortlich für die Erstellung der Diagramm-Diagramme. @@ -16,7 +19,7 @@ public class Diagramm extends Analyse { * @param data - Daten die zur Erstellung der Diagramme benötigt werden * @param confDia - Konfigurationen für die Diagrammarten */ - public Diagramm(TrialData data, ConfigDiagramm confDia) { + public Diagram(TrialData data, DiagramConfig confDia) { this.data = data; this.confDia = confDia; } diff --git a/src/main/java/github/weichware10/analyse/Heatmap.java b/src/main/java/github/weichware10/analyse/logic/Heatmap.java similarity index 86% rename from src/main/java/github/weichware10/analyse/Heatmap.java rename to src/main/java/github/weichware10/analyse/logic/Heatmap.java index 2084dbd..3ae1af1 100644 --- a/src/main/java/github/weichware10/analyse/Heatmap.java +++ b/src/main/java/github/weichware10/analyse/logic/Heatmap.java @@ -1,14 +1,16 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; +import github.weichware10.analyse.config.HeatmapConfig; import github.weichware10.util.data.TrialData; import java.util.List; /** * verantwortlich für die Erstellung der Heatmap. */ +@SuppressWarnings("unused") public class Heatmap extends Analyse { private final TrialData data; - private final ConfigHeatmap confHm; + private final HeatmapConfig confHm; private List> heatmap; /** @@ -17,7 +19,7 @@ public class Heatmap extends Analyse { * @param data - Daten die zur Erstellung der Heatmaps benötigt werden * @param confHm - Konfiguration der Heatmap */ - public Heatmap(TrialData data, ConfigHeatmap confHm) { + public Heatmap(TrialData data, HeatmapConfig confHm) { this.data = data; this.confHm = confHm; } diff --git a/src/main/java/github/weichware10/analyse/Verlauf.java b/src/main/java/github/weichware10/analyse/logic/Verlauf.java similarity index 96% rename from src/main/java/github/weichware10/analyse/Verlauf.java rename to src/main/java/github/weichware10/analyse/logic/Verlauf.java index 5675ffb..1281d64 100644 --- a/src/main/java/github/weichware10/analyse/Verlauf.java +++ b/src/main/java/github/weichware10/analyse/logic/Verlauf.java @@ -1,4 +1,4 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; import github.weichware10.util.data.TrialData; import java.util.List; diff --git a/src/test/java/github/weichware10/analyse/ClientTest.java b/src/test/java/github/weichware10/analyse/ClientTest.java index ed23eb5..db48491 100644 --- a/src/test/java/github/weichware10/analyse/ClientTest.java +++ b/src/test/java/github/weichware10/analyse/ClientTest.java @@ -3,6 +3,8 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import github.weichware10.analyse.enums.AnalyseType; +import github.weichware10.analyse.logic.Client; import github.weichware10.util.Enums.ToolType; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/test/java/github/weichware10/analyse/ConfigDiagrammTest.java b/src/test/java/github/weichware10/analyse/ConfigDiagrammTest.java index 009cd31..eeba9e2 100644 --- a/src/test/java/github/weichware10/analyse/ConfigDiagrammTest.java +++ b/src/test/java/github/weichware10/analyse/ConfigDiagrammTest.java @@ -6,6 +6,8 @@ import org.junit.Test; +import github.weichware10.analyse.config.DiagramConfig; + /** * Unit Test für Klasse ConfigDiagramm. */ @@ -15,20 +17,20 @@ public class ConfigDiagrammTest { */ @Test public void amountAreasShouldBeSet() { - ConfigDiagramm confDia1 = new ConfigDiagramm(); + DiagramConfig confDia1 = new DiagramConfig(); assertEquals("getAmountAreas sollte 4 sein", 4, confDia1.getAmountAreas()); - ConfigDiagramm confDia2 = new ConfigDiagramm(); + DiagramConfig confDia2 = new DiagramConfig(); assertTrue("setAmountAreas sollte True zurückgeben", confDia2.setAmountAreas(6)); - ConfigDiagramm confDia3 = new ConfigDiagramm(); + DiagramConfig confDia3 = new DiagramConfig(); confDia3.setAmountAreas(2); assertEquals("getAmountAreas sollte 2 sein", 2, confDia3.getAmountAreas()); - ConfigDiagramm confDia4 = new ConfigDiagramm(); + DiagramConfig confDia4 = new DiagramConfig(); assertFalse("setAmountAreas sollte False zurückgeben", confDia4.setAmountAreas(10)); - ConfigDiagramm confDia5 = new ConfigDiagramm(); + DiagramConfig confDia5 = new DiagramConfig(); assertFalse("setAmountAreas sollte False zurückgeben", confDia5.setAmountAreas(-2)); } @@ -37,20 +39,20 @@ public void amountAreasShouldBeSet() { */ @Test public void minTimeShouldBeSet() { - ConfigDiagramm confDia1 = new ConfigDiagramm(); + DiagramConfig confDia1 = new DiagramConfig(); assertEquals("getMinTime sollte 0.5 zurückgeben", 0.5f, confDia1.getMinTime(), 0.00001f); - ConfigDiagramm confDia2 = new ConfigDiagramm(); + DiagramConfig confDia2 = new DiagramConfig(); assertTrue("setNewTime sollte True zurückgeben", confDia2.setNewTime(1.0f, 2.5f)); - ConfigDiagramm confDia3 = new ConfigDiagramm(); + DiagramConfig confDia3 = new DiagramConfig(); confDia3.setNewTime(2.0f, 2.5f); assertEquals("getMinTime sollte 2.0 zurückgeben", 2.0f, confDia3.getMinTime(), 0.00001f); - ConfigDiagramm confDia4 = new ConfigDiagramm(); + DiagramConfig confDia4 = new DiagramConfig(); assertFalse("setNewTime sollte False zurückgeben", confDia4.setNewTime(3.0f, 2.5f)); - ConfigDiagramm confDia5 = new ConfigDiagramm(); + DiagramConfig confDia5 = new DiagramConfig(); assertFalse("setNewTime sollte False zurückgeben", confDia5.setNewTime(-1.0f, 2.5f)); } @@ -59,20 +61,20 @@ public void minTimeShouldBeSet() { */ @Test public void maxTimeShouldBeSet() { - ConfigDiagramm confDia1 = new ConfigDiagramm(); + DiagramConfig confDia1 = new DiagramConfig(); assertEquals("getMaxTime sollte 2.5 zurückgeben", 2.5f, confDia1.getMaxTime(), 0.00001f); - ConfigDiagramm confDia2 = new ConfigDiagramm(); + DiagramConfig confDia2 = new DiagramConfig(); assertTrue("setNewTime sollte True zurückgeben", confDia2.setNewTime(0.5f, 3.0f)); - ConfigDiagramm confDia3 = new ConfigDiagramm(); + DiagramConfig confDia3 = new DiagramConfig(); confDia3.setNewTime(0.5f, 1.0f); assertEquals("getMaxTime sollte 1.0 zurückgeben", 1.0f, confDia3.getMaxTime(), 0.00001f); - ConfigDiagramm confDia4 = new ConfigDiagramm(); + DiagramConfig confDia4 = new DiagramConfig(); assertFalse("setNewTime sollte False zurückgeben", confDia4.setNewTime(0.5f, 0.2f)); - ConfigDiagramm confDia5 = new ConfigDiagramm(); + DiagramConfig confDia5 = new DiagramConfig(); assertFalse("setNewTime sollte False zurückgeben", confDia5.setNewTime(0.5f, 12.5f)); } @@ -81,28 +83,28 @@ public void maxTimeShouldBeSet() { */ @Test public void stepsBetweenShouldBeSet() { - ConfigDiagramm confDia1 = new ConfigDiagramm(); + DiagramConfig confDia1 = new DiagramConfig(); assertEquals("getStepsBetween sollte 4 zurückgeben", 4, confDia1.getStepsBetween()); - ConfigDiagramm confDia2 = new ConfigDiagramm(); + DiagramConfig confDia2 = new DiagramConfig(); assertTrue("setStepsBetween sollte True zurückgeben", confDia2.setStepsBetween(8)); - ConfigDiagramm confDia3 = new ConfigDiagramm(); + DiagramConfig confDia3 = new DiagramConfig(); confDia3.setStepsBetween(1); assertEquals("getStepsBetween sollte 1 zurückgeben", 1, confDia3.getStepsBetween()); - ConfigDiagramm confDia4 = new ConfigDiagramm(); + DiagramConfig confDia4 = new DiagramConfig(); assertFalse("setStepsBetween sollte False zurückgeben", confDia4.setStepsBetween(12)); - ConfigDiagramm confDia5 = new ConfigDiagramm(); + DiagramConfig confDia5 = new DiagramConfig(); assertFalse("setStepsBetween sollte False zurückgeben", confDia5.setStepsBetween(-2)); - ConfigDiagramm confDia6 = new ConfigDiagramm(); + DiagramConfig confDia6 = new DiagramConfig(); confDia6.setNewTime(3.0f, 3.0f); confDia6.setStepsBetween(5); assertEquals("getStepsBetween sollte 0 zurückgeben", 0, confDia6.getStepsBetween()); - ConfigDiagramm confDia7 = new ConfigDiagramm(); + DiagramConfig confDia7 = new DiagramConfig(); confDia7.setStepsBetween(10); confDia7.setNewTime(3.0f, 3.0f); assertEquals("getStepsBetween sollte 0 zurückgeben", 0, confDia7.getStepsBetween()); diff --git a/src/test/java/github/weichware10/analyse/ConfigHeatmapTest.java b/src/test/java/github/weichware10/analyse/ConfigHeatmapTest.java index dbcaf3a..eafc91d 100644 --- a/src/test/java/github/weichware10/analyse/ConfigHeatmapTest.java +++ b/src/test/java/github/weichware10/analyse/ConfigHeatmapTest.java @@ -6,6 +6,8 @@ import org.junit.Test; +import github.weichware10.analyse.config.HeatmapConfig; + /** * Unit Test für Klasse ConfigHeatmap. */ @@ -15,17 +17,17 @@ public class ConfigHeatmapTest { */ @Test public void minColorShouldBeSet() { - ConfigHeatmap confHm1 = new ConfigHeatmap(); + HeatmapConfig confHm1 = new HeatmapConfig(); // assertEquals(new float[] { 1, 0, 0 }, confHm1.getMinColor()); assertEquals("getMinColor[0] sollte 0 zurückgeben", 0, confHm1.getMinColor()[0], 0.0001f); assertEquals("getMinColor[1] sollte 0 zurückgeben", 0, confHm1.getMinColor()[1], 0.0001f); assertEquals("getMinColor[2] sollte 1 zurückgeben", 1, confHm1.getMinColor()[2], 0.0001f); - ConfigHeatmap confHm2 = new ConfigHeatmap(); + HeatmapConfig confHm2 = new HeatmapConfig(); assertTrue("setMinColor sollte True zurückgeben", confHm2.setMinColor(new float[] { 0, 1, 0.5f })); - ConfigHeatmap confHm3 = new ConfigHeatmap(); + HeatmapConfig confHm3 = new HeatmapConfig(); confHm3.setMinColor(new float[] { 0.25f, 0.1f, 1 }); assertEquals("getMinColor[0] sollte 0.25 zurückgeben", 0.25f, confHm3.getMinColor()[0], 0.0001f); @@ -34,15 +36,15 @@ public void minColorShouldBeSet() { assertEquals("getMinColor[2] sollte 1 zurückgeben", 1, confHm3.getMinColor()[2], 0.0001f); - ConfigHeatmap confHm4 = new ConfigHeatmap(); + HeatmapConfig confHm4 = new HeatmapConfig(); assertFalse("setMinColor sollte False zurückgeben", confHm4.setMinColor(new float[] { -1, 0, 1 })); - ConfigHeatmap confHm5 = new ConfigHeatmap(); + HeatmapConfig confHm5 = new HeatmapConfig(); assertFalse("setMinColor sollte False zurückgeben", confHm5.setMinColor(new float[] { 0.5f, 1.3f, 1 })); - ConfigHeatmap confHm6 = new ConfigHeatmap(); + HeatmapConfig confHm6 = new HeatmapConfig(); assertFalse("setMinColor sollte False zurückgeben", confHm6.setMinColor(new float[] { 0.5f, 1.3f, -1 })); } @@ -52,16 +54,16 @@ public void minColorShouldBeSet() { */ @Test public void maxColorShouldBeSet() { - ConfigHeatmap confHm1 = new ConfigHeatmap(); + HeatmapConfig confHm1 = new HeatmapConfig(); assertEquals("getMaxColor[0] sollte 1 zurückgeben", 1, confHm1.getMaxColor()[0], 0.0001f); assertEquals("getMaxColor[1] sollte 0 zurückgeben", 0, confHm1.getMaxColor()[1], 0.0001f); assertEquals("getMaxColor[2] sollte 0 zurückgeben", 0, confHm1.getMaxColor()[2], 0.0001f); - ConfigHeatmap confHm2 = new ConfigHeatmap(); + HeatmapConfig confHm2 = new HeatmapConfig(); assertTrue("setMaxColor sollte True zurückgeben", confHm2.setMaxColor(new float[] { 0.6f, 0.15f, 1.0f })); - ConfigHeatmap confHm3 = new ConfigHeatmap(); + HeatmapConfig confHm3 = new HeatmapConfig(); confHm3.setMaxColor(new float[] { 0.1f, 1.0f, 0.45f }); assertEquals("getMaxColor[0] sollte 0.1 zurückgeben", 0.1f, confHm3.getMaxColor()[0], 0.0001f); @@ -70,15 +72,15 @@ public void maxColorShouldBeSet() { assertEquals("getMaxColor[2] sollte 0.45 zurückgeben", 0.45f, confHm3.getMaxColor()[2], 0.0001f); - ConfigHeatmap confHm4 = new ConfigHeatmap(); + HeatmapConfig confHm4 = new HeatmapConfig(); assertFalse("setMaxColor sollte False zurückgeben", confHm4.setMaxColor(new float[] { 0.2f, -0.85f, 0.0f })); - ConfigHeatmap confHm5 = new ConfigHeatmap(); + HeatmapConfig confHm5 = new HeatmapConfig(); assertFalse("setMaxColor sollte False zurückgeben", confHm5.setMaxColor(new float[] { 0.2f, 0.16f, 3.0f })); - ConfigHeatmap confHm6 = new ConfigHeatmap(); + HeatmapConfig confHm6 = new HeatmapConfig(); assertFalse("setMaxColor sollte False zurückgeben", confHm6.setMaxColor(new float[] { 1.2f, 0.16f, -3.0f })); } @@ -88,14 +90,14 @@ public void maxColorShouldBeSet() { */ @Test public void gridShouldBeSet() { - ConfigHeatmap confHm1 = new ConfigHeatmap(); + HeatmapConfig confHm1 = new HeatmapConfig(); assertTrue("isGrid sollte true zurückgeben", confHm1.isGrid()); - ConfigHeatmap confHm2 = new ConfigHeatmap(); + HeatmapConfig confHm2 = new HeatmapConfig(); confHm2.setGrid(false); assertFalse("isGrid sollte false zurückgeben", confHm2.isGrid()); - ConfigHeatmap confHm3 = new ConfigHeatmap(); + HeatmapConfig confHm3 = new HeatmapConfig(); confHm3.setGrid(true); assertTrue("isGrid sollte true zurückgeben", confHm3.isGrid()); } @@ -105,14 +107,14 @@ public void gridShouldBeSet() { */ @Test public void imageShouldBeSet() { - ConfigHeatmap confHm1 = new ConfigHeatmap(); + HeatmapConfig confHm1 = new HeatmapConfig(); assertTrue("isImage sollte true zurückgeben", confHm1.isImage()); - ConfigHeatmap confHm2 = new ConfigHeatmap(); + HeatmapConfig confHm2 = new HeatmapConfig(); confHm2.setImage(false); assertFalse("isImage sollte false zurückgeben", confHm2.isImage()); - ConfigHeatmap confHm3 = new ConfigHeatmap(); + HeatmapConfig confHm3 = new HeatmapConfig(); confHm3.setImage(true); assertTrue("isImage sollte true zurückgeben", confHm3.isImage()); } @@ -122,16 +124,16 @@ public void imageShouldBeSet() { */ @Test public void minDiffShouldBeSet() { - ConfigHeatmap confHm1 = new ConfigHeatmap(); + HeatmapConfig confHm1 = new HeatmapConfig(); assertEquals("getMinDiff[0] sollte 1 zurückgeben", 1, confHm1.getMinDiff()[0], 0.0001f); assertEquals("getMinDiff[1] sollte 0 zurückgeben", 0, confHm1.getMinDiff()[1], 0.0001f); assertEquals("getMinDiff[2] sollte 1 zurückgeben", 1, confHm1.getMinDiff()[2], 0.0001f); - ConfigHeatmap confHm2 = new ConfigHeatmap(); + HeatmapConfig confHm2 = new HeatmapConfig(); assertTrue("setMinDiff sollte True zurückgeben", confHm2.setMinDiff(new float[] { 0.5f, 0.3f, 1.0f })); - ConfigHeatmap confHm3 = new ConfigHeatmap(); + HeatmapConfig confHm3 = new HeatmapConfig(); confHm3.setMinDiff(new float[] { 0.75f, 0.2f, 0.5f }); assertEquals("getMinDiff[0] sollte 0.75 zurückgeben", 0.75f, confHm3.getMinDiff()[0], 0.0001f); @@ -140,15 +142,15 @@ public void minDiffShouldBeSet() { assertEquals("getMinDiff[2] sollte 0.5 zurückgeben", 0.5f, confHm3.getMinDiff()[2], 0.0001f); - ConfigHeatmap confHm4 = new ConfigHeatmap(); + HeatmapConfig confHm4 = new HeatmapConfig(); assertFalse("setMinDiff sollte False zurückgeben", confHm4.setMinDiff(new float[] { -1, 0, 1 })); - ConfigHeatmap confHm5 = new ConfigHeatmap(); + HeatmapConfig confHm5 = new HeatmapConfig(); assertFalse("setMinDiff sollte False zurückgeben", confHm5.setMinDiff(new float[] { 0.5f, 1.3f, 1 })); - ConfigHeatmap confHm6 = new ConfigHeatmap(); + HeatmapConfig confHm6 = new HeatmapConfig(); assertFalse("setMinDiff sollte False zurückgeben", confHm6.setMinDiff(new float[] { 0.5f, 1.3f, -1 })); } @@ -158,16 +160,16 @@ public void minDiffShouldBeSet() { */ @Test public void maxDiffShouldBeSet() { - ConfigHeatmap confHm1 = new ConfigHeatmap(); + HeatmapConfig confHm1 = new HeatmapConfig(); assertEquals("getMaxDiff[0] sollte 1 zurückgeben", 1, confHm1.getMaxDiff()[0], 0.0001f); assertEquals("getMaxDiff[1] sollte 1 zurückgeben", 1, confHm1.getMaxDiff()[1], 0.0001f); assertEquals("getMaxDiff[2] sollte 0 zurückgeben", 0, confHm1.getMaxDiff()[2], 0.0001f); - ConfigHeatmap confHm2 = new ConfigHeatmap(); + HeatmapConfig confHm2 = new HeatmapConfig(); assertTrue("setMaxDiff sollte True zurückgeben", confHm2.setMaxDiff(new float[] { 0.0f, 0.65f, 0.2f })); - ConfigHeatmap confHm3 = new ConfigHeatmap(); + HeatmapConfig confHm3 = new HeatmapConfig(); confHm3.setMaxDiff(new float[] { 0.2f, 1.0f, 0.5f }); assertEquals("getMaxDiff[0] sollte 0.2 zurückgeben", 0.2f, confHm3.getMaxDiff()[0], 0.0001f); @@ -176,15 +178,15 @@ public void maxDiffShouldBeSet() { assertEquals("getMaxDiff[2] sollte 0.5 zurückgeben", 0.5f, confHm3.getMaxDiff()[2], 0.0001f); - ConfigHeatmap confHm4 = new ConfigHeatmap(); + HeatmapConfig confHm4 = new HeatmapConfig(); assertFalse("setMaxDiff sollte False zurückgeben", confHm4.setMaxDiff(new float[] { -1, 0, 1 })); - ConfigHeatmap confHm5 = new ConfigHeatmap(); + HeatmapConfig confHm5 = new HeatmapConfig(); assertFalse("setMaxDiff sollte False zurückgeben", confHm5.setMaxDiff(new float[] { 0.5f, 1.3f, 1 })); - ConfigHeatmap confHm6 = new ConfigHeatmap(); + HeatmapConfig confHm6 = new HeatmapConfig(); assertFalse("setMaxDiff sollte False zurückgeben", confHm6.setMaxDiff(new float[] { 0.5f, 1.3f, -1 })); } diff --git a/src/test/java/github/weichware10/analyse/DiagrammTest.java b/src/test/java/github/weichware10/analyse/DiagrammTest.java index 8aa7c99..026bf75 100644 --- a/src/test/java/github/weichware10/analyse/DiagrammTest.java +++ b/src/test/java/github/weichware10/analyse/DiagrammTest.java @@ -2,6 +2,8 @@ import static org.junit.Assert.assertEquals; +import github.weichware10.analyse.config.DiagramConfig; +import github.weichware10.analyse.logic.Diagram; import github.weichware10.util.Enums.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; @@ -15,25 +17,25 @@ public class DiagrammTest { */ @Test public void createRelFreqImgAreaShouldWork() { - Diagramm dia1 = new Diagramm( + Diagram dia1 = new Diagram( new TrialData(ToolType.ZOOMMAPS, "1", "3"), - new ConfigDiagramm()); + new DiagramConfig()); assertEquals( "createRelFreqImgAre sollte .../diagramm/RELFRQIMGAREA_ZOOMMAPS_1 zurückgeben", ".../diagramm/RELFRQIMGAREA_ZOOMMAPS_1.jpg", dia1.createRelFreqImgArea()); - Diagramm dia2 = new Diagramm( + Diagram dia2 = new Diagram( new TrialData(ToolType.EYETRACKING, "5", "3"), - new ConfigDiagramm()); + new DiagramConfig()); assertEquals( "createRelFreqImgAre sollte .../diagramm/RELFRQIMGAREA_EYETRACKING_5 zurückgeben", ".../diagramm/RELFRQIMGAREA_EYETRACKING_5.jpg", dia2.createRelFreqImgArea()); - Diagramm dia3 = new Diagramm( + Diagram dia3 = new Diagram( new TrialData(ToolType.CODECHARTS, "132", "3"), - new ConfigDiagramm()); + new DiagramConfig()); assertEquals( "createRelFreqImgAre sollte .../diagramm/RELFRQIMGAREA_CODECHARTS_132 zurückgeben", ".../diagramm/RELFRQIMGAREA_CODECHARTS_132.jpg", @@ -45,24 +47,24 @@ public void createRelFreqImgAreaShouldWork() { */ @Test public void createViewTimeDistrSouldWork() { - Diagramm dia1 = new Diagramm( + Diagram dia1 = new Diagram( new TrialData(ToolType.ZOOMMAPS, "1", "3"), - new ConfigDiagramm()); + new DiagramConfig()); assertEquals("createViewTimeDistr sollte .../diagramm/VIEWTIMEDISTR_ZOOMMAPS_1 zurückgeben", ".../diagramm/VIEWTIMEDISTR_ZOOMMAPS_1.jpg", dia1.createViewTimeDistr()); - Diagramm dia2 = new Diagramm( + Diagram dia2 = new Diagram( new TrialData(ToolType.EYETRACKING, "5", "3"), - new ConfigDiagramm()); + new DiagramConfig()); assertEquals( "createViewTimeDistr sollte .../diagramm/VIEWTIMEDISTR_EYETRACKING_5 zurückgeben", ".../diagramm/VIEWTIMEDISTR_EYETRACKING_5.jpg", dia2.createViewTimeDistr()); - Diagramm dia3 = new Diagramm( + Diagram dia3 = new Diagram( new TrialData(ToolType.CODECHARTS, "132", "3"), - new ConfigDiagramm()); + new DiagramConfig()); assertEquals( "createViewTimeDistr sollte .../diagramm/VIEWTIMEDISTR_CODECHARTS_132 zurückgeben", ".../diagramm/VIEWTIMEDISTR_CODECHARTS_132.jpg", diff --git a/src/test/java/github/weichware10/analyse/HeatmapTest.java b/src/test/java/github/weichware10/analyse/HeatmapTest.java index 8137319..c912ee2 100644 --- a/src/test/java/github/weichware10/analyse/HeatmapTest.java +++ b/src/test/java/github/weichware10/analyse/HeatmapTest.java @@ -2,6 +2,8 @@ import static org.junit.Assert.assertEquals; +import github.weichware10.analyse.config.HeatmapConfig; +import github.weichware10.analyse.logic.Heatmap; import github.weichware10.util.Enums.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; @@ -17,19 +19,19 @@ public class HeatmapTest { public void createHeatmapShouldWork() { Heatmap hm1 = new Heatmap( new TrialData(ToolType.ZOOMMAPS, "1", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); assertEquals("createHeatMap sollte .../heatmap/HEATMAP_ZOOMMAPS_1.jpg ausgeben", ".../heatmap/HEATMAP_ZOOMMAPS_1.jpg", hm1.createHeatmap()); Heatmap hm2 = new Heatmap( new TrialData(ToolType.EYETRACKING, "7", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); assertEquals("createHeatMap sollte .../heatmap/HEATMAP_EYETRACKING_7.jpg ausgeben", ".../heatmap/HEATMAP_EYETRACKING_7.jpg", hm2.createHeatmap()); Heatmap hm3 = new Heatmap( new TrialData(ToolType.CODECHARTS, "3", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); assertEquals("createHeatMap sollte .../heatmap/HEATMAP_CODECHARTS_3.jpg ausgeben", ".../heatmap/HEATMAP_CODECHARTS_3.jpg", hm3.createHeatmap()); } @@ -41,10 +43,10 @@ public void createHeatmapShouldWork() { public void compHeatmapsShouldWork() { Heatmap hm1 = new Heatmap( new TrialData(ToolType.CODECHARTS, "4", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); Heatmap hm2 = new Heatmap( new TrialData(ToolType.EYETRACKING, "2", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); assertEquals( "compHeatmaps sollte .../heatmap/COMPHEATMAP_CODECHARTS_1_EYETRACKING_2.jpg ausgeb", ".../heatmap/COMPHEATMAP_CODECHARTS_4_EYETRACKING_2.jpg", @@ -52,10 +54,10 @@ public void compHeatmapsShouldWork() { Heatmap hm3 = new Heatmap( new TrialData(ToolType.ZOOMMAPS, "1", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); Heatmap hm4 = new Heatmap( new TrialData(ToolType.CODECHARTS, "6", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); assertEquals( "compHeatmaps sollte .../heatmap/COMPHEATMAP_ZOOMMAPS_1_CODECHARTS_6.jpg ausgeben", ".../heatmap/COMPHEATMAP_ZOOMMAPS_1_CODECHARTS_6.jpg", @@ -63,10 +65,10 @@ public void compHeatmapsShouldWork() { Heatmap hm5 = new Heatmap( new TrialData(ToolType.EYETRACKING, "8", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); Heatmap hm6 = new Heatmap( new TrialData(ToolType.ZOOMMAPS, "12", "3"), - new ConfigHeatmap()); + new HeatmapConfig()); assertEquals( "sollte .../heatmap/COMPHEATMAP_EYETRACKING_8_ZOOMMAPS_12.jpg ausgeben", ".../heatmap/COMPHEATMAP_EYETRACKING_8_ZOOMMAPS_12.jpg", diff --git a/src/test/java/github/weichware10/analyse/VerlaufTest.java b/src/test/java/github/weichware10/analyse/VerlaufTest.java index 9ed0c64..6333bbf 100644 --- a/src/test/java/github/weichware10/analyse/VerlaufTest.java +++ b/src/test/java/github/weichware10/analyse/VerlaufTest.java @@ -2,6 +2,7 @@ import static org.junit.Assert.assertEquals; +import github.weichware10.analyse.logic.Verlauf; import github.weichware10.util.Enums.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; From fd6d350cee715f0e9a76d31a95f960bb0a5ebb35 Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Wed, 5 Jan 2022 21:07:01 +0100 Subject: [PATCH 02/87] [test] Tests an Main angepasst --- .../DiagramConfigTest.java} | 6 ++---- .../HeatmapConfigTest.java} | 6 ++---- .../github/weichware10/analyse/{ => logic}/ClientTest.java | 3 +-- .../analyse/{DiagrammTest.java => logic/DiagramTest.java} | 5 ++--- .../github/weichware10/analyse/{ => logic}/HeatmapTest.java | 3 +-- .../github/weichware10/analyse/{ => logic}/VerlaufTest.java | 3 +-- 6 files changed, 9 insertions(+), 17 deletions(-) rename src/test/java/github/weichware10/analyse/{ConfigDiagrammTest.java => config/DiagramConfigTest.java} (97%) rename src/test/java/github/weichware10/analyse/{ConfigHeatmapTest.java => config/HeatmapConfigTest.java} (98%) rename src/test/java/github/weichware10/analyse/{ => logic}/ClientTest.java (98%) rename src/test/java/github/weichware10/analyse/{DiagrammTest.java => logic/DiagramTest.java} (96%) rename src/test/java/github/weichware10/analyse/{ => logic}/HeatmapTest.java (97%) rename src/test/java/github/weichware10/analyse/{ => logic}/VerlaufTest.java (93%) diff --git a/src/test/java/github/weichware10/analyse/ConfigDiagrammTest.java b/src/test/java/github/weichware10/analyse/config/DiagramConfigTest.java similarity index 97% rename from src/test/java/github/weichware10/analyse/ConfigDiagrammTest.java rename to src/test/java/github/weichware10/analyse/config/DiagramConfigTest.java index eeba9e2..a8f0ef9 100644 --- a/src/test/java/github/weichware10/analyse/ConfigDiagrammTest.java +++ b/src/test/java/github/weichware10/analyse/config/DiagramConfigTest.java @@ -1,4 +1,4 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.config; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -6,12 +6,10 @@ import org.junit.Test; -import github.weichware10.analyse.config.DiagramConfig; - /** * Unit Test für Klasse ConfigDiagramm. */ -public class ConfigDiagrammTest { +public class DiagramConfigTest { /** * Testet, ob Anzahl Felder gesetzt wird. */ diff --git a/src/test/java/github/weichware10/analyse/ConfigHeatmapTest.java b/src/test/java/github/weichware10/analyse/config/HeatmapConfigTest.java similarity index 98% rename from src/test/java/github/weichware10/analyse/ConfigHeatmapTest.java rename to src/test/java/github/weichware10/analyse/config/HeatmapConfigTest.java index eafc91d..1293c0c 100644 --- a/src/test/java/github/weichware10/analyse/ConfigHeatmapTest.java +++ b/src/test/java/github/weichware10/analyse/config/HeatmapConfigTest.java @@ -1,4 +1,4 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.config; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -6,12 +6,10 @@ import org.junit.Test; -import github.weichware10.analyse.config.HeatmapConfig; - /** * Unit Test für Klasse ConfigHeatmap. */ -public class ConfigHeatmapTest { +public class HeatmapConfigTest { /** * Testet, ob minimale Farbe gesetzt wird. */ diff --git a/src/test/java/github/weichware10/analyse/ClientTest.java b/src/test/java/github/weichware10/analyse/logic/ClientTest.java similarity index 98% rename from src/test/java/github/weichware10/analyse/ClientTest.java rename to src/test/java/github/weichware10/analyse/logic/ClientTest.java index db48491..0f72dfb 100644 --- a/src/test/java/github/weichware10/analyse/ClientTest.java +++ b/src/test/java/github/weichware10/analyse/logic/ClientTest.java @@ -1,10 +1,9 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import github.weichware10.analyse.enums.AnalyseType; -import github.weichware10.analyse.logic.Client; import github.weichware10.util.Enums.ToolType; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/test/java/github/weichware10/analyse/DiagrammTest.java b/src/test/java/github/weichware10/analyse/logic/DiagramTest.java similarity index 96% rename from src/test/java/github/weichware10/analyse/DiagrammTest.java rename to src/test/java/github/weichware10/analyse/logic/DiagramTest.java index 026bf75..e537a41 100644 --- a/src/test/java/github/weichware10/analyse/DiagrammTest.java +++ b/src/test/java/github/weichware10/analyse/logic/DiagramTest.java @@ -1,9 +1,8 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; import static org.junit.Assert.assertEquals; import github.weichware10.analyse.config.DiagramConfig; -import github.weichware10.analyse.logic.Diagram; import github.weichware10.util.Enums.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; @@ -11,7 +10,7 @@ /** * Unit Test für Klasse Diagramm. */ -public class DiagrammTest { +public class DiagramTest { /** * Testet, ob String erstellt und ausgegeben wird. */ diff --git a/src/test/java/github/weichware10/analyse/HeatmapTest.java b/src/test/java/github/weichware10/analyse/logic/HeatmapTest.java similarity index 97% rename from src/test/java/github/weichware10/analyse/HeatmapTest.java rename to src/test/java/github/weichware10/analyse/logic/HeatmapTest.java index c912ee2..dc2fd3a 100644 --- a/src/test/java/github/weichware10/analyse/HeatmapTest.java +++ b/src/test/java/github/weichware10/analyse/logic/HeatmapTest.java @@ -1,9 +1,8 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; import static org.junit.Assert.assertEquals; import github.weichware10.analyse.config.HeatmapConfig; -import github.weichware10.analyse.logic.Heatmap; import github.weichware10.util.Enums.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; diff --git a/src/test/java/github/weichware10/analyse/VerlaufTest.java b/src/test/java/github/weichware10/analyse/logic/VerlaufTest.java similarity index 93% rename from src/test/java/github/weichware10/analyse/VerlaufTest.java rename to src/test/java/github/weichware10/analyse/logic/VerlaufTest.java index 6333bbf..78e5eb3 100644 --- a/src/test/java/github/weichware10/analyse/VerlaufTest.java +++ b/src/test/java/github/weichware10/analyse/logic/VerlaufTest.java @@ -1,8 +1,7 @@ -package github.weichware10.analyse; +package github.weichware10.analyse.logic; import static org.junit.Assert.assertEquals; -import github.weichware10.analyse.logic.Verlauf; import github.weichware10.util.Enums.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; From 9e9e11d0d36336139973e938abb98fe20766c1cd Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Thu, 6 Jan 2022 15:32:20 +0100 Subject: [PATCH 03/87] [feat] Anfang der abstrakten GUI-Klasse --- .../java/github/weichware10/analyse/Main.java | 8 +- .../github/weichware10/analyse/gui/App.java | 14 +++ .../analyse/gui/AppController.java | 14 +++ .../analyse/gui/util/AbsScene.java | 96 +++++++++++++++++++ .../analyse/gui/util/AbsSceneController.java | 21 ++++ .../github/weichware10/analyse/gui/App.fxml | 10 ++ 6 files changed, 161 insertions(+), 2 deletions(-) create mode 100644 src/main/java/github/weichware10/analyse/gui/App.java create mode 100644 src/main/java/github/weichware10/analyse/gui/AppController.java create mode 100644 src/main/java/github/weichware10/analyse/gui/util/AbsScene.java create mode 100644 src/main/java/github/weichware10/analyse/gui/util/AbsSceneController.java create mode 100644 src/main/resources/github/weichware10/analyse/gui/App.fxml diff --git a/src/main/java/github/weichware10/analyse/Main.java b/src/main/java/github/weichware10/analyse/Main.java index dbf9cf3..c2888ef 100644 --- a/src/main/java/github/weichware10/analyse/Main.java +++ b/src/main/java/github/weichware10/analyse/Main.java @@ -1,5 +1,6 @@ package github.weichware10.analyse; +import github.weichware10.analyse.gui.App; import javafx.application.Application; import javafx.scene.image.Image; import javafx.stage.Stage; @@ -8,15 +9,18 @@ * Analyse GUI. */ public class Main extends Application { + + public static Stage primaryStage; + public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { - primaryStage.setTitle("Analyse"); + Main.primaryStage = primaryStage; + App.start(); primaryStage.getIcons().add(new Image("app-icon.png")); - //Zeigt das Fenster primaryStage.show(); } } diff --git a/src/main/java/github/weichware10/analyse/gui/App.java b/src/main/java/github/weichware10/analyse/gui/App.java new file mode 100644 index 0000000..5a25f71 --- /dev/null +++ b/src/main/java/github/weichware10/analyse/gui/App.java @@ -0,0 +1,14 @@ +package github.weichware10.analyse.gui; + +import github.weichware10.analyse.Main; +import github.weichware10.analyse.gui.util.AbsScene; + +/** + * Der Hauptbildschirm der App. + */ +public class App extends AbsScene { + + public static void start() { + start(Main.primaryStage, App.class.getResource("App.fxml"), "Analyse", null, 300, 300); + } +} diff --git a/src/main/java/github/weichware10/analyse/gui/AppController.java b/src/main/java/github/weichware10/analyse/gui/AppController.java new file mode 100644 index 0000000..0562899 --- /dev/null +++ b/src/main/java/github/weichware10/analyse/gui/AppController.java @@ -0,0 +1,14 @@ +package github.weichware10.analyse.gui; + +import github.weichware10.analyse.gui.util.AbsSceneController; + +/** + * Controller für {@link App}. + */ +public class AppController extends AbsSceneController { + + @Override + protected void initialize() { + ; // nothing yet + } +} diff --git a/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java b/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java new file mode 100644 index 0000000..0601de7 --- /dev/null +++ b/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java @@ -0,0 +1,96 @@ +package github.weichware10.analyse.gui.util; + +import github.weichware10.util.Logger; +import java.net.URL; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.control.MenuBar; +import javafx.scene.layout.BorderPane; +import javafx.stage.Stage; + +/** + * Abstrakte Klasse, von der alle Szenen erben. Diese Klasse lädt vorallem FXML-Dateien. + */ +public abstract class AbsScene { + + /** + * URL der FXML-Datei. + */ + protected static URL fxml; + private static Scene scene = null; + private static Parent root = null; + private static boolean initialized = false; + + /** + * lädt die Szene intern und gibt die Instanz der Controller-Klasse zurück. + * Falls diese benötigt wird, kann also manuell initialize() aufgerufen werden. + * Das sollte jedoch in der Regel nicht nötig sein. + * + * @param fxml - URL der FXML-Datei + * @return das Controller-Objekt. + */ + protected static AbsSceneController initialize(URL fxml) { + + FXMLLoader loader = new FXMLLoader(fxml); + Logger.debug(fxml.toString()); + + try { + root = loader.load(); + } catch (Exception e) { + Logger.error("Error when loading " + fxml, e, true); + System.exit(-1); + } + + scene = new Scene(root); + + initialized = true; + return loader.getController(); + } + + /** + * Setzt die MenuBar, falls das in initialize geladene root-Objekt BorderPane ist. + * + * @param menuBar - die zu setzende Menüleiste + */ + public static void setMenuBar(MenuBar menuBar) { + if (root != null && root.getClass().isInstance(BorderPane.class)) { + BorderPane borderPane = (BorderPane) root; + borderPane.setTop(menuBar); + } + } + + /** + * Zeigt die Szene an. + * + * @param primaryStage - das Hauptfenster + */ + public static void start(Stage primaryStage, URL fxml, String title, MenuBar menuBar, + Integer width, Integer height) { + if (primaryStage == null || title == null || fxml == null) { + throw new NullPointerException( + String.format("Stage primaryStage (%s), ", + (primaryStage != null) ? primaryStage.toString() : "null") + + String.format("String title (%s) ", + (title != null) ? title : "null") + + String.format("and URL fxml (%s) are required", + (fxml != null) ? fxml.toString() : "null")); + } + // aus FXML laden + if (!initialized) { + initialize(fxml); + } + // Menüleiste setzen + if (menuBar != null) { + setMenuBar(menuBar); + } + // Größe einstellen + if (width != null && height != null) { + primaryStage.setWidth(width); + primaryStage.setHeight(height); + } + // auf primaryStage setzen + primaryStage.setScene(scene); + primaryStage.setTitle(title); + } +} diff --git a/src/main/java/github/weichware10/analyse/gui/util/AbsSceneController.java b/src/main/java/github/weichware10/analyse/gui/util/AbsSceneController.java new file mode 100644 index 0000000..5fbb666 --- /dev/null +++ b/src/main/java/github/weichware10/analyse/gui/util/AbsSceneController.java @@ -0,0 +1,21 @@ +package github.weichware10.analyse.gui.util; + +import java.net.URL; +import java.util.ResourceBundle; +import javafx.fxml.FXML; + + +/** + * abstrakte Klasse für Controller-Klassen. + */ +public abstract class AbsSceneController { + + @FXML + protected ResourceBundle resources; + @FXML + protected URL location; + + @FXML + protected abstract void initialize(); + +} diff --git a/src/main/resources/github/weichware10/analyse/gui/App.fxml b/src/main/resources/github/weichware10/analyse/gui/App.fxml new file mode 100644 index 0000000..0934499 --- /dev/null +++ b/src/main/resources/github/weichware10/analyse/gui/App.fxml @@ -0,0 +1,10 @@ + + + + + + +
+
+
From 16bbc4551e1e5c6d5b565e7ae77bace4272da689 Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Thu, 6 Jan 2022 15:33:03 +0100 Subject: [PATCH 04/87] [style] unnecessary debug --- src/main/java/github/weichware10/analyse/gui/util/AbsScene.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java b/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java index 0601de7..e835499 100644 --- a/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java +++ b/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java @@ -33,7 +33,6 @@ public abstract class AbsScene { protected static AbsSceneController initialize(URL fxml) { FXMLLoader loader = new FXMLLoader(fxml); - Logger.debug(fxml.toString()); try { root = loader.load(); From 2ad2b1ad99d7cac264c275163efa8af9576cd272 Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Thu, 6 Jan 2022 18:59:14 +0100 Subject: [PATCH 05/87] [feat] Main Screen + MenuBar --- .../github/weichware10/analyse/gui/App.java | 15 ++++++- .../weichware10/analyse/gui/MainMenuBar.java | 24 ++++++++++ .../analyse/gui/util/AbsScene.java | 45 +++++++------------ .../weichware10/analyse/gui/MainMenuBar.fxml | 25 +++++++++++ 4 files changed, 80 insertions(+), 29 deletions(-) create mode 100644 src/main/java/github/weichware10/analyse/gui/MainMenuBar.java create mode 100644 src/main/resources/github/weichware10/analyse/gui/MainMenuBar.fxml diff --git a/src/main/java/github/weichware10/analyse/gui/App.java b/src/main/java/github/weichware10/analyse/gui/App.java index 5a25f71..acdc0ec 100644 --- a/src/main/java/github/weichware10/analyse/gui/App.java +++ b/src/main/java/github/weichware10/analyse/gui/App.java @@ -2,13 +2,26 @@ import github.weichware10.analyse.Main; import github.weichware10.analyse.gui.util.AbsScene; +import javafx.scene.Parent; /** * Der Hauptbildschirm der App. */ public class App extends AbsScene { + private static Parent root; + + /** + * Startet die App. + */ public static void start() { - start(Main.primaryStage, App.class.getResource("App.fxml"), "Analyse", null, 300, 300); + root = start(Main.primaryStage, + App.class.getResource("App.fxml"), + root, + "Analyse", + MainMenuBar.getMenuBar(), + 300, + 300); } + } diff --git a/src/main/java/github/weichware10/analyse/gui/MainMenuBar.java b/src/main/java/github/weichware10/analyse/gui/MainMenuBar.java new file mode 100644 index 0000000..a9f511b --- /dev/null +++ b/src/main/java/github/weichware10/analyse/gui/MainMenuBar.java @@ -0,0 +1,24 @@ +package github.weichware10.analyse.gui; + +import github.weichware10.analyse.gui.util.AbsScene; +import javafx.scene.control.MenuBar; + +/** + * Haupt-Menüleiste. + */ +public class MainMenuBar extends AbsScene { + + private static MenuBar root; + + /** + * Initialisiert die MenuBar-Instanz, falls noch nicht vorhanden. + * + * @return die MenuBar-Instanz + */ + public static MenuBar getMenuBar() { + if (root == null) { + root = (MenuBar) initialize(MainMenuBar.class.getResource("MainMenuBar.fxml")); + } + return root; + } +} diff --git a/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java b/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java index e835499..3d7463b 100644 --- a/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java +++ b/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java @@ -15,25 +15,16 @@ public abstract class AbsScene { /** - * URL der FXML-Datei. - */ - protected static URL fxml; - private static Scene scene = null; - private static Parent root = null; - private static boolean initialized = false; - - /** - * lädt die Szene intern und gibt die Instanz der Controller-Klasse zurück. - * Falls diese benötigt wird, kann also manuell initialize() aufgerufen werden. - * Das sollte jedoch in der Regel nicht nötig sein. + * lädt die Szene intern und gibt die root-Instanz zurück. * * @param fxml - URL der FXML-Datei * @return das Controller-Objekt. */ - protected static AbsSceneController initialize(URL fxml) { + protected static Parent initialize(URL fxml) { FXMLLoader loader = new FXMLLoader(fxml); + Parent root = null; try { root = loader.load(); } catch (Exception e) { @@ -41,10 +32,7 @@ protected static AbsSceneController initialize(URL fxml) { System.exit(-1); } - scene = new Scene(root); - - initialized = true; - return loader.getController(); + return root; } /** @@ -52,8 +40,8 @@ protected static AbsSceneController initialize(URL fxml) { * * @param menuBar - die zu setzende Menüleiste */ - public static void setMenuBar(MenuBar menuBar) { - if (root != null && root.getClass().isInstance(BorderPane.class)) { + public static void setMenuBar(MenuBar menuBar, Parent root) { + if (root != null && root instanceof BorderPane) { BorderPane borderPane = (BorderPane) root; borderPane.setTop(menuBar); } @@ -64,24 +52,24 @@ public static void setMenuBar(MenuBar menuBar) { * * @param primaryStage - das Hauptfenster */ - public static void start(Stage primaryStage, URL fxml, String title, MenuBar menuBar, + public static Parent start(Stage primaryStage, URL fxml, Parent root, + String title, MenuBar menuBar, Integer width, Integer height) { if (primaryStage == null || title == null || fxml == null) { throw new NullPointerException( String.format("Stage primaryStage (%s), ", (primaryStage != null) ? primaryStage.toString() : "null") - + String.format("String title (%s) ", - (title != null) ? title : "null") - + String.format("and URL fxml (%s) are required", - (fxml != null) ? fxml.toString() : "null")); + + String.format("String title (%s), ", + (title != null) ? title : "null") + + String.format("and URL fxml (%s) are required", + (fxml != null) ? fxml.toString() : "null")); } - // aus FXML laden - if (!initialized) { - initialize(fxml); + if (root == null) { + root = initialize(fxml); } // Menüleiste setzen if (menuBar != null) { - setMenuBar(menuBar); + setMenuBar(menuBar, root); } // Größe einstellen if (width != null && height != null) { @@ -89,7 +77,8 @@ public static void start(Stage primaryStage, URL fxml, String title, MenuBar men primaryStage.setHeight(height); } // auf primaryStage setzen - primaryStage.setScene(scene); + primaryStage.setScene(new Scene(root)); primaryStage.setTitle(title); + return root; } } diff --git a/src/main/resources/github/weichware10/analyse/gui/MainMenuBar.fxml b/src/main/resources/github/weichware10/analyse/gui/MainMenuBar.fxml new file mode 100644 index 0000000..7f18901 --- /dev/null +++ b/src/main/resources/github/weichware10/analyse/gui/MainMenuBar.fxml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + From 732b86f3ef2a630809f2499b1faa35d4c1ce62fe Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Fri, 7 Jan 2022 15:11:56 +0100 Subject: [PATCH 06/87] [chore] util version angepasst --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7b2f730..8792da0 100644 --- a/pom.xml +++ b/pom.xml @@ -78,7 +78,7 @@ com.github.weichware10 util - v0.2 + v2.1 From 0c1ff7fbc6156086848db0cbfa6024dcf235feb8 Mon Sep 17 00:00:00 2001 From: joshuajeschek Date: Fri, 7 Jan 2022 21:13:45 +0100 Subject: [PATCH 07/87] [fix] util oopsies --- src/main/java/github/weichware10/analyse/logic/Client.java | 2 +- src/test/java/github/weichware10/analyse/logic/ClientTest.java | 2 +- src/test/java/github/weichware10/analyse/logic/DiagramTest.java | 2 +- src/test/java/github/weichware10/analyse/logic/HeatmapTest.java | 2 +- src/test/java/github/weichware10/analyse/logic/VerlaufTest.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/github/weichware10/analyse/logic/Client.java b/src/main/java/github/weichware10/analyse/logic/Client.java index 6321d3b..61e4f30 100644 --- a/src/main/java/github/weichware10/analyse/logic/Client.java +++ b/src/main/java/github/weichware10/analyse/logic/Client.java @@ -3,7 +3,7 @@ import github.weichware10.analyse.config.DiagramConfig; import github.weichware10.analyse.config.HeatmapConfig; import github.weichware10.analyse.enums.AnalyseType; -import github.weichware10.util.Enums.ToolType; +import github.weichware10.util.ToolType; import github.weichware10.util.data.TrialData; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/test/java/github/weichware10/analyse/logic/ClientTest.java b/src/test/java/github/weichware10/analyse/logic/ClientTest.java index 0f72dfb..f803353 100644 --- a/src/test/java/github/weichware10/analyse/logic/ClientTest.java +++ b/src/test/java/github/weichware10/analyse/logic/ClientTest.java @@ -4,7 +4,7 @@ import static org.junit.Assert.assertTrue; import github.weichware10.analyse.enums.AnalyseType; -import github.weichware10.util.Enums.ToolType; +import github.weichware10.util.ToolType; import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/github/weichware10/analyse/logic/DiagramTest.java b/src/test/java/github/weichware10/analyse/logic/DiagramTest.java index e537a41..3481b56 100644 --- a/src/test/java/github/weichware10/analyse/logic/DiagramTest.java +++ b/src/test/java/github/weichware10/analyse/logic/DiagramTest.java @@ -3,7 +3,7 @@ import static org.junit.Assert.assertEquals; import github.weichware10.analyse.config.DiagramConfig; -import github.weichware10.util.Enums.ToolType; +import github.weichware10.util.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; diff --git a/src/test/java/github/weichware10/analyse/logic/HeatmapTest.java b/src/test/java/github/weichware10/analyse/logic/HeatmapTest.java index dc2fd3a..86bea8e 100644 --- a/src/test/java/github/weichware10/analyse/logic/HeatmapTest.java +++ b/src/test/java/github/weichware10/analyse/logic/HeatmapTest.java @@ -3,7 +3,7 @@ import static org.junit.Assert.assertEquals; import github.weichware10.analyse.config.HeatmapConfig; -import github.weichware10.util.Enums.ToolType; +import github.weichware10.util.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; diff --git a/src/test/java/github/weichware10/analyse/logic/VerlaufTest.java b/src/test/java/github/weichware10/analyse/logic/VerlaufTest.java index 78e5eb3..5a723ac 100644 --- a/src/test/java/github/weichware10/analyse/logic/VerlaufTest.java +++ b/src/test/java/github/weichware10/analyse/logic/VerlaufTest.java @@ -2,7 +2,7 @@ import static org.junit.Assert.assertEquals; -import github.weichware10.util.Enums.ToolType; +import github.weichware10.util.ToolType; import github.weichware10.util.data.TrialData; import org.junit.Test; From cf630bdc9c409d6a144d4b71fc36a5936d59abbf Mon Sep 17 00:00:00 2001 From: justinexner <92640370+justinexner@users.noreply.github.com> Date: Sat, 8 Jan 2022 10:28:26 +0100 Subject: [PATCH 08/87] [refactor] App zu LoginWindow umbenannt --- src/main/java/github/weichware10/analyse/Main.java | 4 ++-- .../weichware10/analyse/gui/{App.java => LoginWindow.java} | 4 ++-- .../gui/{AppController.java => LoginWindowController.java} | 4 ++-- .../weichware10/analyse/gui/{App.fxml => LoginWindow.fxml} | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename src/main/java/github/weichware10/analyse/gui/{App.java => LoginWindow.java} (81%) rename src/main/java/github/weichware10/analyse/gui/{AppController.java => LoginWindowController.java} (65%) rename src/main/resources/github/weichware10/analyse/gui/{App.fxml => LoginWindow.fxml} (92%) diff --git a/src/main/java/github/weichware10/analyse/Main.java b/src/main/java/github/weichware10/analyse/Main.java index c2888ef..6b0706a 100644 --- a/src/main/java/github/weichware10/analyse/Main.java +++ b/src/main/java/github/weichware10/analyse/Main.java @@ -1,6 +1,6 @@ package github.weichware10.analyse; -import github.weichware10.analyse.gui.App; +import github.weichware10.analyse.gui.LoginWindow; import javafx.application.Application; import javafx.scene.image.Image; import javafx.stage.Stage; @@ -19,7 +19,7 @@ public static void main(String[] args) { @Override public void start(Stage primaryStage) throws Exception { Main.primaryStage = primaryStage; - App.start(); + LoginWindow.start(); primaryStage.getIcons().add(new Image("app-icon.png")); primaryStage.show(); } diff --git a/src/main/java/github/weichware10/analyse/gui/App.java b/src/main/java/github/weichware10/analyse/gui/LoginWindow.java similarity index 81% rename from src/main/java/github/weichware10/analyse/gui/App.java rename to src/main/java/github/weichware10/analyse/gui/LoginWindow.java index acdc0ec..63cd0d3 100644 --- a/src/main/java/github/weichware10/analyse/gui/App.java +++ b/src/main/java/github/weichware10/analyse/gui/LoginWindow.java @@ -7,7 +7,7 @@ /** * Der Hauptbildschirm der App. */ -public class App extends AbsScene { +public class LoginWindow extends AbsScene { private static Parent root; @@ -16,7 +16,7 @@ public class App extends AbsScene { */ public static void start() { root = start(Main.primaryStage, - App.class.getResource("App.fxml"), + LoginWindow.class.getResource("LoginWindow.fxml"), root, "Analyse", MainMenuBar.getMenuBar(), diff --git a/src/main/java/github/weichware10/analyse/gui/AppController.java b/src/main/java/github/weichware10/analyse/gui/LoginWindowController.java similarity index 65% rename from src/main/java/github/weichware10/analyse/gui/AppController.java rename to src/main/java/github/weichware10/analyse/gui/LoginWindowController.java index 0562899..1b584b1 100644 --- a/src/main/java/github/weichware10/analyse/gui/AppController.java +++ b/src/main/java/github/weichware10/analyse/gui/LoginWindowController.java @@ -3,9 +3,9 @@ import github.weichware10.analyse.gui.util.AbsSceneController; /** - * Controller für {@link App}. + * Controller für {@link LoginWindow}. */ -public class AppController extends AbsSceneController { +public class LoginWindowController extends AbsSceneController { @Override protected void initialize() { diff --git a/src/main/resources/github/weichware10/analyse/gui/App.fxml b/src/main/resources/github/weichware10/analyse/gui/LoginWindow.fxml similarity index 92% rename from src/main/resources/github/weichware10/analyse/gui/App.fxml rename to src/main/resources/github/weichware10/analyse/gui/LoginWindow.fxml index 0934499..915f61c 100644 --- a/src/main/resources/github/weichware10/analyse/gui/App.fxml +++ b/src/main/resources/github/weichware10/analyse/gui/LoginWindow.fxml @@ -3,7 +3,7 @@ - +
From a6332012ba2a6328841dcd1e671e8ae6ede56f48 Mon Sep 17 00:00:00 2001 From: justinexner <92640370+justinexner@users.noreply.github.com> Date: Sat, 8 Jan 2022 12:28:04 +0100 Subject: [PATCH 09/87] [feat] LoginWindow done --- .../java/github/weichware10/analyse/Main.java | 4 +- .../github/weichware10/analyse/gui/Login.java | 48 +++++++++++++++++++ .../analyse/gui/LoginController.java | 45 +++++++++++++++++ .../weichware10/analyse/gui/LoginWindow.java | 27 ----------- .../analyse/gui/LoginWindowController.java | 14 ------ .../github/weichware10/analyse/gui/Login.fxml | 30 ++++++++++++ .../weichware10/analyse/gui/LoginWindow.fxml | 10 ---- 7 files changed, 125 insertions(+), 53 deletions(-) create mode 100644 src/main/java/github/weichware10/analyse/gui/Login.java create mode 100644 src/main/java/github/weichware10/analyse/gui/LoginController.java delete mode 100644 src/main/java/github/weichware10/analyse/gui/LoginWindow.java delete mode 100644 src/main/java/github/weichware10/analyse/gui/LoginWindowController.java create mode 100644 src/main/resources/github/weichware10/analyse/gui/Login.fxml delete mode 100644 src/main/resources/github/weichware10/analyse/gui/LoginWindow.fxml diff --git a/src/main/java/github/weichware10/analyse/Main.java b/src/main/java/github/weichware10/analyse/Main.java index 6b0706a..d8af251 100644 --- a/src/main/java/github/weichware10/analyse/Main.java +++ b/src/main/java/github/weichware10/analyse/Main.java @@ -1,6 +1,6 @@ package github.weichware10.analyse; -import github.weichware10.analyse.gui.LoginWindow; +import github.weichware10.analyse.gui.Login; import javafx.application.Application; import javafx.scene.image.Image; import javafx.stage.Stage; @@ -19,7 +19,7 @@ public static void main(String[] args) { @Override public void start(Stage primaryStage) throws Exception { Main.primaryStage = primaryStage; - LoginWindow.start(); + Login.start(); primaryStage.getIcons().add(new Image("app-icon.png")); primaryStage.show(); } diff --git a/src/main/java/github/weichware10/analyse/gui/Login.java b/src/main/java/github/weichware10/analyse/gui/Login.java new file mode 100644 index 0000000..717a88a --- /dev/null +++ b/src/main/java/github/weichware10/analyse/gui/Login.java @@ -0,0 +1,48 @@ +package github.weichware10.analyse.gui; + +import github.weichware10.analyse.Main; +import github.weichware10.analyse.gui.util.AbsScene; +import github.weichware10.util.Logger; +import github.weichware10.util.db.DataBaseClient; +import io.github.cdimascio.dotenv.Dotenv; +import javafx.scene.Parent; + +/** + * Der Hauptbildschirm der App. + */ +public class Login extends AbsScene { + public static DataBaseClient dataBaseClient; + + private static Parent root; + + /** + * Startet die App. + */ + public static void start() { + root = start(Main.primaryStage, + Login.class.getResource("Login.fxml"), + root, + "Analyse", + MainMenuBar.getMenuBar(), + 300, + 300); + } + + /** + * Stellt die Verbindung zur Datenbank her. + */ + public static void connectToDatabase(String username, String password, String schema) { + try { + Dotenv dotenv = Dotenv.load(); + String url = dotenv.get("DB_URL"); + dataBaseClient = new DataBaseClient(url, username, password, schema); + } catch (IllegalArgumentException e) { + Logger.error("error when loading env", e); + // auf null setzen, falls die Verbindung vorher angepasst wurde und dies + // gewünscht ist + // zurücksetzen auf dataBaseClient-freien Zustand + dataBaseClient = null; + } + } + +} diff --git a/src/main/java/github/weichware10/analyse/gui/LoginController.java b/src/main/java/github/weichware10/analyse/gui/LoginController.java new file mode 100644 index 0000000..36643ac --- /dev/null +++ b/src/main/java/github/weichware10/analyse/gui/LoginController.java @@ -0,0 +1,45 @@ +package github.weichware10.analyse.gui; + +import github.weichware10.analyse.Main; +import github.weichware10.analyse.gui.util.AbsSceneController; +import javafx.fxml.FXML; +import javafx.scene.control.PasswordField; +import javafx.scene.control.TextField; + +/** + * Controller für {@link Login}. + */ +public class LoginController extends AbsSceneController { + + @FXML + private TextField benutzernameId; + + @FXML + private PasswordField passwortId; + + @FXML + private TextField schemaId; + + @Override + protected void initialize() { + assert benutzernameId != null + : "fx:id=\"benutzernameID\" was not injected: check your FXML file 'LoginWindow.fxml'."; + assert passwortId != null + : "fx:id=\"passwortID\" was not injected: check your FXML file 'LoginWindow.fxml'."; + assert schemaId != null + : "fx:id=\"schemaID\" was not injected: check your FXML file 'LoginWindow.fxml'."; + } + + @FXML + private void loginToDatabase() { + Login.connectToDatabase(benutzernameId.getText(), + passwortId.getText(), + schemaId.getText()); + } + + @FXML + private void closeProgramm() { + Main.primaryStage.close(); + } + +} diff --git a/src/main/java/github/weichware10/analyse/gui/LoginWindow.java b/src/main/java/github/weichware10/analyse/gui/LoginWindow.java deleted file mode 100644 index 63cd0d3..0000000 --- a/src/main/java/github/weichware10/analyse/gui/LoginWindow.java +++ /dev/null @@ -1,27 +0,0 @@ -package github.weichware10.analyse.gui; - -import github.weichware10.analyse.Main; -import github.weichware10.analyse.gui.util.AbsScene; -import javafx.scene.Parent; - -/** - * Der Hauptbildschirm der App. - */ -public class LoginWindow extends AbsScene { - - private static Parent root; - - /** - * Startet die App. - */ - public static void start() { - root = start(Main.primaryStage, - LoginWindow.class.getResource("LoginWindow.fxml"), - root, - "Analyse", - MainMenuBar.getMenuBar(), - 300, - 300); - } - -} diff --git a/src/main/java/github/weichware10/analyse/gui/LoginWindowController.java b/src/main/java/github/weichware10/analyse/gui/LoginWindowController.java deleted file mode 100644 index 1b584b1..0000000 --- a/src/main/java/github/weichware10/analyse/gui/LoginWindowController.java +++ /dev/null @@ -1,14 +0,0 @@ -package github.weichware10.analyse.gui; - -import github.weichware10.analyse.gui.util.AbsSceneController; - -/** - * Controller für {@link LoginWindow}. - */ -public class LoginWindowController extends AbsSceneController { - - @Override - protected void initialize() { - ; // nothing yet - } -} diff --git a/src/main/resources/github/weichware10/analyse/gui/Login.fxml b/src/main/resources/github/weichware10/analyse/gui/Login.fxml new file mode 100644 index 0000000..54cb614 --- /dev/null +++ b/src/main/resources/github/weichware10/analyse/gui/Login.fxml @@ -0,0 +1,30 @@ + + + + + + + + + + + +
+ + + + + + + +
+
diff --git a/src/main/resources/github/weichware10/analyse/gui/LoginWindow.fxml b/src/main/resources/github/weichware10/analyse/gui/LoginWindow.fxml deleted file mode 100644 index 915f61c..0000000 --- a/src/main/resources/github/weichware10/analyse/gui/LoginWindow.fxml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - -
-
-
From 76714d8e4b4c511ddd175c4ee1e445193f871f23 Mon Sep 17 00:00:00 2001 From: justinexner <92640370+justinexner@users.noreply.github.com> Date: Sat, 8 Jan 2022 12:50:55 +0100 Subject: [PATCH 10/87] =?UTF-8?q?[Style]=20Min=20Breite=20und=20H=C3=B6he?= =?UTF-8?q?=20vom=20Fenster=20fest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/github/weichware10/analyse/Main.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/github/weichware10/analyse/Main.java b/src/main/java/github/weichware10/analyse/Main.java index d8af251..b6ecb01 100644 --- a/src/main/java/github/weichware10/analyse/Main.java +++ b/src/main/java/github/weichware10/analyse/Main.java @@ -21,6 +21,9 @@ public void start(Stage primaryStage) throws Exception { Main.primaryStage = primaryStage; Login.start(); primaryStage.getIcons().add(new Image("app-icon.png")); + // FENSTERGRÖẞE + primaryStage.setMinHeight(300); + primaryStage.setMinWidth(300); primaryStage.show(); } } From 1ae595cb3815b6e84263624bf1b2695526ebae4f Mon Sep 17 00:00:00 2001 From: justinexner <92640370+justinexner@users.noreply.github.com> Date: Sat, 8 Jan 2022 14:35:40 +0100 Subject: [PATCH 11/87] [feat] MenuBar erstellt Co-authored-by: Joshua Jeschek --- .../github/weichware10/analyse/gui/Login.java | 49 ++++++++++++--- .../analyse/gui/LoginController.java | 25 +++++--- .../weichware10/analyse/gui/MainMenuBar.java | 20 +++++++ .../analyse/gui/MainMenuBarController.java | 59 +++++++++++++++++++ .../analyse/gui/util/AbsScene.java | 7 ++- .../github/weichware10/analyse/gui/Login.fxml | 34 ++++++++++- .../weichware10/analyse/gui/MainMenuBar.fxml | 13 ++-- 7 files changed, 178 insertions(+), 29 deletions(-) create mode 100644 src/main/java/github/weichware10/analyse/gui/MainMenuBarController.java diff --git a/src/main/java/github/weichware10/analyse/gui/Login.java b/src/main/java/github/weichware10/analyse/gui/Login.java index 717a88a..dd907e7 100644 --- a/src/main/java/github/weichware10/analyse/gui/Login.java +++ b/src/main/java/github/weichware10/analyse/gui/Login.java @@ -5,13 +5,23 @@ import github.weichware10.util.Logger; import github.weichware10.util.db.DataBaseClient; import io.github.cdimascio.dotenv.Dotenv; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.beans.value.ObservableBooleanValue; +import javafx.geometry.Rectangle2D; import javafx.scene.Parent; +import javafx.scene.control.TextArea; +import javafx.scene.layout.Region; +import javafx.scene.text.Text; +import javafx.stage.Screen; /** * Der Hauptbildschirm der App. */ public class Login extends AbsScene { public static DataBaseClient dataBaseClient; + private static SimpleBooleanProperty connection = new SimpleBooleanProperty(false); + public static ObservableBooleanValue hasConnection = connection; + public static String databaseUrl; private static Parent root; @@ -19,29 +29,50 @@ public class Login extends AbsScene { * Startet die App. */ public static void start() { + Rectangle2D screenBounds = Screen.getPrimary().getBounds(); root = start(Main.primaryStage, Login.class.getResource("Login.fxml"), root, "Analyse", MainMenuBar.getMenuBar(), - 300, - 300); + (int) screenBounds.getWidth() / 2, + (int) screenBounds.getHeight() / 2); + } + + /** + * Loggt den Nutzer aus und kehrt zum Login-Bildschirm zurück. + */ + public static void logOut() { + dataBaseClient = null; + connection.set(false); + start(); } /** * Stellt die Verbindung zur Datenbank her. */ - public static void connectToDatabase(String username, String password, String schema) { - try { + public static void connectToDatabase(String username, String password, String schema, + Text warnText, TextArea errorText) { + if (databaseUrl == null) { Dotenv dotenv = Dotenv.load(); - String url = dotenv.get("DB_URL"); - dataBaseClient = new DataBaseClient(url, username, password, schema); + databaseUrl = dotenv.get("DB_URL"); + } + try { + dataBaseClient = new DataBaseClient(databaseUrl, username, password, schema); + connection.set(true); + warnText.setVisible(false); + errorText.setVisible(false); + errorText.setText(""); } catch (IllegalArgumentException e) { Logger.error("error when loading env", e); - // auf null setzen, falls die Verbindung vorher angepasst wurde und dies - // gewünscht ist - // zurücksetzen auf dataBaseClient-freien Zustand dataBaseClient = null; + connection.set(false); + warnText.setVisible(true); + errorText.setVisible(true); + warnText.setText("Couldn't log into database"); + errorText.setText(e.getMessage()); + errorText.setPrefHeight(50); + errorText.setPrefWidth(Region.USE_COMPUTED_SIZE); } } diff --git a/src/main/java/github/weichware10/analyse/gui/LoginController.java b/src/main/java/github/weichware10/analyse/gui/LoginController.java index 36643ac..f7f1d12 100644 --- a/src/main/java/github/weichware10/analyse/gui/LoginController.java +++ b/src/main/java/github/weichware10/analyse/gui/LoginController.java @@ -4,7 +4,9 @@ import github.weichware10.analyse.gui.util.AbsSceneController; import javafx.fxml.FXML; import javafx.scene.control.PasswordField; +import javafx.scene.control.TextArea; import javafx.scene.control.TextField; +import javafx.scene.text.Text; /** * Controller für {@link Login}. @@ -13,33 +15,40 @@ public class LoginController extends AbsSceneController { @FXML private TextField benutzernameId; - @FXML private PasswordField passwortId; - @FXML private TextField schemaId; + @FXML + private Text warnText; + @FXML + private TextArea errorText; @Override protected void initialize() { assert benutzernameId != null - : "fx:id=\"benutzernameID\" was not injected: check your FXML file 'LoginWindow.fxml'."; + : "fx:id=\"benutzernameID\" not injected: check 'LoginWindow.fxml'."; assert passwortId != null - : "fx:id=\"passwortID\" was not injected: check your FXML file 'LoginWindow.fxml'."; + : "fx:id=\"passwortID\" not injected: check 'LoginWindow.fxml'."; assert schemaId != null - : "fx:id=\"schemaID\" was not injected: check your FXML file 'LoginWindow.fxml'."; + : "fx:id=\"schemaID\" not injected: check 'LoginWindow.fxml'."; + assert warnText != null + : "fx:id=\"warnText\" not injected: check 'LoginWindow.fxml'."; + assert errorText != null + : "fx:id=\"errorText\" not injected: check 'LoginWindow.fxml'."; } @FXML private void loginToDatabase() { Login.connectToDatabase(benutzernameId.getText(), - passwortId.getText(), - schemaId.getText()); + passwortId.getText(), + schemaId.getText(), + warnText, + errorText); } @FXML private void closeProgramm() { Main.primaryStage.close(); } - } diff --git a/src/main/java/github/weichware10/analyse/gui/MainMenuBar.java b/src/main/java/github/weichware10/analyse/gui/MainMenuBar.java index a9f511b..6186e47 100644 --- a/src/main/java/github/weichware10/analyse/gui/MainMenuBar.java +++ b/src/main/java/github/weichware10/analyse/gui/MainMenuBar.java @@ -1,6 +1,11 @@ package github.weichware10.analyse.gui; import github.weichware10.analyse.gui.util.AbsScene; +import github.weichware10.util.Logger; +import java.awt.Desktop; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; import javafx.scene.control.MenuBar; /** @@ -21,4 +26,19 @@ public static MenuBar getMenuBar() { } return root; } + + /** + * öffnet die Dokumentation im Browser. + */ + protected static void openDocs() { + if (Desktop.isDesktopSupported() + && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + try { + //TODO: Dokumentation richtig setzt bei help drücken + Desktop.getDesktop().browse(new URI("https://weichware10.github.io/dokumente/")); + } catch (IOException | URISyntaxException e) { + Logger.error("error occured while opening documentation", e); + } + } + } } diff --git a/src/main/java/github/weichware10/analyse/gui/MainMenuBarController.java b/src/main/java/github/weichware10/analyse/gui/MainMenuBarController.java new file mode 100644 index 0000000..c06fb85 --- /dev/null +++ b/src/main/java/github/weichware10/analyse/gui/MainMenuBarController.java @@ -0,0 +1,59 @@ +package github.weichware10.analyse.gui; + +import github.weichware10.analyse.gui.util.AbsSceneController; +import github.weichware10.util.Logger; +import javafx.beans.value.ObservableBooleanValue; +import javafx.fxml.FXML; +import javafx.scene.control.MenuItem; + +/** + * Controller für {@link MainMenuBar}. + */ +public class MainMenuBarController extends AbsSceneController { + @FXML + private MenuItem databaseChange; + + @FXML + private MenuItem databaseUrlReset; + + @FXML + private MenuItem logOutMenu; + + @FXML + void logOut() { + Logger.info(":menubar Logging out"); + Login.logOut(); + } + + private void setLogOutDisable(ObservableBooleanValue obs) { + logOutMenu.setDisable(!(obs.get())); + } + + @FXML + public void openDocumentation() { + Logger.info(":menubar Opening Docs"); + MainMenuBar.openDocs(); + } + + @FXML + protected static void resetDataBaseUrl() { + Login.databaseUrl = null; + } + + @FXML + protected static void setDataBaseUrl() { + + } + + @Override + protected void initialize() { + assert databaseChange != null + : "fx:id=\"databaseChange\" not injected: check 'MainMenuBar.fxml'."; + assert databaseUrlReset != null + : "fx:id=\"databaseUrlReset\" not injected: check 'MainMenuBar.fxml'."; + assert logOutMenu != null + : "fx:id=\"logOutMenu\" not injected: check 'MainMenuBar.fxml'."; + + Login.hasConnection.addListener(obs -> setLogOutDisable((ObservableBooleanValue) obs)); + } +} diff --git a/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java b/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java index 3d7463b..222d646 100644 --- a/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java +++ b/src/main/java/github/weichware10/analyse/gui/util/AbsScene.java @@ -77,7 +77,12 @@ public static Parent start(Stage primaryStage, URL fxml, Parent root, primaryStage.setHeight(height); } // auf primaryStage setzen - primaryStage.setScene(new Scene(root)); + Scene existingScene = root.getScene(); + if (existingScene != null) { + primaryStage.setScene(existingScene); + } else { + primaryStage.setScene(new Scene(root)); + } primaryStage.setTitle(title); return root; } diff --git a/src/main/resources/github/weichware10/analyse/gui/Login.fxml b/src/main/resources/github/weichware10/analyse/gui/Login.fxml index 54cb614..8efd169 100644 --- a/src/main/resources/github/weichware10/analyse/gui/Login.fxml +++ b/src/main/resources/github/weichware10/analyse/gui/Login.fxml @@ -3,18 +3,46 @@ + + + + +
- - - + + + + + + + + + + + + + + + + + + + + + + + +