From 1042817e4e59cda5ff8beb1ccccaa2171071ff79 Mon Sep 17 00:00:00 2001 From: Haoming Yin Date: Sat, 23 Sep 2017 20:59:29 +1200 Subject: [PATCH] Snackbar's color can be changed according to the message type - load a separate css file to change the color - if the assignment failed, the snackbar prompt will be red, otherwise theme color #story[1278] --- .../visualiser/controllers/ViewManager.java | 16 +++++++++++----- .../dialogs/KeyBindingDialogController.java | 8 ++++---- src/main/resources/css/Master.css | 9 +++------ .../resources/css/dialogs/KeyBindingDialog.css | 12 ++++++++++++ src/main/resources/css/dialogs/Snackbar.css | 4 ++++ 5 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 src/main/resources/css/dialogs/Snackbar.css diff --git a/src/main/java/seng302/visualiser/controllers/ViewManager.java b/src/main/java/seng302/visualiser/controllers/ViewManager.java index 603e2295..463b88a5 100644 --- a/src/main/java/seng302/visualiser/controllers/ViewManager.java +++ b/src/main/java/seng302/visualiser/controllers/ViewManager.java @@ -101,9 +101,7 @@ public class ViewManager { System.exit(0); }); - jfxSnackbar = new JFXSnackbar(); - decorator.getChildren().add(jfxSnackbar); - jfxSnackbar.registerSnackbarContainer(decorator); + jfxSnackbar = new JFXSnackbar(decorator); } /** @@ -228,8 +226,16 @@ public class ViewManager { * * @param snackbarText text to be displayed. */ - public void showSnackbar(String snackbarText) { - jfxSnackbar.show(snackbarText, 1500); + public void showSnackbar(String snackbarText, boolean isWarning) { + if (isWarning) { + decorator.getStylesheets() + .add(getClass().getResource("/css/dialogs/Snackbar.css").toExternalForm()); + } else { + if (decorator.getStylesheets().size() > 1) { + decorator.getStylesheets().remove(1); + } + } + jfxSnackbar.show(snackbarText, "fuck", 1500); } /** diff --git a/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java b/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java index 7a372d4a..5aa7a097 100644 --- a/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java +++ b/src/main/java/seng302/visualiser/controllers/dialogs/KeyBindingDialogController.java @@ -105,8 +105,8 @@ public class KeyBindingDialogController implements Initializable { /** * Prompt success / failure message for reassigning key action */ - private void showSnackBar(String message) { - ViewManager.getInstance().showSnackbar(message); + private void showSnackBar(String message, Boolean isWarning) { + ViewManager.getInstance().showSnackbar(message, isWarning); } /** @@ -151,10 +151,10 @@ public class KeyBindingDialogController implements Initializable { private void keyPressed(KeyEvent event, Button button) { KeyAction buttonAction = buttonActionMap.get(button); if (gameKeyBind.bindKeyToAction(event.getCode(), buttonAction)) { - showSnackBar(button.getId() + " is set to " + event.getCode().getName()); + showSnackBar(button.getId() + " is set to " + event.getCode().getName(), false); button.setText(gameKeyBind.getKeyCode(buttonAction).getName()); } else { - showSnackBar(event.getCode().getName() + " is already in use"); + showSnackBar(event.getCode().getName() + " is already in use", true); } event.consume(); } diff --git a/src/main/resources/css/Master.css b/src/main/resources/css/Master.css index c1d97ddd..47dd9e83 100644 --- a/src/main/resources/css/Master.css +++ b/src/main/resources/css/Master.css @@ -102,16 +102,13 @@ } .jfx-snackbar-content { - -fx-background-color: WHITE; + -fx-background-color: -fx-pp-front-color; -fx-padding: 0 5 0 5; -fx-spacing: 0 5 0 5; - -fx-font-size: 18px; + -fx-font-size: 15; } .jfx-snackbar-toast { -fx-text-fill: -fx-pp-theme-color; -} - -.jfx-snackbar-action { - -fx-text-fill: #ff4081; + -fx-font-size: 15; } \ No newline at end of file diff --git a/src/main/resources/css/dialogs/KeyBindingDialog.css b/src/main/resources/css/dialogs/KeyBindingDialog.css index 51c147f1..3c417968 100644 --- a/src/main/resources/css/dialogs/KeyBindingDialog.css +++ b/src/main/resources/css/dialogs/KeyBindingDialog.css @@ -29,4 +29,16 @@ JFXToggleButton { #resetBtn:hover { -fx-font-size: 20; +} + +.jfx-snackbar-content { + -fx-background-color: #323232; +} + +.jfx-snackbar-toast { + -fx-text-fill: WHITE; +} + +.jfx-snackbar-action { + -fx-text-fill: #ff4081; } \ No newline at end of file diff --git a/src/main/resources/css/dialogs/Snackbar.css b/src/main/resources/css/dialogs/Snackbar.css new file mode 100644 index 00000000..0fbe23b2 --- /dev/null +++ b/src/main/resources/css/dialogs/Snackbar.css @@ -0,0 +1,4 @@ +/* a separate file to dynamically change snackbar's color */ +.jfx-snackbar-toast { + -fx-text-fill: red !important; +} \ No newline at end of file