From 7e5dd919dbeedcf3106e3f6494b30661fc8ff31f Mon Sep 17 00:00:00 2001 From: FirewallGR Date: Mon, 26 Dec 2022 23:57:46 +0300 Subject: [PATCH 1/2] Added default clock list --- JavaCreditest/src/main/java/module-info.java | 4 +- .../javacreditest/ClockShopApplication.java | 4 +- .../Controllers/DBController.java | 2 +- .../Controllers/DefaultList.java | 54 +++++++++++++++++++ .../Controllers/GUIController.java | 28 ++++++---- .../Controllers/ItemController.java | 38 +++++++++---- .../Controllers/TimeController.java | 5 +- .../{Clockshop => Model}/Clock.java | 16 +++++- .../{Clockshop => Model}/ClockPane.java | 11 ++-- .../{NewMainWindow.fxml => MainWindow.fxml} | 28 +++------- .../ru/meowmure/javacreditest/NewItem.fxml | 2 +- 11 files changed, 137 insertions(+), 55 deletions(-) create mode 100644 JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/DefaultList.java rename JavaCreditest/src/main/java/ru/meowmure/javacreditest/{Clockshop => Model}/Clock.java (91%) rename JavaCreditest/src/main/java/ru/meowmure/javacreditest/{Clockshop => Model}/ClockPane.java (95%) rename JavaCreditest/src/main/resources/ru/meowmure/javacreditest/{NewMainWindow.fxml => MainWindow.fxml} (86%) diff --git a/JavaCreditest/src/main/java/module-info.java b/JavaCreditest/src/main/java/module-info.java index 69e14b7..d153740 100644 --- a/JavaCreditest/src/main/java/module-info.java +++ b/JavaCreditest/src/main/java/module-info.java @@ -15,9 +15,9 @@ requires mysql.connector.java; requires java.sql; - opens ru.meowmure.javacreditest.Clockshop to com.google.gson; + opens ru.meowmure.javacreditest.Model to com.google.gson; opens ru.meowmure.javacreditest to javafx.fxml; - exports ru.meowmure.javacreditest.Clockshop; + exports ru.meowmure.javacreditest.Model; exports ru.meowmure.javacreditest; exports ru.meowmure.javacreditest.Controllers; opens ru.meowmure.javacreditest.Controllers to javafx.fxml; diff --git a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/ClockShopApplication.java b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/ClockShopApplication.java index 0ab7bc1..16ea452 100644 --- a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/ClockShopApplication.java +++ b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/ClockShopApplication.java @@ -5,7 +5,7 @@ import javafx.scene.Scene; import javafx.scene.control.ListView; import javafx.stage.Stage; -import ru.meowmure.javacreditest.Clockshop.Clock; +import ru.meowmure.javacreditest.Model.Clock; import ru.meowmure.javacreditest.Controllers.GUIController; import ru.meowmure.javacreditest.Controllers.ItemController; import ru.meowmure.javacreditest.Controllers.TimeController; @@ -24,7 +24,7 @@ public void start(Stage stage) throws IOException { public void showMainWindow() { try { - FXMLLoader loader = new FXMLLoader(ClockShopApplication.class.getResource("NewMainWindow.fxml")); + FXMLLoader loader = new FXMLLoader(ClockShopApplication.class.getResource("MainWindow.fxml")); Scene mainScene = new Scene(loader.load()); Stage mainStage = new Stage(); mainStage.setTitle("Shop"); diff --git a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/DBController.java b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/DBController.java index 3dcdfef..90ea774 100644 --- a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/DBController.java +++ b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/DBController.java @@ -1,7 +1,7 @@ package ru.meowmure.javacreditest.Controllers; import javafx.scene.Group; -import ru.meowmure.javacreditest.Clockshop.Clock; +import ru.meowmure.javacreditest.Model.Clock; import ru.meowmure.javacreditest.Exceptions.IncorrectNumberException; import java.sql.PreparedStatement; diff --git a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/DefaultList.java b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/DefaultList.java new file mode 100644 index 0000000..5544830 --- /dev/null +++ b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/DefaultList.java @@ -0,0 +1,54 @@ +package ru.meowmure.javacreditest.Controllers; + +import javafx.scene.paint.Color; +import ru.meowmure.javacreditest.Exceptions.IncorrectNumberException; +import ru.meowmure.javacreditest.Model.Clock; + +public class DefaultList { + public static void createDefaultList(GUIController controller) { + try { + Color colorRolex = Color.GOLD; + Clock clockRolex = new Clock(controller.getGroup(), colorRolex); + clockRolex.setName("Day Date 40"); + clockRolex.setMark("Rolex"); + clockRolex.setCost(500000); + clockRolex.setTyped(true); + + Color colorPatekPhilippe = Color.GHOSTWHITE; + Clock clockPatekPhilippe = new Clock(controller.getGroup(), colorPatekPhilippe); + clockPatekPhilippe.setName("Nautilus"); + clockPatekPhilippe.setMark("Patek Philippe"); + clockPatekPhilippe.setCost(990000); + clockPatekPhilippe.setTyped(true); + + Color colorTAGHeuer = Color.ROYALBLUE; + Clock clockTAGheuer = new Clock(controller.getGroup(), colorTAGHeuer); + clockTAGheuer.setName("Monaco"); + clockTAGheuer.setMark("TAG Heuer"); + clockTAGheuer.setCost(478000); + clockTAGheuer.setTyped(false); + + Color colorLongines = Color.LIMEGREEN; + Clock clockLongines = new Clock(controller.getGroup(), colorLongines); + clockLongines.setName("Spirit"); + clockLongines.setMark("Longines"); + clockLongines.setCost(333600); + clockLongines.setTyped(false); + + Color colorAudemarsPiguet = Color.LIGHTSTEELBLUE; + Clock clockAudemarsPiguet = new Clock(controller.getGroup(), colorAudemarsPiguet); + clockAudemarsPiguet.setName("Royal Oak"); + clockAudemarsPiguet.setMark("Audemars Piguet"); + clockAudemarsPiguet.setCost(777000); + clockAudemarsPiguet.setTyped(true); + + controller.getListView().getItems().add(clockRolex); + controller.getListView().getItems().add(clockPatekPhilippe); + controller.getListView().getItems().add(clockTAGheuer); + controller.getListView().getItems().add(clockLongines); + controller.getListView().getItems().add(clockAudemarsPiguet); + } catch (IncorrectNumberException e) { + throw new RuntimeException(e); + } + } +} diff --git a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/GUIController.java b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/GUIController.java index e154922..b6b3931 100644 --- a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/GUIController.java +++ b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/GUIController.java @@ -6,18 +6,15 @@ import javafx.fxml.FXML; import javafx.scene.Group; import javafx.scene.control.*; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.control.MenuItem; -import javafx.scene.control.TextField; import javafx.scene.input.MouseEvent; -import javafx.scene.paint.Color; import javafx.stage.FileChooser; import ru.meowmure.javacreditest.ClockShopApplication; -import ru.meowmure.javacreditest.Clockshop.Clock; +import ru.meowmure.javacreditest.Model.Clock; import java.io.*; -import java.util.*; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; public class GUIController { @@ -68,7 +65,9 @@ public class GUIController { private ClockShopApplication app; + public void setApp(ClockShopApplication app) { + DefaultList.createDefaultList(this); this.app = app; } @@ -77,11 +76,22 @@ public void setListView(ListView listView) { } public void add(ActionEvent actionEvent) { - Color color = new Random().nextInt(2) == 0 ? Color.AQUA : Color.MAGENTA; - Clock clock = new Clock(group, color); + Clock clock = new Clock(group); app.showAddWindow(clock, listView); } + public ListView getListView() { + return listView; + } + + public Group getGroup() { + return group; + } + + public void setGroup(Group group) { + this.group = group; + } + public void onItemSelected(MouseEvent mouseEvent) { if (listView.getItems().isEmpty()) return; diff --git a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/ItemController.java b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/ItemController.java index da56f4b..76e7208 100644 --- a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/ItemController.java +++ b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/ItemController.java @@ -1,22 +1,28 @@ package ru.meowmure.javacreditest.Controllers; +import javafx.collections.FXCollections; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.*; +import javafx.scene.paint.Color; import javafx.stage.Stage; import ru.meowmure.javacreditest.ClockShopApplication; -import ru.meowmure.javacreditest.Clockshop.Clock; import ru.meowmure.javacreditest.Exceptions.IncorrectNumberException; +import ru.meowmure.javacreditest.Model.Clock; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; public class ItemController { @FXML private Button buttonCreate = new Button(); @FXML - private TextField name = new TextField(); + private TextField name = new TextField(); @FXML - private TextField mark = new TextField(); + private ChoiceBox mark = new ChoiceBox<>(); @FXML private TextField price = new TextField(); @FXML @@ -25,7 +31,12 @@ public class ItemController { private ListView listView; private Clock clock; + List colors = new ArrayList<>(Arrays.asList(Color.GOLD, Color.GHOSTWHITE, Color.ROYALBLUE, Color.LIMEGREEN, Color.LIGHTSTEELBLUE)); + List brands = new ArrayList<>(Arrays.asList("Rolex", "Patek Philippe", "TAG Heuer", "Longines", "Audemars Piguet")); + + public void setApp(ClockShopApplication app) { + mark.setItems(FXCollections.observableArrayList("Rolex", "Patek Philippe", "TAG Heuer", "Longines", "Audemars Piguet")); this.app = app; } @@ -37,27 +48,32 @@ public ListView getListView() { return listView; } + public void setObject(Clock clock) { + this.clock = clock; + } + public void create(ActionEvent actionEvent) { - if ((mark == null || mark.getText().isEmpty()) || (name == null || name.getText().isEmpty()) || (price == null || price.getText().isEmpty()) || (type == null)) { + if ((mark == null || mark.getItems().isEmpty()) || (name == null || name.getText().isEmpty()) || (price == null || price.getText().isEmpty()) || (type == null)) { new Alert(Alert.AlertType.ERROR, "The one of the fields is null or empty").showAndWait(); return; } - clock.setMark(mark.getText()); + clock.setMark(mark.getValue()); + clock.setColor(colors.get(brands.indexOf(mark.getValue()))); try { clock.setCost(Integer.parseInt(price.getText())); } catch ( IncorrectNumberException e) { - new Alert(Alert.AlertType.ERROR, "Price is below zero").showAndWait(); + new Alert(Alert.AlertType.ERROR, e.getMessage()).showAndWait(); return; } catch (NumberFormatException e) { - new Alert(Alert.AlertType.ERROR, "Price is not a number").showAndWait(); + new Alert(Alert.AlertType.ERROR, e.getMessage()).showAndWait(); return; } clock.setName(name.getText()); clock.setTyped(type.isSelected()); - checkMatches(); + //checkMatches(); listView.getItems().add(clock); @@ -73,9 +89,9 @@ public void checkMatches() { } } } - public void setObject(Clock clock) { - this.clock = clock; - } + //public void setObject(Clock clock) { +// this.clock = clock; +// } public void returnList() { app.GUIcontroller.setListView(listView); diff --git a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/TimeController.java b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/TimeController.java index 694f59b..63bc2cb 100644 --- a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/TimeController.java +++ b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Controllers/TimeController.java @@ -2,15 +2,12 @@ import javafx.event.ActionEvent; import javafx.fxml.FXML; -import javafx.scene.Group; import javafx.scene.control.Button; -import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.control.TextField; -import javafx.scene.text.Font; import javafx.stage.Stage; import ru.meowmure.javacreditest.ClockShopApplication; -import ru.meowmure.javacreditest.Clockshop.Clock; +import ru.meowmure.javacreditest.Model.Clock; public class TimeController { @FXML diff --git a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Clockshop/Clock.java b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Model/Clock.java similarity index 91% rename from JavaCreditest/src/main/java/ru/meowmure/javacreditest/Clockshop/Clock.java rename to JavaCreditest/src/main/java/ru/meowmure/javacreditest/Model/Clock.java index 6f846b9..fe121b4 100644 --- a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Clockshop/Clock.java +++ b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Model/Clock.java @@ -1,4 +1,4 @@ -package ru.meowmure.javacreditest.Clockshop; +package ru.meowmure.javacreditest.Model; import com.google.gson.annotations.Expose; @@ -15,7 +15,7 @@ @Table(name = "clocks") public class Clock implements Serializable { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.AUTO) private transient int id; @Expose private String name; @@ -48,6 +48,18 @@ public Clock(Group group, Color color) { blue = color.getBlue(); } + public Clock(Group group) { + clockPane = new ClockPane(group, this); + timeStart = new GregorianCalendar(); + } + + public void setColor(Color color) { + red = color.getRed(); + green = color.getGreen(); + blue = color.getBlue(); + clockPane.setColor(color); + } + public int getId() { return id; } diff --git a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Clockshop/ClockPane.java b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Model/ClockPane.java similarity index 95% rename from JavaCreditest/src/main/java/ru/meowmure/javacreditest/Clockshop/ClockPane.java rename to JavaCreditest/src/main/java/ru/meowmure/javacreditest/Model/ClockPane.java index 3f88b48..edf388a 100644 --- a/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Clockshop/ClockPane.java +++ b/JavaCreditest/src/main/java/ru/meowmure/javacreditest/Model/ClockPane.java @@ -1,4 +1,4 @@ -package ru.meowmure.javacreditest.Clockshop; +package ru.meowmure.javacreditest.Model; import javafx.animation.*; import javafx.scene.Group; @@ -10,8 +10,6 @@ import javafx.scene.transform.Rotate; import javafx.util.Duration; -import java.io.Serializable; - public class ClockPane { private Group group; private Clock clock; @@ -22,11 +20,18 @@ public class ClockPane { private double width = 350, height = 350; + public ClockPane(Group group, Clock clock) { + this.group = group; + this.clock = clock; + } public ClockPane(Group group, Clock clock, Color color){ this.group = group; this.clock = clock; this.color = color; } + public void setColor(Color color) { + this.color = color; + } public void PaintClock(int hours, int minutes, int seconds) { group.getChildren().clear(); diff --git a/JavaCreditest/src/main/resources/ru/meowmure/javacreditest/NewMainWindow.fxml b/JavaCreditest/src/main/resources/ru/meowmure/javacreditest/MainWindow.fxml similarity index 86% rename from JavaCreditest/src/main/resources/ru/meowmure/javacreditest/NewMainWindow.fxml rename to JavaCreditest/src/main/resources/ru/meowmure/javacreditest/MainWindow.fxml index 67c6841..1b142d2 100644 --- a/JavaCreditest/src/main/resources/ru/meowmure/javacreditest/NewMainWindow.fxml +++ b/JavaCreditest/src/main/resources/ru/meowmure/javacreditest/MainWindow.fxml @@ -13,14 +13,14 @@ - - - + + + - - - - + + + + @@ -140,19 +140,7 @@ - - - - diff --git a/JavaCreditest/src/main/resources/ru/meowmure/javacreditest/NewItem.fxml b/JavaCreditest/src/main/resources/ru/meowmure/javacreditest/NewItem.fxml index f240c9c..b772f79 100644 --- a/JavaCreditest/src/main/resources/ru/meowmure/javacreditest/NewItem.fxml +++ b/JavaCreditest/src/main/resources/ru/meowmure/javacreditest/NewItem.fxml @@ -9,10 +9,10 @@