Update calculator methods for new changes

This commit is contained in:
cugurlu
2019-04-06 21:26:52 +02:00
parent 95d5b2b971
commit e30f312c6a
2 changed files with 55 additions and 117 deletions

View File

@@ -16,7 +16,6 @@ import javafx.fxml.FXML;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane; import javafx.scene.control.ScrollPane;
import javafx.scene.control.Slider; import javafx.scene.control.Slider;
@@ -34,7 +33,6 @@ import java.text.DecimalFormat;
@Controller @Controller
public class CalculatorController { public class CalculatorController {
private static UserController.AlertHelper AlertHelper;
@Autowired @Autowired
UserService userService; UserService userService;
@@ -146,15 +144,6 @@ public class CalculatorController {
//extra pane //extra pane
@FXML @FXML
private AnchorPane extraPane; private AnchorPane extraPane;
@FXML
private CheckBox localProduceCheckbox;
@FXML
private CheckBox bikeCheckbox;
@FXML
private CheckBox temperatureCheckbox;
@FXML
private CheckBox solarPanelsCheckbox;
/** /**
* initializes the window, performs some actions before loading all other things. * initializes the window, performs some actions before loading all other things.
@@ -372,7 +361,6 @@ public class CalculatorController {
foodPane.setVisible(false); foodPane.setVisible(false);
shoppingPane.setVisible(false); shoppingPane.setVisible(false);
extraPane.setVisible(true); extraPane.setVisible(true);
} }
/** /**
@@ -407,42 +395,15 @@ public class CalculatorController {
"input_footprint_shopping_services_total", "input_footprint_shopping_services_total",
servicesLabel.getText().replace("€ / month", "")); servicesLabel.getText().replace("€ / month", ""));
} }
checkCheckBoxes();
Float footprint = userService.saveFootprint(userService.currentUser.getName()); Float footprint = userService.saveFootprint(userService.currentUser.getName());
Window owner = saveButton.getScene().getWindow(); Window owner = saveButton.getScene().getWindow();
Stage current = (Stage) owner; Stage current = (Stage) owner;
current.close(); current.close();
controller.updateLeaderboard(); controller.updateLeaderboard();
CalculatorController.AlertHelper.showAlert(Alert.AlertType.CONFIRMATION, UserController.AlertHelper.showAlert(Alert.AlertType.CONFIRMATION,
owner, "Footprint saved!", "Your footprint is saved!"); owner, "Footprint saved!", "Your footprint is saved!");
} }
/**
* Checks the check boxes.
*/
public void checkCheckBoxes() {
if (localProduceCheckbox.isSelected()) {
localProduceCheckbox.setSelected(true);
userService.updateExtraInput(userService.currentUser.getName(),
"local_produce", true);
}
if (bikeCheckbox.isSelected()) {
bikeCheckbox.setSelected(true);
userService.updateExtraInput(userService.currentUser.getName(),
"bike", true);
}
if (temperatureCheckbox.isSelected()) {
temperatureCheckbox.setSelected(true);
userService.updateExtraInput(userService.currentUser.getName(),
"temperature", true);
}
if (solarPanelsCheckbox.isSelected()) {
solarPanelsCheckbox.setSelected(true);
userService.updateExtraInput(userService.currentUser.getName(),
"solar_panels", true);
}
}
/** /**
* Checks the food labels. * Checks the food labels.
*/ */
@@ -477,7 +438,7 @@ public class CalculatorController {
} }
/** /**
* Checks the housing labels. * Checks the house labels.
*/ */
public void checkHousingLabels() { public void checkHousingLabels() {
if (!electricityField.getText().equals("0")) { if (!electricityField.getText().equals("0")) {
@@ -531,30 +492,30 @@ public class CalculatorController {
"input_footprint_transportation_miles1", "input_footprint_transportation_miles1",
carTravelGasolineField.getText()); carTravelGasolineField.getText());
} }
if (!carTravelGasolineLabel.getText().replace(" mpg", "").equals("0")) { if (!carTravelGasolineLabel.getText().replace(" km/L", "").equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_mpg1", "input_footprint_transportation_mpg1",
carTravelGasolineLabel.getText().replace(" mpg", "")); carTravelGasolineLabel.getText().replace(" km/L", ""));
} }
if (!carTravelDieselField.getText().equals("0")) { if (!carTravelDieselField.getText().equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_miles2", "input_footprint_transportation_miles2",
carTravelDieselField.getText()); carTravelDieselField.getText());
} }
if (!carTravelDieselLabel.getText().replace(" mpg", "").equals("0")) { if (!carTravelDieselLabel.getText().replace(" km/L", "").equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_mpg2", "input_footprint_transportation_mpg2",
carTravelDieselLabel.getText().replace(" mpg", "")); carTravelDieselLabel.getText().replace(" km/L", ""));
} }
if (!carTravelElectricField.getText().equals("0")) { if (!carTravelElectricField.getText().equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_miles3", "input_footprint_transportation_miles3",
carTravelElectricField.getText()); carTravelElectricField.getText());
} }
if (!carTravelElectricLabel.getText().replace(" mpge", "").equals("0")) { if (!carTravelElectricLabel.getText().replace(" km/Le", "").equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_mpg3", "input_footprint_transportation_mpg3",
carTravelElectricLabel.getText().replace(" mpge", "")); carTravelElectricLabel.getText().replace(" km/Le", ""));
} }
} }
} }

View File

@@ -1,9 +1,14 @@
package greenify.client.controller; package greenify.client.controller;
import com.sun.javafx.scene.control.skin.ButtonSkin;
import greenify.client.Application; import greenify.client.Application;
import greenify.client.rest.UserService; import greenify.client.rest.UserService;
import javafx.animation.*; 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.beans.value.ChangeListener; import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue; import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
@@ -13,7 +18,6 @@ import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.PasswordField; import javafx.scene.control.PasswordField;
import javafx.scene.control.ScrollPane; import javafx.scene.control.ScrollPane;
@@ -36,12 +40,11 @@ import java.util.concurrent.TimeUnit;
*/ */
@Controller @Controller
public class RegisterWindowController { public class RegisterWindowController {
@Autowired @Autowired
UserService userService; UserService userService;
@Autowired @Autowired
DashBoardController controller; ExtraActivityController extraActivityController;
//navigation panes //navigation panes
@FXML @FXML
@@ -148,15 +151,6 @@ public class RegisterWindowController {
//extra pane //extra pane
@FXML @FXML
private AnchorPane extraPane; private AnchorPane extraPane;
@FXML
private CheckBox localProduceCheckbox;
@FXML
private CheckBox bikeCheckbox;
@FXML
private CheckBox temperatureCheckbox;
@FXML
private CheckBox solarPanelsCheckbox;
@FXML @FXML
private TextField userNameText; private TextField userNameText;
@FXML @FXML
@@ -177,7 +171,6 @@ public class RegisterWindowController {
addSlideAnimation(1100, passwordField, 300); addSlideAnimation(1100, passwordField, 300);
TimeUnit.MILLISECONDS.sleep(300); TimeUnit.MILLISECONDS.sleep(300);
addSlideAnimation(1100, passwordField2, -420); addSlideAnimation(1100, passwordField2, -420);
signUpButton.setSkin(new SignUpButtonSkin(signUpButton));
} }
/** /**
@@ -267,9 +260,9 @@ public class RegisterWindowController {
} }
}); });
addSliderListenerCarUsage(carTravelGasolineSlider, carTravelGasolineLabel, " mpg"); addSliderListenerCarUsage(carTravelGasolineSlider, carTravelGasolineLabel, " km/L");
addSliderListenerCarUsage(carTravelDieselSlider, carTravelDieselLabel, " mpg"); addSliderListenerCarUsage(carTravelDieselSlider, carTravelDieselLabel, " km/L");
addSliderListenerCarUsage(carTravelElectricSlider, carTravelElectricLabel, " mpge"); addSliderListenerCarUsage(carTravelElectricSlider, carTravelElectricLabel, " km/Le");
cleanEnergyPurchasedSlider.valueProperty().addListener(new ChangeListener<Number>() { cleanEnergyPurchasedSlider.valueProperty().addListener(new ChangeListener<Number>() {
@Override @Override
@@ -312,6 +305,7 @@ public class RegisterWindowController {
}); });
} }
@SuppressWarnings("Duplicates")
private void addSliderListenerDailyServing(Slider slider, Label label) { private void addSliderListenerDailyServing(Slider slider, Label label) {
DecimalFormat df = new DecimalFormat("0.0"); DecimalFormat df = new DecimalFormat("0.0");
slider.valueProperty().addListener(new ChangeListener<Number>() { slider.valueProperty().addListener(new ChangeListener<Number>() {
@@ -333,6 +327,23 @@ public class RegisterWindowController {
}); });
} }
/**
* adds a fade transition to the given node.
* @param node the node to add the transition to
*/
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.setFromY(800);
trans.setToY(0);
ParallelTransition par = new ParallelTransition();
par.setNode(travelPane);
par.getChildren().addAll(fade, trans);
par.play();
}
private void addSlideInAnimation(Node node) { private void addSlideInAnimation(Node node) {
Timeline timeline = new Timeline(); Timeline timeline = new Timeline();
KeyValue keyValue = new KeyValue(node.translateXProperty(), 0, Interpolator.EASE_OUT); KeyValue keyValue = new KeyValue(node.translateXProperty(), 0, Interpolator.EASE_OUT);
@@ -348,6 +359,7 @@ public class RegisterWindowController {
*/ */
@SuppressWarnings("Duplicates") @SuppressWarnings("Duplicates")
public void displayGetStarted(ActionEvent event) { public void displayGetStarted(ActionEvent event) {
addFadeTransAnimation(getStartedPane);
getStartedPane.setVisible(true); getStartedPane.setVisible(true);
travelPane.setVisible(false); travelPane.setVisible(false);
homePane.setVisible(false); homePane.setVisible(false);
@@ -363,7 +375,7 @@ public class RegisterWindowController {
*/ */
@SuppressWarnings("Duplicates") @SuppressWarnings("Duplicates")
public void displayTravel(ActionEvent event) { public void displayTravel(ActionEvent event) {
addSlideInAnimation(travelPane); addFadeTransAnimation(travelPane);
getStartedPane.setVisible(false); getStartedPane.setVisible(false);
travelPane.setVisible(true); travelPane.setVisible(true);
homePane.setVisible(false); homePane.setVisible(false);
@@ -380,6 +392,7 @@ public class RegisterWindowController {
*/ */
@SuppressWarnings("Duplicates") @SuppressWarnings("Duplicates")
public void displayHome(ActionEvent event) { public void displayHome(ActionEvent event) {
addFadeTransAnimation(homePane);
getStartedPane.setVisible(false); getStartedPane.setVisible(false);
travelPane.setVisible(false); travelPane.setVisible(false);
homePane.setVisible(true); homePane.setVisible(true);
@@ -395,6 +408,7 @@ public class RegisterWindowController {
*/ */
@SuppressWarnings("Duplicates") @SuppressWarnings("Duplicates")
public void displayFood(ActionEvent event) { public void displayFood(ActionEvent event) {
addFadeTransAnimation(foodPane);
getStartedPane.setVisible(false); getStartedPane.setVisible(false);
travelPane.setVisible(false); travelPane.setVisible(false);
homePane.setVisible(false); homePane.setVisible(false);
@@ -410,6 +424,7 @@ public class RegisterWindowController {
*/ */
@SuppressWarnings("Duplicates") @SuppressWarnings("Duplicates")
public void displayShopping(ActionEvent event) { public void displayShopping(ActionEvent event) {
addFadeTransAnimation(shoppingPane);
getStartedPane.setVisible(false); getStartedPane.setVisible(false);
travelPane.setVisible(false); travelPane.setVisible(false);
homePane.setVisible(false); homePane.setVisible(false);
@@ -424,7 +439,10 @@ public class RegisterWindowController {
* @param event the click of the designated button * @param event the click of the designated button
*/ */
@SuppressWarnings("Duplicates") @SuppressWarnings("Duplicates")
public void displayExtra(ActionEvent event) { public void displayExtra(ActionEvent event) throws IOException {
addFadeTransAnimation(extraPane);
extraPane.getChildren().setAll((Node) Application.load(this.getClass()
.getClassLoader().getResource("fxml/extraActivities.fxml")));
getStartedPane.setVisible(false); getStartedPane.setVisible(false);
travelPane.setVisible(false); travelPane.setVisible(false);
homePane.setVisible(false); homePane.setVisible(false);
@@ -466,27 +484,13 @@ public class RegisterWindowController {
"input_footprint_shopping_services_total", "input_footprint_shopping_services_total",
servicesLabel.getText().replace("€ / month", "")); servicesLabel.getText().replace("€ / month", ""));
} }
if (localProduceCheckbox.isSelected()) {
userService.updateExtraInput(userService.currentUser.getName(),
"local_produce", true);
}
if (bikeCheckbox.isSelected()) {
userService.updateExtraInput(userService.currentUser.getName(),
"bike", true);
}
if (temperatureCheckbox.isSelected()) {
userService.updateExtraInput(userService.currentUser.getName(),
"temperature", true);
}
if (solarPanelsCheckbox.isSelected()) {
userService.updateExtraInput(userService.currentUser.getName(),
"solar_panels", true);
}
Float firstFootprint = userService.saveFirstFootprint(userService.currentUser.getName()); Float firstFootprint = userService.saveFirstFootprint(userService.currentUser.getName());
Float footprint = userService.saveFootprint(userService.currentUser.getName()); Float footprint = userService.saveFootprint(userService.currentUser.getName());
Window owner = saveButton.getScene().getWindow(); Window owner = saveButton.getScene().getWindow();
Stage current = (Stage) owner; Stage current = (Stage) owner;
current.close(); current.close();
UserController.AlertHelper.showAlert(Alert.AlertType.CONFIRMATION,
owner, "Footprint saved!", "Your footprint is saved!");
} }
/** /**
@@ -577,57 +581,30 @@ public class RegisterWindowController {
"input_footprint_transportation_miles1", "input_footprint_transportation_miles1",
carTravelGasolineField.getText()); carTravelGasolineField.getText());
} }
if (!carTravelGasolineLabel.getText().replace(" mpg", "").equals("0")) { if (!carTravelGasolineLabel.getText().replace(" km/L", "").equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_mpg1", "input_footprint_transportation_mpg1",
carTravelGasolineLabel.getText().replace(" mpg", "")); carTravelGasolineLabel.getText().replace(" km/L", ""));
} }
if (!carTravelDieselField.getText().equals("0")) { if (!carTravelDieselField.getText().equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_miles2", "input_footprint_transportation_miles2",
carTravelDieselField.getText()); carTravelDieselField.getText());
} }
if (!carTravelDieselLabel.getText().replace(" mpg", "").equals("0")) { if (!carTravelDieselLabel.getText().replace(" km/L", "").equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_mpg2", "input_footprint_transportation_mpg2",
carTravelDieselLabel.getText().replace(" mpg", "")); carTravelDieselLabel.getText().replace(" km/L", ""));
} }
if (!carTravelElectricField.getText().equals("0")) { if (!carTravelElectricField.getText().equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_miles3", "input_footprint_transportation_miles3",
carTravelElectricField.getText()); carTravelElectricField.getText());
} }
if (!carTravelElectricLabel.getText().replace(" mpge", "").equals("0")) { if (!carTravelElectricLabel.getText().replace(" km/Le", "").equals("0")) {
userService.updateInput(userService.currentUser.getName(), userService.updateInput(userService.currentUser.getName(),
"input_footprint_transportation_mpg3", "input_footprint_transportation_mpg3",
carTravelElectricLabel.getText().replace(" mpge", "")); carTravelElectricLabel.getText().replace(" km/Le", ""));
} }
} }
}
@SuppressWarnings("Duplicates")
private class SignUpButtonSkin extends ButtonSkin {
/**
* button skin for the 'add activity' buttons.
* adds scale animations on entering, clicking and extiting the button
* @param button the button to set the skin of
*/
private SignUpButtonSkin(Button button) {
super(button);
//transition to scale up on hover
final ScaleTransition scaleUp = new ScaleTransition(Duration.millis(85));
//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 scaleDown = new ScaleTransition(Duration.millis(85));
scaleDown.setNode(button);
scaleDown.setToX(1.0);
scaleDown.setToY(1.0);
button.setOnMouseExited(e -> scaleDown.playFromStart());
}
}
}