From b460a77e8c450a1e81afa70464e7f856c34666dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20K=C3=BChn?= Date: Mon, 31 Jan 2022 13:27:50 +0100 Subject: [PATCH] Refactored svgButtons --- .../src/main/java/main/MainController.java | 43 ++-------- .../app/src/main/java/ui/SvgBtnCreator.java | 83 ++++++++++++------- 2 files changed, 60 insertions(+), 66 deletions(-) diff --git a/client/app/src/main/java/main/MainController.java b/client/app/src/main/java/main/MainController.java index 2ac07fb..45c8f68 100644 --- a/client/app/src/main/java/main/MainController.java +++ b/client/app/src/main/java/main/MainController.java @@ -9,7 +9,6 @@ import ui.SvgBtnCreator; import helper.HttpRequestException; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; -import javafx.scene.Group; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.*; @@ -206,64 +205,34 @@ public class MainController { } private void createBtns(){ - Group svgAdd = new Group( - SvgBtnCreator.createPath("M0 0h24v24H0z", "transparent", "transparent"), - SvgBtnCreator.createPath("M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", - "white", "gray") - ); - Button addBtn = SvgBtnCreator.createBtn(svgAdd, 40, "main-btn", "Erstellt einen neuen Termin"); + Button addBtn = SvgBtnCreator.createAddBtn(); addBtn.setOnAction(e -> onAddBtnClick()); addBtn.getStyleClass().add("main-btn"); leftNav.getChildren().add(addBtn); - Group svgSettings = new Group( - SvgBtnCreator.createPath("M0 0h24v24H0V0z", "transparent", "transparent"), - SvgBtnCreator.createPath("M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z", - "white", "gray") - ); - Button settingsBtn = SvgBtnCreator.createBtn(svgSettings, 40, "main-btn", "Öffnet die Einstellungen"); + Button settingsBtn = SvgBtnCreator.createSettingBtn(); settingsBtn.setOnAction(e -> onSettingBtnClick()); settingsBtn.getStyleClass().add("main-btn"); leftNav.getChildren().add(settingsBtn); - Group svgLogout = new Group( - SvgBtnCreator.createPath("M0 0h24v24H0z", "transparent", "transparent"), - SvgBtnCreator.createPath("M17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z", - "white", "gray") - ); - Button logoutBtn = SvgBtnCreator.createBtn(svgLogout, 40, "main-btn", "Abmelden"); + Button logoutBtn = SvgBtnCreator.createLogoutBtn(); logoutBtn.setOnAction(this::onLogoutBtnClick); logoutBtn.getStyleClass().add("main-btn"); leftNav.getChildren().add(logoutBtn); - Group svgBack = new Group( - SvgBtnCreator.createPath("M0 0h24v24H0z", "transparent", "transparent"), - SvgBtnCreator.createPath("M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z", - "white", "lightgray") - ); - Button backBtn = SvgBtnCreator.createBtn(svgBack, 40, "navBtn", "Zeigt die vorherige Woche"); + Button backBtn = SvgBtnCreator.createBackBtn(); backBtn.setOnAction(e -> onBackClick()); backBtn.getStyleClass().add("navBtn"); GridPane.setColumnIndex(backBtn, 1); buttonBox.getChildren().add(backBtn); - Group svgToday = new Group( - SvgBtnCreator.createPath("M0 0h24v24H0z", "transparent", "transparent"), - SvgBtnCreator.createPath("M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z", - "white", "lightgray") - ); - Button todayBtn = SvgBtnCreator.createBtn(svgToday, 40, "navBtn", "Zeigt die aktuelle Woche"); + Button todayBtn = SvgBtnCreator.createTodayBtn(); todayBtn.setOnAction(e -> onTodayClick()); todayBtn.getStyleClass().add("navBtn"); GridPane.setColumnIndex(todayBtn, 2); buttonBox.getChildren().add(todayBtn); - Group svgNext = new Group( - SvgBtnCreator.createPath("M0 0h24v24H0z", "transparent", "transparent"), - SvgBtnCreator.createPath("M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z", - "white", "lightgray") - ); - Button nextBtn = SvgBtnCreator.createBtn(svgNext, 40, "navBtn", "Zeigt die nächste Woche"); + Button nextBtn = SvgBtnCreator.createNextBtn(); nextBtn.setOnAction(e -> onNextClick()); nextBtn.getStyleClass().add("navBtn"); GridPane.setColumnIndex(nextBtn, 3); diff --git a/client/app/src/main/java/ui/SvgBtnCreator.java b/client/app/src/main/java/ui/SvgBtnCreator.java index fc72cc8..c481fcb 100644 --- a/client/app/src/main/java/ui/SvgBtnCreator.java +++ b/client/app/src/main/java/ui/SvgBtnCreator.java @@ -7,35 +7,6 @@ import javafx.scene.shape.SVGPath; public class SvgBtnCreator { - public static Button createBtn(Group group, int svgSize) { - Button btn = new Button(); - - Bounds boundsDel = group.getBoundsInParent(); - double scaleDel = Math.min(svgSize / boundsDel.getWidth(), svgSize / boundsDel.getHeight()); - group.setScaleX(scaleDel); - group.setScaleY(scaleDel); - btn.setGraphic(group); - btn.setMaxSize(svgSize, svgSize); - btn.setMinSize(svgSize, svgSize); - btn.setContentDisplay(ContentDisplay.GRAPHIC_ONLY); - - return btn; - } - - public static Button createBtn(Group group, int svgSize, String styleClass) { - Button btn = new Button(); - - Bounds boundsDel = group.getBoundsInParent(); - double scaleDel = Math.min(svgSize / boundsDel.getWidth(), svgSize / boundsDel.getHeight()); - group.setScaleX(scaleDel); - group.setScaleY(scaleDel); - btn.setGraphic(group); - btn.setMaxSize(svgSize, svgSize); - btn.setMinSize(svgSize, svgSize); - btn.getStyleClass().add(styleClass); - - return btn; - } public static Button createBtn(Group group, int svgSize, String styleClass, String toolTip) { Button btn = new Button(); @@ -63,4 +34,58 @@ public class SvgBtnCreator { return path; } + public static Button createAddBtn(){ + Group svgAdd = new Group( + createPath("M0 0h24v24H0z", "transparent", "transparent"), + createPath("M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z", + "white", "gray") + ); + return createBtn(svgAdd, 40, "main-btn", "Erstellt einen neuen Termin"); + } + + public static Button createSettingBtn(){ + Group svgSettings = new Group( + createPath("M0 0h24v24H0V0z", "transparent", "transparent"), + createPath("M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z", + "white", "gray") + ); + return createBtn(svgSettings, 40, "main-btn", "Öffnet die Einstellungen"); + } + + public static Button createLogoutBtn(){ + Group svgLogout = new Group( + createPath("M0 0h24v24H0z", "transparent", "transparent"), + createPath("M17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5zM4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4V5z", + "white", "gray") + ); + return createBtn(svgLogout, 40, "main-btn", "Abmelden"); + } + + public static Button createBackBtn(){ + Group svgBack = new Group( + createPath("M0 0h24v24H0z", "transparent", "transparent"), + createPath("M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z", + "white", "lightgray") + ); + return createBtn(svgBack, 40, "navBtn", "Zeigt die vorherige Woche"); + } + + public static Button createTodayBtn(){ + Group svgToday = new Group( + createPath("M0 0h24v24H0z", "transparent", "transparent"), + createPath("M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z", + "white", "lightgray") + ); + return createBtn(svgToday, 40, "navBtn", "Zeigt die aktuelle Woche"); + } + + public static Button createNextBtn(){ + Group svgNext = new Group( + createPath("M0 0h24v24H0z", "transparent", "transparent"), + createPath("M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z", + "white", "lightgray") + ); + return createBtn(svgNext, 40, "navBtn", "Zeigt die nächste Woche"); + } + }