From 78e050751f492c9142f42afe9ac689f6eca35d0e Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 10 Apr 2019 11:49:31 +0200 Subject: [PATCH 1/6] ADD::added animations to buttons in login and register screen --- .../controller/RegisterWindowController.java | 44 ++++++++++++++++--- .../client/controller/UserController.java | 41 +++++++++++++++++ 2 files changed, 78 insertions(+), 7 deletions(-) diff --git a/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java b/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java index 84937d5..bb00039 100644 --- a/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java +++ b/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java @@ -1,14 +1,9 @@ package greenify.client.controller; +import com.sun.javafx.scene.control.skin.ButtonSkin; import greenify.client.Application; import greenify.client.rest.UserService; -import javafx.animation.FadeTransition; -import javafx.animation.Interpolator; -import javafx.animation.KeyFrame; -import javafx.animation.KeyValue; -import javafx.animation.ParallelTransition; -import javafx.animation.Timeline; -import javafx.animation.TranslateTransition; +import javafx.animation.*; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; @@ -172,6 +167,8 @@ public class RegisterWindowController { addSlideAnimation(1100, passwordField, 300); TimeUnit.MILLISECONDS.sleep(300); addSlideAnimation(1100, passwordField2, -420); + + signUpButton.setSkin(new registerButtonSkin(signUpButton)); } /** @@ -613,4 +610,37 @@ public class RegisterWindowController { carTravelElectricLabel.getText().replace(" km/Le", "")); } } + + @SuppressWarnings("Duplicates") + public class registerButtonSkin extends ButtonSkin { + public registerButtonSkin(Button button) { + super(button); + + ScaleTransition scaleUp = new ScaleTransition(Duration.millis(140)); + scaleUp.setToX(1.2); + scaleUp.setToY(1.2); + scaleUp.setNode(button); + button.setOnMouseEntered(e -> scaleUp.playFromStart()); + + ScaleTransition scaleMiddleDown = new ScaleTransition(Duration.millis(50)); + + scaleMiddleDown.setToX(1.1); + scaleMiddleDown.setToY(1.1); + scaleMiddleDown.setNode(button); + button.setOnMousePressed(e -> scaleMiddleDown.playFromStart()); + + ScaleTransition scaleMiddleUp = new ScaleTransition(Duration.millis(50)); + + scaleMiddleUp.setToX(1.2); + scaleMiddleUp.setToY(1.2); + scaleMiddleUp.setNode(button); + button.setOnMouseReleased(e -> scaleMiddleUp.playFromStart()); + + ScaleTransition scaleDown = new ScaleTransition(Duration.millis(200)); + scaleDown.setToX(1.0); + scaleDown.setToY(1.0); + scaleDown.setNode(button); + button.setOnMouseExited(e -> scaleDown.playFromStart()); + } + } } \ No newline at end of file diff --git a/src/Client/src/main/java/greenify/client/controller/UserController.java b/src/Client/src/main/java/greenify/client/controller/UserController.java index ed0ea13..e074fe8 100644 --- a/src/Client/src/main/java/greenify/client/controller/UserController.java +++ b/src/Client/src/main/java/greenify/client/controller/UserController.java @@ -1,7 +1,9 @@ package greenify.client.controller; +import com.sun.javafx.scene.control.skin.ButtonSkin; import greenify.client.Application; import greenify.client.rest.UserService; +import javafx.animation.ScaleTransition; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.Parent; @@ -12,6 +14,7 @@ import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.stage.Stage; import javafx.stage.Window; +import javafx.util.Duration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.client.HttpClientErrorException; @@ -36,6 +39,10 @@ public class UserController { @FXML private Button signUpButton; + public void initialize() { + loginButton.setSkin(new LoginButtonSkin(loginButton)); + signUpButton.setSkin(new LoginButtonSkin(signUpButton)); + } /** * Handles when the user clicks on the login button. * it checks if the username and password fields are filled @@ -142,5 +149,39 @@ public class UserController { registerStage.show(); } + @SuppressWarnings("Duplicates") + public class LoginButtonSkin extends ButtonSkin { + public LoginButtonSkin(Button button) { + super(button); + ScaleTransition scaleUp = new ScaleTransition(Duration.millis(140)); + scaleUp.setToX(1.1); + scaleUp.setToY(1.1); + scaleUp.setNode(button); + button.setOnMouseEntered(e -> scaleUp.playFromStart()); + + ScaleTransition scaleMiddleDown = new ScaleTransition(Duration.millis(50)); + scaleMiddleDown.setFromX(1.1); + scaleMiddleDown.setFromY(1.1); + scaleMiddleDown.setToX(1.05); + scaleMiddleDown.setToY(1.05); + scaleMiddleDown.setNode(button); + button.setOnMousePressed(e -> scaleMiddleDown.playFromStart()); + + ScaleTransition scaleMiddleUp = new ScaleTransition(Duration.millis(50)); + scaleMiddleUp.setFromX(1.05); + scaleMiddleUp.setFromY(1.05); + scaleMiddleUp.setToX(1.1); + scaleMiddleUp.setToY(1.1); + scaleMiddleUp.setNode(button); + button.setOnMouseReleased(e -> scaleMiddleUp.playFromStart()); + + ScaleTransition scaleDown = new ScaleTransition(Duration.millis(200)); + scaleDown.setToX(1.0); + scaleDown.setToY(1.0); + scaleDown.setNode(button); + button.setOnMouseExited(e -> scaleDown.playFromStart()); + } + } + } From cfc238af73b5ae0117d7fc9ff6c57424a08dc289 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 10 Apr 2019 12:04:17 +0200 Subject: [PATCH 2/6] ADD::Added animations to switching panes in extra activities --- .../controller/ExtraActivityController.java | 22 ++++ .../src/main/resources/fxml/dashboard.fxml | 8 +- .../main/resources/fxml/extraActivities.fxml | 115 +++++++++--------- 3 files changed, 84 insertions(+), 61 deletions(-) diff --git a/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java b/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java index 51f128e..1270013 100644 --- a/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java +++ b/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java @@ -2,12 +2,15 @@ package greenify.client.controller; import com.sun.javafx.scene.control.skin.ButtonSkin; import greenify.client.rest.UserService; +import javafx.animation.FadeTransition; +import javafx.animation.ParallelTransition; import javafx.animation.ScaleTransition; import javafx.animation.TranslateTransition; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; import javafx.fxml.FXML; +import javafx.scene.Node; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.Slider; @@ -129,12 +132,26 @@ public class ExtraActivityController { }); } + public void addFadeTransAnimation(Node node) { + FadeTransition fade = new FadeTransition(Duration.millis(350), node); + fade.setFromValue(0); + fade.setToValue(1.0); + TranslateTransition trans = new TranslateTransition(Duration.millis(350), node); + trans.setFromX(-800); + trans.setToX(0); + ParallelTransition par = new ParallelTransition(); + par.setNode(node); + par.getChildren().addAll(fade, trans); + par.play(); + } + /** * displays the vegetarian meal section. * @param event the click of the designated button */ public void displayVeganMeal(ActionEvent event) { // System.out.println("display vm"); + addFadeTransAnimation(veganMealPane); veganMealPane.setVisible(true); bikePane.setVisible(false); temperaturePane.setVisible(false); @@ -149,6 +166,7 @@ public class ExtraActivityController { */ public void displayBike(ActionEvent event) { // System.out.println("display b"); + addFadeTransAnimation(bikePane); veganMealPane.setVisible(false); bikePane.setVisible(true); temperaturePane.setVisible(false); @@ -163,6 +181,7 @@ public class ExtraActivityController { */ public void displayTemperature(ActionEvent event) { // System.out.println("display t"); + addFadeTransAnimation(temperaturePane); veganMealPane.setVisible(false); bikePane.setVisible(false); temperaturePane.setVisible(true); @@ -177,6 +196,7 @@ public class ExtraActivityController { */ public void displaySolarPanel(ActionEvent event) { // System.out.println("display sp"); + addFadeTransAnimation(solarPanelPane); veganMealPane.setVisible(false); bikePane.setVisible(false); temperaturePane.setVisible(false); @@ -190,6 +210,7 @@ public class ExtraActivityController { * @param event the click of the designated button */ public void displayLocalProduce(ActionEvent event) { + addFadeTransAnimation(localProducePane); veganMealPane.setVisible(false); bikePane.setVisible(false); temperaturePane.setVisible(false); @@ -203,6 +224,7 @@ public class ExtraActivityController { * @param event the click of the designated button */ public void displayPublicTransport(ActionEvent event) { + addFadeTransAnimation(publicTransportPane); veganMealPane.setVisible(false); bikePane.setVisible(false); temperaturePane.setVisible(false); diff --git a/src/Client/src/main/resources/fxml/dashboard.fxml b/src/Client/src/main/resources/fxml/dashboard.fxml index aedd381..35fdf34 100644 --- a/src/Client/src/main/resources/fxml/dashboard.fxml +++ b/src/Client/src/main/resources/fxml/dashboard.fxml @@ -461,14 +461,14 @@ - - + + - - + +