From 6ced05278b278b513900e7b5297a1daa03e358ba Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Thu, 4 Apr 2019 10:43:32 +0200 Subject: [PATCH] ADD::added animations to extra activities section --- .../controller/ExtraActivityController.java | 66 +++++++++++++++++++ .../stylesheets/extraActivitiesStyle.css | 7 ++ 2 files changed, 73 insertions(+) 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 ecb9ba3..ca23f72 100644 --- a/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java +++ b/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java @@ -1,6 +1,9 @@ package greenify.client.controller; +import com.sun.javafx.scene.control.skin.ButtonSkin; import greenify.client.rest.UserService; +import javafx.animation.ScaleTransition; +import javafx.animation.TranslateTransition; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; @@ -9,6 +12,7 @@ import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.layout.AnchorPane; +import javafx.util.Duration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -65,6 +69,16 @@ public class ExtraActivityController { coupleSliderToLabel(temperatureSlider, temperatureLabel, " Degrees", true); coupleSliderToLabel(solarPanelsSlider, solarPanelsLabel, "", true); + addVeganMealButton.setSkin(new ActivityButtonSkin(addVeganMealButton)); + addBikeButton.setSkin(new ActivityButtonSkin(addBikeButton)); + addTemperatureButton.setSkin(new ActivityButtonSkin(addTemperatureButton)); + addSolarPanelsButton.setSkin(new ActivityButtonSkin(addSolarPanelsButton)); + + displayVeganMealButton.setSkin(new TranslateButtonSkin(displayVeganMealButton)); + displayBikeButton.setSkin(new TranslateButtonSkin(displayBikeButton)); + displayTemperatureButton.setSkin(new TranslateButtonSkin(displayTemperatureButton)); + displaySolarPanelButton.setSkin(new TranslateButtonSkin(displaySolarPanelButton)); + } /** @@ -135,4 +149,56 @@ public class ExtraActivityController { temperaturePane.setVisible(false); solarPanelPane.setVisible(true); } + + public class TranslateButtonSkin extends ButtonSkin { + public TranslateButtonSkin(Button button) { + super(button); + + TranslateTransition transEnter = new TranslateTransition(Duration.millis(50)); + transEnter.setNode(button); + transEnter.setToX(10); + button.setOnMouseEntered(e -> transEnter.playFromStart()); + + TranslateTransition transExit = new TranslateTransition(Duration.millis(50)); + transExit.setNode(button); + transExit.setToX(1.0); + button.setOnMouseExited(e -> transExit.playFromStart()); + + } + } + + @SuppressWarnings("Duplicates") + public class ActivityButtonSkin extends ButtonSkin { + public ActivityButtonSkin(Button button) { + super(button); + + //transition to scale up on hover + final ScaleTransition scaleUp = new ScaleTransition(Duration.millis(100)); + //add the node and the position to scale to + scaleUp.setNode(button); + scaleUp.setToX(1.1); + scaleUp.setToY(1.1); + //play the transition when hovered over the button + button.setOnMouseEntered(e -> scaleUp.playFromStart()); + + final ScaleTransition scaleMiddleDown = new ScaleTransition(Duration.millis(50)); + scaleMiddleDown.setNode(button); + scaleMiddleDown.setToX(1.05); + scaleMiddleDown.setToY(1.05); + + button.setOnMousePressed(e -> scaleMiddleDown.playFromStart()); + + final ScaleTransition scaleMiddleUp = new ScaleTransition(Duration.millis(50)); + scaleMiddleUp.setNode(button); + scaleMiddleUp.setToX(1.1); + scaleMiddleUp.setToY(1.1); + button.setOnMouseReleased(e -> scaleMiddleUp.playFromStart()); + + final ScaleTransition scaleDown = new ScaleTransition(Duration.millis(100)); + scaleDown.setNode(button); + scaleDown.setToX(1.0); + scaleDown.setToY(1.0); + button.setOnMouseExited(e -> scaleDown.playFromStart()); + } + } } diff --git a/src/Client/src/main/resources/stylesheets/extraActivitiesStyle.css b/src/Client/src/main/resources/stylesheets/extraActivitiesStyle.css index e30c77a..49d9e80 100644 --- a/src/Client/src/main/resources/stylesheets/extraActivitiesStyle.css +++ b/src/Client/src/main/resources/stylesheets/extraActivitiesStyle.css @@ -1,6 +1,13 @@ .navButton { -fx-background-color: #6a7a6d; } +.navButton:hover { + -fx-background-color: #728475; +} + +.navButton:pressed { + -fx-background-color: #8cad91; +} .slider .track { -fx-background-color: #d3d3d3;