aboutsummaryrefslogtreecommitdiff
path: root/src/com.example.portfolio2/com/example/portfolio2/Window.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com.example.portfolio2/com/example/portfolio2/Window.java')
-rw-r--r--src/com.example.portfolio2/com/example/portfolio2/Window.java50
1 files changed, 29 insertions, 21 deletions
diff --git a/src/com.example.portfolio2/com/example/portfolio2/Window.java b/src/com.example.portfolio2/com/example/portfolio2/Window.java
index 36be369..93d522b 100644
--- a/src/com.example.portfolio2/com/example/portfolio2/Window.java
+++ b/src/com.example.portfolio2/com/example/portfolio2/Window.java
@@ -49,7 +49,9 @@ public final class Window extends Application {
private Database store = new Database();
/// UI model
- private UI ui = new GUI();
+ ///
+ /// Must be subclass GUI to cover columns.
+ private GUI ui = new GUI();
/// Application controller
private Controller con = new Controller(store, ui, this);
@@ -61,10 +63,10 @@ public final class Window extends Application {
// define list of columns based on their names
List<ActivityColumn> columns = List.of(
- new ActivityColumn(UI.Section.PROGRAM),
- new ActivityColumn(UI.Section.SUBJECT1),
- new ActivityColumn(UI.Section.SUBJECT2),
- new ActivityColumn(UI.Section.ELECTIVE)
+ new ActivityColumn(GUI.Section.PROGRAM),
+ new ActivityColumn(GUI.Section.SUBJECT1),
+ new ActivityColumn(GUI.Section.SUBJECT2),
+ new ActivityColumn(GUI.Section.ELECTIVE)
);
// define button functionality for each activity column
@@ -90,7 +92,7 @@ public final class Window extends Application {
// handle each category box
switch (col.section) {
- case UI.Section.PROGRAM -> {
+ case GUI.Section.PROGRAM -> {
col.categoryCombo.getItems().addAll(
"HumTek", "NatBach");
col.categoryCombo.setOnAction(event -> {
@@ -101,23 +103,24 @@ public final class Window extends Application {
});
}
// TODO: use the list for filling the box
- case UI.Section.SUBJECT1 -> {
+ case GUI.Section.SUBJECT1 -> {
col.categoryCombo.getItems().addAll(
"Computer Science",
"Informatik",
"Astrology");
col.categoryCombo.setOnAction(event -> {
con.onSubjectModuleSelected(
- col.categoryCombo,
- columns.get(2)
- .categoryCombo);
+ col.categoryCombo,
+ columns.get(
+ GUI.Section.SUBJECT2.column)
+ .categoryCombo);
con.onCategorySelected(
col.categoryCombo.getValue(),
col.activitySelect,
col.area);
});
}
- case UI.Section.SUBJECT2 -> {
+ case GUI.Section.SUBJECT2 -> {
col.categoryCombo.getItems().addAll(
"Computer Science",
"Informatik",
@@ -125,16 +128,17 @@ public final class Window extends Application {
// TODO: figure out a better way...
col.categoryCombo.setOnAction(event -> {
con.onSubjectModuleSelected(
- col.categoryCombo,
- columns.get(1)
- .categoryCombo);
+ col.categoryCombo,
+ columns.get(
+ GUI.Section.SUBJECT1.column)
+ .categoryCombo);
con.onCategorySelected(
col.categoryCombo.getValue(),
col.activitySelect,
col.area);
});
}
- case UI.Section.ELECTIVE -> {
+ case GUI.Section.ELECTIVE -> {
// hide useless box
col.categoryCombo.setVisible(false);
@@ -146,10 +150,14 @@ public final class Window extends Application {
// define HBox and scene for columns
HBox root = new HBox(
- columns.get(0).asVBox(),
- columns.get(1).asVBox(),
- columns.get(2).asVBox(),
- columns.get(3).asVBox());
+ columns.get(GUI.Section.PROGRAM.column)
+ .asVBox(),
+ columns.get(GUI.Section.SUBJECT1.column)
+ .asVBox(),
+ columns.get(GUI.Section.SUBJECT2.column)
+ .asVBox(),
+ columns.get(GUI.Section.ELECTIVE.column)
+ .asVBox());
Scene scene = new Scene(
root, WINDOW_WIDTH, WINDOW_HEIGHT);
stage.setTitle(
@@ -174,7 +182,7 @@ public final class Window extends Application {
/// @param area description of chosen activities
/// @param ectsLabel text to display ECTS points
private record ActivityColumn(
- UI.Section section,
+ GUI.Section section,
Label nameLabel,
ComboBox<String> categoryCombo,
ComboBox<String> activitySelect,
@@ -185,7 +193,7 @@ public final class Window extends Application {
/// column of activities
///
/// @param section structural section for column
- public ActivityColumn(UI.Section section) {
+ public ActivityColumn(GUI.Section section) {
this(
section,
new Label(section.label),