ADD::added animations to extra activities section

This commit is contained in:
Sem van der Hoeven
2019-04-04 10:43:32 +02:00
parent 9e6505dfa3
commit 6ced05278b
2 changed files with 73 additions and 0 deletions

View File

@@ -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());
}
}
}

View File

@@ -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;