From 3dec44ada139584e31c5cbbfbc085c82524ffc9c Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 27 Mar 2019 13:10:21 +0100 Subject: [PATCH 1/4] EDIT::Finished Travel GUI section of calculator --- .../controller/CalculatorController.java | 45 +++++++--- .../src/main/resources/fxml/calculator.fxml | 90 ++++++++++++++++++- .../resources/stylesheets/calculatorStyle.css | 6 ++ 3 files changed, 126 insertions(+), 15 deletions(-) diff --git a/src/Client/src/main/java/greenify/client/controller/CalculatorController.java b/src/Client/src/main/java/greenify/client/controller/CalculatorController.java index fd77140..ac525dd 100644 --- a/src/Client/src/main/java/greenify/client/controller/CalculatorController.java +++ b/src/Client/src/main/java/greenify/client/controller/CalculatorController.java @@ -18,16 +18,6 @@ public class CalculatorController { @Autowired UserService userService; - @FXML - private Button calculatorGetStartedButton; - @FXML - private Button calculatorTravelButton; - @FXML - private Button calculatorHomeButton; - @FXML - private Button calculatorFoodButton; - @FXML - private Button calculatorShoppingButton; @FXML private AnchorPane getStartedPane; @FXML @@ -48,12 +38,29 @@ public class CalculatorController { private Label annualIncomeLabel; @FXML private Button saveButton; - // @FXML - // private Button getStartedNextButton; + //travel pane @FXML private TextField publicTransitField; @FXML private TextField airplaneTravelField; + @FXML + private TextField carTravelGasolineField; + @FXML + private Slider carTravelGasolineSlider; + @FXML + private Label carTravelGasolineLabel; + @FXML + private TextField carTravelDieselField; + @FXML + private Slider carTravelDieselSlider; + @FXML + private Label carTravelDieselLabel; + @FXML + private TextField carTravelElectricField; + @FXML + private Slider carTravelElectricSlider; + @FXML + private Label carTravelElectricLabel; /** * initializes the window, performs some actions before loading all other things. @@ -80,6 +87,20 @@ public class CalculatorController { annualIncomeLabel.setText("" + (newValue.intValue() * 1000)); } }); + + addSliderListenerCarUsage(carTravelGasolineSlider, carTravelGasolineLabel); + addSliderListenerCarUsage(carTravelDieselSlider, carTravelDieselLabel); + addSliderListenerCarUsage(carTravelElectricSlider, carTravelElectricLabel); + } + + private void addSliderListenerCarUsage(Slider slider, Label label) { + slider.valueProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, + Number oldValue, Number newValue) { + label.setText(newValue.intValue() + "L/km"); + } + }); } /** diff --git a/src/Client/src/main/resources/fxml/calculator.fxml b/src/Client/src/main/resources/fxml/calculator.fxml index 8e91268..44bec69 100644 --- a/src/Client/src/main/resources/fxml/calculator.fxml +++ b/src/Client/src/main/resources/fxml/calculator.fxml @@ -141,7 +141,85 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -157,13 +235,19 @@ - + + + + - + + + + diff --git a/src/Client/src/main/resources/stylesheets/calculatorStyle.css b/src/Client/src/main/resources/stylesheets/calculatorStyle.css index a60f95f..c205ea7 100644 --- a/src/Client/src/main/resources/stylesheets/calculatorStyle.css +++ b/src/Client/src/main/resources/stylesheets/calculatorStyle.css @@ -36,6 +36,12 @@ -fx-padding: 0 0 0 3px; } +.km-indicator { + -fx-background-color: #89a888; + -fx-background-radius: 5px; + -fx-border-radius: 5px; +} + From 980e64657a32dafc89be87030497bc85ca36800d Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 27 Mar 2019 20:51:14 +0100 Subject: [PATCH 2/4] EDIT::finished home section of calculator --- .../controller/CalculatorController.java | 96 +++++++++- .../src/main/resources/fxml/calculator.fxml | 181 ++++++++++++++++-- .../src/main/resources/icons/leaficon.png | Bin 0 -> 6350 bytes .../resources/stylesheets/calculatorStyle.css | 12 ++ 4 files changed, 261 insertions(+), 28 deletions(-) create mode 100644 src/Client/src/main/resources/icons/leaficon.png diff --git a/src/Client/src/main/java/greenify/client/controller/CalculatorController.java b/src/Client/src/main/java/greenify/client/controller/CalculatorController.java index ac525dd..3a25c06 100644 --- a/src/Client/src/main/java/greenify/client/controller/CalculatorController.java +++ b/src/Client/src/main/java/greenify/client/controller/CalculatorController.java @@ -10,6 +10,7 @@ import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.control.TextField; import javafx.scene.layout.AnchorPane; +import javafx.util.StringConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -18,6 +19,7 @@ public class CalculatorController { @Autowired UserService userService; + //navigation panes @FXML private AnchorPane getStartedPane; @FXML @@ -28,6 +30,8 @@ public class CalculatorController { private AnchorPane foodPane; @FXML private AnchorPane shoppingPane; + + //'get started' pane @FXML private Slider peopleInHouseholdSlider; @FXML @@ -38,6 +42,7 @@ public class CalculatorController { private Label annualIncomeLabel; @FXML private Button saveButton; + //travel pane @FXML private TextField publicTransitField; @@ -62,14 +67,23 @@ public class CalculatorController { @FXML private Label carTravelElectricLabel; + //home pane + @FXML + private Slider cleanEnergyPurchasedSlider; + @FXML + private Label cleanEnergyPurchasedLabel; + @FXML + private Slider waterUsageSlider; + @FXML + private Label waterUsageLabel; + /** * initializes the window, performs some actions before loading all other things. - * it sets the sliders to snap to the ticks - * it adds listeners to all the sliders for updating the label next to them + * it sets the sliders to snap to the ticks. + * it adds listeners to all the sliders for updating the label they are associated with. */ public void initialize() { peopleInHouseholdSlider.setSnapToTicks(true); - annualIncomeSlider.setSnapToTicks(true); //add listener to slider for amount of people in household peopleInHouseholdSlider.valueProperty().addListener(new ChangeListener() { @@ -88,17 +102,83 @@ public class CalculatorController { } }); - addSliderListenerCarUsage(carTravelGasolineSlider, carTravelGasolineLabel); - addSliderListenerCarUsage(carTravelDieselSlider, carTravelDieselLabel); - addSliderListenerCarUsage(carTravelElectricSlider, carTravelElectricLabel); + addSliderListenerCarUsage(carTravelGasolineSlider, carTravelGasolineLabel, " km/L"); + addSliderListenerCarUsage(carTravelDieselSlider, carTravelDieselLabel, " km/L"); + addSliderListenerCarUsage(carTravelElectricSlider, carTravelElectricLabel, " km/Le"); + + cleanEnergyPurchasedSlider.valueProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, + Number oldValue, Number newValue) { + cleanEnergyPurchasedLabel.setText(newValue.intValue() + " %"); + } + }); + + waterUsageSlider.valueProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, + Number oldValue, Number newValue) { + waterUsageLabel.setText(newValue.intValue() + "% of similar households"); + } + }); +// addLabelFormatterToSlider(waterUsageSlider); + + + + } - private void addSliderListenerCarUsage(Slider slider, Label label) { + /** + * Adds a label formatter to the given slider. + * sets the tick labels to be either 0, 1x, 2x or 3x. + * @param slider the slider to change the tick labels of. + */ + private void addLabelFormatterToSlider(Slider slider) { + slider.setLabelFormatter(new StringConverter() { + @Override + public String toString(Double object) { + if (object < 0.5) { + return "0"; + } + if (object < 1.5) { + return "1x"; + } + if (object < 2.5) { + return "2x"; + } + return "3x"; + } + + @Override + public Double fromString(String string) { + switch (string) { + case "0": + return 0d; + case "1x": + return 1d; + case "2x": + return 2d; + case "3x": + return 3d; + + default: + return 3d; + } + } + }); + } + + /** + * adds the listener to the given slider and displays it's output on a given label. + * @param slider the slider to attach the listener to. + * @param label the label to display the slider output on. + */ + private void addSliderListenerCarUsage(Slider slider, Label label, String unit) { slider.valueProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - label.setText(newValue.intValue() + "L/km"); + label.setText(newValue.intValue() + unit); } }); } diff --git a/src/Client/src/main/resources/fxml/calculator.fxml b/src/Client/src/main/resources/fxml/calculator.fxml index 44bec69..428865e 100644 --- a/src/Client/src/main/resources/fxml/calculator.fxml +++ b/src/Client/src/main/resources/fxml/calculator.fxml @@ -1,16 +1,19 @@ - - - - - - - - - + + + + + + + + + + + + - + @@ -104,14 +107,14 @@ - + - + - + @@ -411,7 +417,167 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -531,7 +531,7 @@ - +