From abdaa14679c51c643326a5382ac4a42dabc07c14 Mon Sep 17 00:00:00 2001 From: cugurlu Date: Thu, 11 Apr 2019 14:22:13 +0200 Subject: [PATCH 1/5] Fix small problem in AchievementService --- .../greenify/server/service/AchievementService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Server/src/main/java/greenify/server/service/AchievementService.java b/src/Server/src/main/java/greenify/server/service/AchievementService.java index cc59bdc..6035b6a 100644 --- a/src/Server/src/main/java/greenify/server/service/AchievementService.java +++ b/src/Server/src/main/java/greenify/server/service/AchievementService.java @@ -38,6 +38,8 @@ public class AchievementService { public void achieveSocialButterfly(User user) { if (user.getFriends().size() >= 3) { userService.setAchievement(user.getName(), "Social butterfly", true); + } else { + userService.setAchievement(user.getName(), "Social butterfly", false); } } @@ -48,6 +50,8 @@ public class AchievementService { public void achieveGreenSaver(User user) { if (20 > user.getFootPrint()) { userService.setAchievement(user.getName(), "Green saver", true); + } else { + userService.setAchievement(user.getName(), "Green saver", false); } } @@ -59,6 +63,8 @@ public class AchievementService { int vegan = Integer.parseInt(user.getExtraInputs().get("vegan")); if (vegan > 10) { userService.setAchievement(user.getName(), "Animal friend", true); + } else { + userService.setAchievement(user.getName(), "Animal friend", false); } } @@ -70,6 +76,8 @@ public class AchievementService { int bike = Integer.parseInt(user.getExtraInputs().get("bike")); if (bike > 15) { userService.setAchievement(user.getName(), "Tom Dumoulin", true); + } else { + userService.setAchievement(user.getName(), "Tom Dumoulin", false); } } @@ -81,6 +89,8 @@ public class AchievementService { int solarPanels = Integer.parseInt(user.getExtraInputs().get("solar_panels")); if (solarPanels >= 2) { userService.setAchievement(user.getName(), "Let it shine", true); + } else { + userService.setAchievement(user.getName(), "Let it shine", false); } } From a2af22facbad47a33cf1eb18c7493a76cc29ceac Mon Sep 17 00:00:00 2001 From: cugurlu Date: Thu, 11 Apr 2019 14:22:41 +0200 Subject: [PATCH 2/5] Add fxml file and image for removeFriend property --- .../src/main/resources/fxml/RemoveFriend.fxml | 39 ++++++++++++++++++ .../main/resources/icons/remove_friend.png | Bin 0 -> 46779 bytes 2 files changed, 39 insertions(+) create mode 100644 src/Client/src/main/resources/fxml/RemoveFriend.fxml create mode 100644 src/Client/src/main/resources/icons/remove_friend.png diff --git a/src/Client/src/main/resources/fxml/RemoveFriend.fxml b/src/Client/src/main/resources/fxml/RemoveFriend.fxml new file mode 100644 index 0000000..5ea238a --- /dev/null +++ b/src/Client/src/main/resources/fxml/RemoveFriend.fxml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Client/src/main/resources/icons/remove_friend.png b/src/Client/src/main/resources/icons/remove_friend.png new file mode 100644 index 0000000000000000000000000000000000000000..f64e8495f2f47248654bf4d12174287ffdfc2708 GIT binary patch literal 46779 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 literal 0 HcmV?d00001 From 367daa1efff74267e19af540a49fcb75e6672cf0 Mon Sep 17 00:00:00 2001 From: cugurlu Date: Thu, 11 Apr 2019 14:22:58 +0200 Subject: [PATCH 3/5] Edit dashboard.fxml --- .../src/main/resources/fxml/dashboard.fxml | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/Client/src/main/resources/fxml/dashboard.fxml b/src/Client/src/main/resources/fxml/dashboard.fxml index 35fdf34..b8eba11 100644 --- a/src/Client/src/main/resources/fxml/dashboard.fxml +++ b/src/Client/src/main/resources/fxml/dashboard.fxml @@ -1,12 +1,5 @@ - - - - - - - @@ -23,9 +16,8 @@ - - + @@ -607,6 +599,30 @@ + + From 9006588eedad9e915aafd8f810ac78f701a6205a Mon Sep 17 00:00:00 2001 From: cugurlu Date: Thu, 11 Apr 2019 14:23:40 +0200 Subject: [PATCH 4/5] Add new methods to controllers to remove a friend --- .../controller/DashBoardController.java | 19 ++++++++ .../client/controller/FriendController.java | 46 ++++++++++++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) 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 5e9072b..f8c744b 100644 --- a/src/Client/src/main/java/greenify/client/controller/DashBoardController.java +++ b/src/Client/src/main/java/greenify/client/controller/DashBoardController.java @@ -93,6 +93,10 @@ public class DashBoardController { @FXML private Button addFriendButton; @FXML + private Button addFriend; + @FXML + private Button removeFriend; + @FXML private Button addExtraActivityButton; @FXML private Button addExtraActivityButton2; @@ -466,6 +470,7 @@ public class DashBoardController { updateFriends(); } + /** * Logs out the user. * @param event the event (clicking the button) @@ -570,6 +575,20 @@ public class DashBoardController { calcStage.show(); } + /** + * method opens removeFriend scene. + * @throws IOException when file is not found + */ + public void openRemoveFriend() throws IOException { + Parent calc = Application.load(this.getClass().getClassLoader() + .getResource("fxml/RemoveFriend.fxml")); + Scene scene = new Scene(calc); + Stage calcStage = new Stage(); + calcStage.setScene(scene); + calcStage.setTitle("Remove your friend - " + userService.currentUser.getName()); + calcStage.show(); + } + /** * Leaderboard is updating. * @throws InterruptedException throws exception diff --git a/src/Client/src/main/java/greenify/client/controller/FriendController.java b/src/Client/src/main/java/greenify/client/controller/FriendController.java index 4cbdc42..e4141d0 100644 --- a/src/Client/src/main/java/greenify/client/controller/FriendController.java +++ b/src/Client/src/main/java/greenify/client/controller/FriendController.java @@ -23,9 +23,13 @@ public class FriendController { private Button addButton; @FXML private TextField userNameText; + @FXML + private Button removeButton; + @FXML + private TextField removeUserNameText; /** - * Signs up the user. + * Add a new friend. * @param event the click of the sign up button */ @FXML @@ -58,8 +62,48 @@ public class FriendController { String friendName = userNameText.getText(); Stage current = (Stage) owner; dashBoardController.updateAchievements(); + dashBoardController.updateFriends(); current.close(); UserController.AlertHelper.showAlert(Alert.AlertType.CONFIRMATION, owner, "Friend added!", userNameText.getText() + " is now your friend!"); } + + /** + * Removes one of the friends of the user. + * @param event the click of the sign up button + */ + @FXML + public void removeFriend(ActionEvent event) throws InterruptedException { + //set the window to the current window (for displaying the alerts) + Window owner = removeButton.getScene().getWindow(); + //check if the username field is empty + if (removeUserNameText.getText().isEmpty()) { + //if so, display an alert + UserController.AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Username Error!", + "Please enter a username!"); + return; + } else if (removeUserNameText.getText().equals(userService.currentUser.getName())) { + UserController.AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Error!", + "You are not your friend!"); + return; + } else if (!userService.getFriendNames(userService.currentUser.getName()) + .contains(removeUserNameText.getText())) { + UserController.AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Error!", + "You do not have a friend with this username!"); + return; + } else if (!userService.getAllUsers().contains(removeUserNameText.getText())) { + UserController.AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Error!", + "The user does not exist!"); + return; + } + //add friend to the current user + userService.removeFriend(userService.currentUser.getName(), removeUserNameText.getText()); + //close the register window after the user has entered all the credentials + Stage current = (Stage) owner; + dashBoardController.updateFriends(); + dashBoardController.updateAchievements(); + current.close(); + UserController.AlertHelper.showAlert(Alert.AlertType.CONFIRMATION, owner, "Friend removed!", + removeUserNameText.getText() + " is not your friend anymore!"); + } } From 60843385255be36e063e6bd0290e2c7765dc5c72 Mon Sep 17 00:00:00 2001 From: cugurlu Date: Thu, 11 Apr 2019 14:24:07 +0200 Subject: [PATCH 5/5] Fix checkstyle errors --- .../greenify/client/controller/ExtraActivityController.java | 4 ++++ .../client/controller/RegisterWindowController.java | 4 ++++ .../java/greenify/client/controller/UserController.java | 6 +++++- 3 files changed, 13 insertions(+), 1 deletion(-) 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 1270013..e510048 100644 --- a/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java +++ b/src/Client/src/main/java/greenify/client/controller/ExtraActivityController.java @@ -132,6 +132,10 @@ public class ExtraActivityController { }); } + /** + * add transition animation. + * @param node adding animation + */ public void addFadeTransAnimation(Node node) { FadeTransition fade = new FadeTransition(Duration.millis(350), node); fade.setFromValue(0); 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 1ebeac8..a74c818 100644 --- a/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java +++ b/src/Client/src/main/java/greenify/client/controller/RegisterWindowController.java @@ -621,6 +621,10 @@ public class RegisterWindowController { @SuppressWarnings("Duplicates") public class registerButtonSkin extends ButtonSkin { + /** + * registers button skins. + * @param button clicking + */ public registerButtonSkin(Button button) { super(button); diff --git a/src/Client/src/main/java/greenify/client/controller/UserController.java b/src/Client/src/main/java/greenify/client/controller/UserController.java index d4ffefc..1c18c41 100644 --- a/src/Client/src/main/java/greenify/client/controller/UserController.java +++ b/src/Client/src/main/java/greenify/client/controller/UserController.java @@ -43,6 +43,7 @@ public class UserController { loginButton.setSkin(new LoginButtonSkin(loginButton)); signUpButton.setSkin(new LoginButtonSkin(signUpButton)); } + /** * Handles when the user clicks on the login button. * it checks if the username and password fields are filled @@ -52,7 +53,6 @@ public class UserController { */ @FXML protected void handleLoginButtonAction(ActionEvent event) throws IOException { - Window owner = loginButton.getScene().getWindow(); //get the current window if (usernameField.getText().isEmpty()) { AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Log-in Error!", @@ -153,6 +153,10 @@ public class UserController { @SuppressWarnings("Duplicates") public class LoginButtonSkin extends ButtonSkin { + /** + * method for the skin of login button. + * @param button clicking + */ public LoginButtonSkin(Button button) { super(button); ScaleTransition scaleUp = new ScaleTransition(Duration.millis(140));