From 8195650226b53bf78e394fc43df696148ade3371 Mon Sep 17 00:00:00 2001 From: cugurlu Date: Mon, 8 Apr 2019 11:17:34 +0200 Subject: [PATCH] Fix all errors for extra activities --- .../controller/DashBoardController.java | 48 +++++++------ .../controller/ExtraActivityController.java | 67 +++++++++++++------ .../controller/RegisterWindowController.java | 7 +- .../main/resources/fxml/extraActivities.fxml | 23 ++----- .../java/greenify/server/InputValidator.java | 2 +- .../server/service/CalculatorService.java | 9 ++- 6 files changed, 92 insertions(+), 64 deletions(-) diff --git a/src/Client/src/main/java/greenify/client/controller/DashBoardController.java b/src/Client/src/main/java/greenify/client/controller/DashBoardController.java index b82e788..5679911 100644 --- a/src/Client/src/main/java/greenify/client/controller/DashBoardController.java +++ b/src/Client/src/main/java/greenify/client/controller/DashBoardController.java @@ -246,7 +246,6 @@ public class DashBoardController { addFriendButton.setSkin(new ClickButtonSkin(addFriendButton)); addExtraActivityButton.setSkin(new ClickButtonSkin(addExtraActivityButton)); addExtraActivityButton2.setSkin(new ClickButtonSkin(addExtraActivityButton2)); - addRandomHints(); } @@ -254,30 +253,31 @@ public class DashBoardController { * Sorts the scores of users. * @param users the list of users */ - public void sortScores(List users) throws InterruptedException { + public List sortScores(List users) throws InterruptedException { for (int i = 0; i < users.size(); i++) { for (int j = 0; j < users.size(); j++) { - Double firstScore = userService.getFootprint(users.get(i)); - Double secondScore = userService.getFootprint(users.get(j)); - if (i > j && firstScore < secondScore) { + Double first = userService.getFootprint(users.get(i)); + Double second = userService.getFootprint(users.get(j)); + if (i < j && first > second) { String temp = users.get(i); users.set(i, users.get(j)); users.set(j, temp); } - if (i < j && firstScore > secondScore) { + if (i > j && first < second) { String temp = users.get(i); users.set(i, users.get(j)); users.set(j, temp); } } } + return users; } /** * Sorts the scores of users. * @param users the list of users */ - public void sortDiffScores(List users) throws InterruptedException { + public List sortDiffScores(List users) throws InterruptedException { for (int i = 0; i < users.size(); i++) { for (int j = 0; j < users.size(); j++) { Double firstDiff = userService.getFirstFootprint(users.get(i)) - userService @@ -296,6 +296,7 @@ public class DashBoardController { } } } + return users; } /** @@ -364,7 +365,8 @@ public class DashBoardController { dairy.setText(inputMap.get("input_footprint_shopping_food_dairy")); fruits.setText(inputMap.get("input_footprint_shopping_food_fruitvegetables")); snacks.setText(inputMap.get("input_footprint_shopping_food_otherfood")); - Map extraMap = userService.getExtraInputs(userService.currentUser.getName()); + Map extraMap = userService + .getExtraInputs(userService.currentUser.getName()); localProduce.setText(extraMap.get("local_produce")); bike.setText(extraMap.get("bike")); solarPanels.setText(extraMap.get("solar_panels")); @@ -515,21 +517,23 @@ public class DashBoardController { * @throws InterruptedException throws exception */ public void updateLeaderboard() throws InterruptedException { - List userList = userService.getAllUsers(); //global leaderboard globalLeaderboard.getItems().clear(); globalLeaderData.removeAll(); - sortScores(userList); + List userList = userService.getAllUsers(); + List firstList = sortScores(userList); //development leaderboard developmentLeaderboard.getItems().clear(); developmentData.removeAll(); - sortDiffScores(userList); - for (int j = 0; j < userList.size(); j++) { - Friend user = new Friend(userList.get(j), userService.getFootprint(userList.get(j))); - double diff = Math.round((userService.getFirstFootprint(userList.get(j)) - - userService.getFootprint(userList.get(j))) * 10) / 10.0; - Friend diffUser = new Friend(userList.get(j), diff); + List secondList = sortDiffScores(userList); + for (int i = userList.size() - 1; i >= 0; i--) { + Friend user = new Friend(firstList.get(i), userService.getFootprint(firstList.get(i))); globalLeaderData.add(user); + } + for (int j = 0; j < userList.size(); j++) { + double diff = Math.round((userService.getFirstFootprint(secondList.get(j)) + - userService.getFootprint(secondList.get(j))) * 10) / 10.0; + Friend diffUser = new Friend(secondList.get(j), diff); developmentData.add(diffUser); } globalLeaderboard.setItems(globalLeaderData); @@ -572,32 +576,32 @@ public class DashBoardController { */ public void updateAchievements() { Map achievements = userService.getAchievements(userService.currentUser.getName()); - if((Boolean)achievements.get("Starting off")) { + if ((Boolean)achievements.get("Starting off")) { achieve1.setOpacity(1); } else { achieve1.setOpacity(0.3); } - if((Boolean)achievements.get("Social butterfly")) { + if ((Boolean)achievements.get("Social butterfly")) { achieve2.setOpacity(1); } else { achieve2.setOpacity(0.3); } - if((Boolean)achievements.get("Green saver")) { + if ((Boolean)achievements.get("Green saver")) { achieve3.setOpacity(1); } else { achieve3.setOpacity(0.3); } - if((Boolean)achievements.get("Animal friend")) { + if ((Boolean)achievements.get("Animal friend")) { achieve4.setOpacity(1); } else { achieve4.setOpacity(0.3); } - if((Boolean)achievements.get("Tom Dumoulin")) { + if ((Boolean)achievements.get("Tom Dumoulin")) { achieve5.setOpacity(1); } else { achieve5.setOpacity(0.3); } - if((Boolean)achievements.get("Let it shine")) { + if ((Boolean)achievements.get("Let it shine")) { achieve6.setOpacity(1); } else { achieve6.setOpacity(0.3); 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 f84dff5..4582daa 100644 --- a/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java +++ b/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java @@ -8,13 +8,10 @@ import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; import javafx.fxml.FXML; -import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.Slider; import javafx.scene.layout.AnchorPane; -import javafx.stage.Stage; -import javafx.stage.Window; import javafx.util.Duration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -83,8 +80,6 @@ public class ExtraActivityController { private Label publicTransportLabel; @FXML private Slider publicTransportSlider; - @FXML - private Button saveButton; /** @@ -216,29 +211,26 @@ public class ExtraActivityController { publicTransportPane.setVisible(true); } - - /** * The method updates the values. */ @SuppressWarnings("Duplicates") - public void save(ActionEvent event) throws InterruptedException { - Window owner = saveButton.getScene().getWindow(); - Float footprint = userService.saveFootprint(userService.currentUser.getName()); - controller.updateLeaderboard(); - controller.updateAchievements(); - Stage current = (Stage) owner; - current.close(); - UserController.AlertHelper.showAlert(Alert.AlertType.CONFIRMATION, owner, "Activities are added!", - "Your new activities are added!"); + public void save(ActionEvent event) { + try { + updateExtras(); + Float footprint = userService.saveFootprint(userService.currentUser.getName()); + controller.updateLeaderboard(); + controller.updateAchievements(); + } catch (Exception ex) { + System.out.println("continue"); + } } /** * The method updates the values of extras. - * @param event user clicks to button */ @SuppressWarnings("Duplicates") - public void updateExtras(ActionEvent event) throws InterruptedException { + public void updateExtras() throws InterruptedException { if (!bikeLabel.getText().replace(" km", "").equals("0")) { userService.updateExtraInput(userService.currentUser.getName(), "bike", @@ -251,11 +243,44 @@ public class ExtraActivityController { } if (!temperatureLabel.getText().replace(" Degrees", "").equals("0")) { userService.updateExtraInput(userService.currentUser.getName(), - "bike", + "temperature", temperatureLabel.getText().replace(" Degrees", "")); } - controller.updateAchievements(); - controller.updateLeaderboard(); + if (!publicTransportLabel.getText().replace(" km", "").equals("0")) { + userService.updateExtraInput(userService.currentUser.getName(), + "public_transport", + publicTransportLabel.getText().replace(" km", "")); + } + } + + /** + * The method updates the values of extras. + */ + @SuppressWarnings("Duplicates") + public void updateExtraVegan() throws InterruptedException { + try { + userService.updateExtraInput(userService.currentUser.getName(), "vegan", "1"); + Float footprint = userService.saveFootprint(userService.currentUser.getName()); + controller.updateAchievements(); + controller.updateLeaderboard(); + } catch (Exception ex) { + System.out.println("continue"); + } + } + + /** + * The method updates the values of extras. + */ + @SuppressWarnings("Duplicates") + public void updateExtraLocal() throws InterruptedException { + try { + userService.updateExtraInput(userService.currentUser.getName(), "local_produce", "1"); + Float footprint = userService.saveFootprint(userService.currentUser.getName()); + controller.updateAchievements(); + controller.updateLeaderboard(); + } catch (Exception ex) { + System.out.println("continue"); + } } public class TranslateButtonSkin extends ButtonSkin { 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 5073101..0b57ea8 100644 --- a/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java +++ b/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java @@ -221,7 +221,7 @@ public class RegisterWindowController { //register the user with the provided username and password try { userService.registerUser(userNameText.getText(), passwordField.getText()); - } catch (RuntimeException ex) { + } catch (Exception ex) { UserController.AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Username Error!", "This username has already been taken!"); return; @@ -484,6 +484,11 @@ public class RegisterWindowController { "input_footprint_shopping_services_total", servicesLabel.getText().replace("€ / month", "")); } + try { + extraActivityController.updateExtras(); + } catch (Exception ex) { + System.out.println("Continue"); + } Float firstFootprint = userService.saveFirstFootprint(userService.currentUser.getName()); Float footprint = userService.saveFootprint(userService.currentUser.getName()); Window owner = saveButton.getScene().getWindow(); diff --git a/src/Client/src/main/resources/fxml/extraActivities.fxml b/src/Client/src/main/resources/fxml/extraActivities.fxml index 657395e..514d756 100644 --- a/src/Client/src/main/resources/fxml/extraActivities.fxml +++ b/src/Client/src/main/resources/fxml/extraActivities.fxml @@ -1,21 +1,10 @@ - - - - - - - - - - - @@ -84,7 +73,7 @@ -