Compare commits
1 Commits
master
...
feature/ex
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3960efaad8 |
19
README.md
19
README.md
@@ -1,17 +1,26 @@
|
|||||||
# Greenify
|
# Greenify
|
||||||
The easiest way to save CO2 and help the environment! Enter your activities and find out your carbon footprint.
|
The easiest way to save CO2 and help the environment! Enter your activities and find out your carbon footprint.
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
## Badges
|
## Badges
|
||||||
[](https://gitlab.ewi.tudelft.nl/cse1105/2018-2019/oopp-group-43/template)
|
[](https://gitlab.ewi.tudelft.nl/cse1105/2018-2019/oopp-group-43/template)
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
To start Greenify:
|
You can run greenify with gradle. To start the server, run:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd <FILE-LOCATION>/greenify/src/Client/build/libs
|
cd <FILE-LOCATION>/greenify/src/server
|
||||||
java -Dserver.address="https://greenify43.herokuapp.com" -jar greenify-1.0.0.jar
|
gradle build
|
||||||
|
gradle bootrun
|
||||||
|
```
|
||||||
|
|
||||||
|
With the following you can start the application
|
||||||
|
|
||||||
|
```
|
||||||
|
cd <FILE-LOCATION>/greenify/src/client
|
||||||
|
gradle build
|
||||||
|
gradle bootrun
|
||||||
```
|
```
|
||||||
|
|
||||||
## Running the tests
|
## Running the tests
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ dependencies {
|
|||||||
testCompile("junit:junit")
|
testCompile("junit:junit")
|
||||||
compileOnly 'org.projectlombok:lombok:1.18.6'
|
compileOnly 'org.projectlombok:lombok:1.18.6'
|
||||||
compile("org.springframework.boot:spring-boot-starter-data-jpa")
|
compile("org.springframework.boot:spring-boot-starter-data-jpa")
|
||||||
|
compile("com.h2database:h2")
|
||||||
annotationProcessor 'org.projectlombok:lombok:1.18.6'
|
annotationProcessor 'org.projectlombok:lombok:1.18.6'
|
||||||
testCompile(
|
testCompile(
|
||||||
'junit:junit:4.12',
|
'junit:junit:4.12',
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
# Meeting 8
|
|
||||||
|
|
||||||
## Opening
|
|
||||||
> Check if everyone is present:
|
|
||||||
- ~~Nivard Jansen~~
|
|
||||||
- ~~Kristin Peneva~~
|
|
||||||
- ~~Daan Sneep~~
|
|
||||||
- [x] Merel SteenBergen
|
|
||||||
- [x] Ceren Ugurlu
|
|
||||||
- [x] Mika Wauben
|
|
||||||
- [x] Sem van der Hoeven
|
|
||||||
|
|
||||||
- Chair: Merel Steenbergen
|
|
||||||
- Secretary: Sem van der Hoeven
|
|
||||||
|
|
||||||
## Points of action
|
|
||||||
|
|
||||||
- First of all, discuss problems we have faced and if somebody is halted because of a problem
|
|
||||||
- if so, try to work out the problem
|
|
||||||
|
|
||||||
### pre/during meeting
|
|
||||||
- Discuss what we did last week (see scrumboard)
|
|
||||||
- Does anyone have blocking issues?
|
|
||||||
- Coverage reports
|
|
||||||
- Checkstyle reports
|
|
||||||
- Show demo to the TA, since Mitchell isn't here, a different TA will visit us, so we'll show him the entire application.
|
|
||||||
- Discuss about the presentation
|
|
||||||
- Discuss about final things that need to be done
|
|
||||||
|
|
||||||
### post meeting
|
|
||||||
- Focus on the presentation
|
|
||||||
- Focus on the final report
|
|
||||||
- Focus on things we get points for according to the rubric
|
|
||||||
|
|
||||||
## Any other business
|
|
||||||
> If anybody has something that should be discussed but came up with that after the agenda was finalized, he/she should bring that up now so that it can be discussed after all.
|
|
||||||
|
|
||||||
## Question round
|
|
||||||
- Questions for the TA
|
|
||||||
- How to get the code coverage badge, since we use Gradle and we've got the Maven code.
|
|
||||||
|
|
||||||
## Closing
|
|
||||||
> We're almost finished!
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 793 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 189 KiB |
Binary file not shown.
@@ -1,13 +0,0 @@
|
|||||||
|
|
||||||
# Sprint Review
|
|
||||||
|
|
||||||
## Main problems Encountered
|
|
||||||
|
|
||||||
### Problem 1:
|
|
||||||
|
|
||||||
## Adjustments from previous sprints
|
|
||||||
Our project is completely finished and we're very happy with the result.
|
|
||||||
|
|
||||||
## Adjustments for next sprint
|
|
||||||
This is the last sprint for this project!
|
|
||||||
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 107 KiB |
Binary file not shown.
@@ -39,8 +39,8 @@ test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bootJar {
|
bootJar {
|
||||||
baseName = 'greenify'
|
baseName = 'gs-consuming-rest'
|
||||||
version = '1.0.0'
|
version = '0.1.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
@@ -48,7 +48,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile "org.bouncycastle:bcprov-jdk16:1.46", "org.bouncycastle:bcpg-jdk16:1.46", "org.bouncycastle:bcmail-jdk16:1.46", "org.bouncycastle:bctsp-jdk16:1.46"
|
|
||||||
compile("org.springframework.boot:spring-boot-starter")
|
compile("org.springframework.boot:spring-boot-starter")
|
||||||
compile("org.springframework:spring-web")
|
compile("org.springframework:spring-web")
|
||||||
compile("com.fasterxml.jackson.core:jackson-databind")
|
compile("com.fasterxml.jackson.core:jackson-databind")
|
||||||
|
|||||||
@@ -1,34 +1,18 @@
|
|||||||
package greenify.client.features;
|
package greenify.client;
|
||||||
|
|
||||||
import javafx.beans.property.SimpleDoubleProperty;
|
import javafx.beans.property.SimpleDoubleProperty;
|
||||||
import javafx.beans.property.SimpleIntegerProperty;
|
|
||||||
import javafx.beans.property.SimpleStringProperty;
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
|
|
||||||
public class Friend {
|
public class Friend {
|
||||||
|
|
||||||
private SimpleIntegerProperty place;
|
|
||||||
private SimpleStringProperty friend;
|
private SimpleStringProperty friend;
|
||||||
private SimpleDoubleProperty score;
|
private SimpleDoubleProperty score;
|
||||||
|
|
||||||
/**
|
public Friend(String friend, Double friendScore) {
|
||||||
* Constructor for a friend.
|
|
||||||
* @param place place in the leaderboard
|
|
||||||
* @param friend name of the user
|
|
||||||
* @param friendScore score of the user
|
|
||||||
*/
|
|
||||||
public Friend(Integer place, String friend, Double friendScore) {
|
|
||||||
this.place = new SimpleIntegerProperty(place);
|
|
||||||
this.friend = new SimpleStringProperty(friend);
|
this.friend = new SimpleStringProperty(friend);
|
||||||
this.score = new SimpleDoubleProperty(friendScore);
|
this.score = new SimpleDoubleProperty(friendScore);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getPlace() {
|
|
||||||
return place.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPlace(Integer place) {
|
|
||||||
this.place = new SimpleIntegerProperty(place);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFriend() {
|
public String getFriend() {
|
||||||
return friend.get();
|
return friend.get();
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package greenify.client.features;
|
package greenify.client;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@@ -144,6 +144,7 @@ public class CalculatorController {
|
|||||||
@FXML
|
@FXML
|
||||||
private Label servicesLabel;
|
private Label servicesLabel;
|
||||||
|
|
||||||
|
|
||||||
//extra pane
|
//extra pane
|
||||||
@FXML
|
@FXML
|
||||||
private AnchorPane extraPane;
|
private AnchorPane extraPane;
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package greenify.client.controller;
|
|||||||
|
|
||||||
import com.sun.javafx.scene.control.skin.ButtonSkin;
|
import com.sun.javafx.scene.control.skin.ButtonSkin;
|
||||||
import greenify.client.Application;
|
import greenify.client.Application;
|
||||||
import greenify.client.features.Friend;
|
import greenify.client.Friend;
|
||||||
import greenify.client.features.Hints;
|
import greenify.client.Hints;
|
||||||
import greenify.client.rest.UserService;
|
import greenify.client.rest.UserService;
|
||||||
import javafx.animation.FadeTransition;
|
import javafx.animation.FadeTransition;
|
||||||
import javafx.animation.KeyFrame;
|
import javafx.animation.KeyFrame;
|
||||||
@@ -93,10 +93,6 @@ public class DashBoardController {
|
|||||||
@FXML
|
@FXML
|
||||||
private Button addFriendButton;
|
private Button addFriendButton;
|
||||||
@FXML
|
@FXML
|
||||||
private Button addFriend;
|
|
||||||
@FXML
|
|
||||||
private Button removeFriend;
|
|
||||||
@FXML
|
|
||||||
private Button addExtraActivityButton;
|
private Button addExtraActivityButton;
|
||||||
@FXML
|
@FXML
|
||||||
private Button addExtraActivityButton2;
|
private Button addExtraActivityButton2;
|
||||||
@@ -109,24 +105,18 @@ public class DashBoardController {
|
|||||||
@FXML
|
@FXML
|
||||||
private TableView<Friend> globalLeaderboard;
|
private TableView<Friend> globalLeaderboard;
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<Friend, Integer> globalPlace;
|
|
||||||
@FXML
|
|
||||||
private TableColumn<Friend, String> globalUser;
|
private TableColumn<Friend, String> globalUser;
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<Friend, Float> globalScore;
|
private TableColumn<Friend, Float> globalScore;
|
||||||
@FXML
|
@FXML
|
||||||
private TableView<Friend> developmentLeaderboard;
|
private TableView<Friend> developmentLeaderboard;
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<Friend, Integer> developmentPlace;
|
|
||||||
@FXML
|
|
||||||
private TableColumn<Friend, String> developmentUser;
|
private TableColumn<Friend, String> developmentUser;
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<Friend, Float> developmentScore;
|
private TableColumn<Friend, Float> developmentScore;
|
||||||
@FXML
|
@FXML
|
||||||
private TableView<Friend> friendLeaderboard;
|
private TableView<Friend> friendLeaderboard;
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<Friend, Integer> friendPlace;
|
|
||||||
@FXML
|
|
||||||
private TableColumn<Friend, String> friendUser;
|
private TableColumn<Friend, String> friendUser;
|
||||||
@FXML
|
@FXML
|
||||||
private TableColumn<Friend, Float> friendScore;
|
private TableColumn<Friend, Float> friendScore;
|
||||||
@@ -245,18 +235,15 @@ public class DashBoardController {
|
|||||||
logOutButton.setSkin(new MyButtonSkin(logOutButton));
|
logOutButton.setSkin(new MyButtonSkin(logOutButton));
|
||||||
friendsColumn.setCellValueFactory(new PropertyValueFactory<>("Friend"));
|
friendsColumn.setCellValueFactory(new PropertyValueFactory<>("Friend"));
|
||||||
scoreColumn.setCellValueFactory(new PropertyValueFactory<>("Score"));
|
scoreColumn.setCellValueFactory(new PropertyValueFactory<>("Score"));
|
||||||
globalPlace.setCellValueFactory(new PropertyValueFactory<>("Place"));
|
|
||||||
globalUser.setCellValueFactory(new PropertyValueFactory<>("Friend"));
|
globalUser.setCellValueFactory(new PropertyValueFactory<>("Friend"));
|
||||||
globalScore.setCellValueFactory(new PropertyValueFactory<>("Score"));
|
globalScore.setCellValueFactory(new PropertyValueFactory<>("Score"));
|
||||||
developmentUser.setCellValueFactory(new PropertyValueFactory<>("Friend"));
|
developmentUser.setCellValueFactory(new PropertyValueFactory<>("Friend"));
|
||||||
developmentPlace.setCellValueFactory(new PropertyValueFactory<>("Place"));
|
|
||||||
developmentScore.setCellValueFactory(new PropertyValueFactory<>("Score"));
|
developmentScore.setCellValueFactory(new PropertyValueFactory<>("Score"));
|
||||||
friendPlace.setCellValueFactory(new PropertyValueFactory<>("Place"));
|
|
||||||
friendUser.setCellValueFactory(new PropertyValueFactory<>("Friend"));
|
friendUser.setCellValueFactory(new PropertyValueFactory<>("Friend"));
|
||||||
friendScore.setCellValueFactory(new PropertyValueFactory<>("Score"));
|
friendScore.setCellValueFactory(new PropertyValueFactory<>("Score"));
|
||||||
List<String> friendList = userService.getFriendNames(userService.currentUser.getName());
|
List<String> friendList = userService.getFriendNames(userService.currentUser.getName());
|
||||||
for (int i = 0; i < friendList.size(); i++) {
|
for (int i = 0; i < friendList.size(); i++) {
|
||||||
Friend friend = new Friend(i, friendList.get(i),
|
Friend friend = new Friend(friendList.get(i),
|
||||||
userService.getFootprint(friendList.get(i)));
|
userService.getFootprint(friendList.get(i)));
|
||||||
data.add(friend);
|
data.add(friend);
|
||||||
}
|
}
|
||||||
@@ -268,8 +255,6 @@ public class DashBoardController {
|
|||||||
addFriendButton.setSkin(new ClickButtonSkin(addFriendButton));
|
addFriendButton.setSkin(new ClickButtonSkin(addFriendButton));
|
||||||
addExtraActivityButton.setSkin(new ClickButtonSkin(addExtraActivityButton));
|
addExtraActivityButton.setSkin(new ClickButtonSkin(addExtraActivityButton));
|
||||||
addExtraActivityButton2.setSkin(new ClickButtonSkin(addExtraActivityButton2));
|
addExtraActivityButton2.setSkin(new ClickButtonSkin(addExtraActivityButton2));
|
||||||
addFriend.setSkin(new ClickButtonSkin(addFriend));
|
|
||||||
removeFriend.setSkin(new ClickButtonSkin(removeFriend));
|
|
||||||
addRandomHints();
|
addRandomHints();
|
||||||
|
|
||||||
Tooltip tooltip = new Tooltip("tip");
|
Tooltip tooltip = new Tooltip("tip");
|
||||||
@@ -481,7 +466,6 @@ public class DashBoardController {
|
|||||||
updateFriends();
|
updateFriends();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs out the user.
|
* Logs out the user.
|
||||||
* @param event the event (clicking the button)
|
* @param event the event (clicking the button)
|
||||||
@@ -501,9 +485,6 @@ public class DashBoardController {
|
|||||||
//development leaderboard
|
//development leaderboard
|
||||||
developmentLeaderboard.getItems().clear();
|
developmentLeaderboard.getItems().clear();
|
||||||
developmentData.removeAll();
|
developmentData.removeAll();
|
||||||
//friends leaderboard
|
|
||||||
friendLeaderboard.getItems().clear();
|
|
||||||
friendLeaderData.removeAll();
|
|
||||||
|
|
||||||
//load the fxml file
|
//load the fxml file
|
||||||
Parent dash = Application.load(this.getClass().getClassLoader()
|
Parent dash = Application.load(this.getClass().getClassLoader()
|
||||||
@@ -589,20 +570,6 @@ public class DashBoardController {
|
|||||||
calcStage.show();
|
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.
|
* Leaderboard is updating.
|
||||||
* @throws InterruptedException throws exception
|
* @throws InterruptedException throws exception
|
||||||
@@ -618,15 +585,14 @@ public class DashBoardController {
|
|||||||
List<String> userList = userService.getAllUsers();
|
List<String> userList = userService.getAllUsers();
|
||||||
sortScores(userList);
|
sortScores(userList);
|
||||||
for (int i = userList.size() - 1; i >= 0; i--) {
|
for (int i = userList.size() - 1; i >= 0; i--) {
|
||||||
Friend user = new Friend(userList.size() - i, userList.get(i),
|
Friend user = new Friend(userList.get(i), userService.getFootprint(userList.get(i)));
|
||||||
userService.getFootprint(userList.get(i)));
|
|
||||||
globalLeaderData.add(user);
|
globalLeaderData.add(user);
|
||||||
}
|
}
|
||||||
List<String> secondList = sortDiffScores(userList);
|
List<String> secondList = sortDiffScores(userList);
|
||||||
for (int j = 0; j < userList.size(); j++) {
|
for (int j = 0; j < userList.size(); j++) {
|
||||||
double diff = Math.round((userService.getFirstFootprint(secondList.get(j))
|
double diff = Math.round((userService.getFirstFootprint(secondList.get(j))
|
||||||
- userService.getFootprint(secondList.get(j))) * 10) / 10.0;
|
- userService.getFootprint(secondList.get(j))) * 10) / 10.0;
|
||||||
Friend diffUser = new Friend(j + 1, secondList.get(j), diff);
|
Friend diffUser = new Friend(secondList.get(j), diff);
|
||||||
developmentData.add(diffUser);
|
developmentData.add(diffUser);
|
||||||
}
|
}
|
||||||
globalLeaderboard.setItems(globalLeaderData);
|
globalLeaderboard.setItems(globalLeaderData);
|
||||||
@@ -677,14 +643,14 @@ public class DashBoardController {
|
|||||||
friendLeaderData.removeAll();
|
friendLeaderData.removeAll();
|
||||||
sortDiffScores(wholeList);
|
sortDiffScores(wholeList);
|
||||||
for (int i = friendList.size() - 1; i >= 0 ; i--) {
|
for (int i = friendList.size() - 1; i >= 0 ; i--) {
|
||||||
Friend user = new Friend(i, friendList.get(i), userService
|
Friend user = new Friend(friendList.get(i), userService
|
||||||
.getFootprint(friendList.get(i)));
|
.getFootprint(friendList.get(i)));
|
||||||
data.add(user);
|
data.add(user);
|
||||||
}
|
}
|
||||||
for (int j = 0; j < wholeList.size(); j++) {
|
for (int j = 0; j < wholeList.size(); j++) {
|
||||||
double diff = Math.round((userService.getFirstFootprint(wholeList.get(j))
|
double diff = Math.round((userService.getFirstFootprint(wholeList.get(j))
|
||||||
- userService.getFootprint(wholeList.get(j))) * 10) / 10.0;
|
- userService.getFootprint(wholeList.get(j))) * 10) / 10.0;
|
||||||
Friend diffUser = new Friend(j + 1, wholeList.get(j), diff);
|
Friend diffUser = new Friend(wholeList.get(j), diff);
|
||||||
friendLeaderData.add(diffUser);
|
friendLeaderData.add(diffUser);
|
||||||
}
|
}
|
||||||
friendsTable.setItems(data);
|
friendsTable.setItems(data);
|
||||||
|
|||||||
@@ -2,15 +2,12 @@ package greenify.client.controller;
|
|||||||
|
|
||||||
import com.sun.javafx.scene.control.skin.ButtonSkin;
|
import com.sun.javafx.scene.control.skin.ButtonSkin;
|
||||||
import greenify.client.rest.UserService;
|
import greenify.client.rest.UserService;
|
||||||
import javafx.animation.FadeTransition;
|
|
||||||
import javafx.animation.ParallelTransition;
|
|
||||||
import javafx.animation.ScaleTransition;
|
import javafx.animation.ScaleTransition;
|
||||||
import javafx.animation.TranslateTransition;
|
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;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.Node;
|
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.Label;
|
import javafx.scene.control.Label;
|
||||||
import javafx.scene.control.Slider;
|
import javafx.scene.control.Slider;
|
||||||
@@ -132,30 +129,12 @@ 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);
|
|
||||||
fade.setToValue(1.0);
|
|
||||||
TranslateTransition trans = new TranslateTransition(Duration.millis(350), node);
|
|
||||||
trans.setFromX(-800);
|
|
||||||
trans.setToX(0);
|
|
||||||
ParallelTransition par = new ParallelTransition();
|
|
||||||
par.setNode(node);
|
|
||||||
par.getChildren().addAll(fade, trans);
|
|
||||||
par.play();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* displays the vegetarian meal section.
|
* displays the vegetarian meal section.
|
||||||
* @param event the click of the designated button
|
* @param event the click of the designated button
|
||||||
*/
|
*/
|
||||||
public void displayVeganMeal(ActionEvent event) {
|
public void displayVeganMeal(ActionEvent event) {
|
||||||
// System.out.println("display vm");
|
// System.out.println("display vm");
|
||||||
addFadeTransAnimation(veganMealPane);
|
|
||||||
veganMealPane.setVisible(true);
|
veganMealPane.setVisible(true);
|
||||||
bikePane.setVisible(false);
|
bikePane.setVisible(false);
|
||||||
temperaturePane.setVisible(false);
|
temperaturePane.setVisible(false);
|
||||||
@@ -170,7 +149,6 @@ public class ExtraActivityController {
|
|||||||
*/
|
*/
|
||||||
public void displayBike(ActionEvent event) {
|
public void displayBike(ActionEvent event) {
|
||||||
// System.out.println("display b");
|
// System.out.println("display b");
|
||||||
addFadeTransAnimation(bikePane);
|
|
||||||
veganMealPane.setVisible(false);
|
veganMealPane.setVisible(false);
|
||||||
bikePane.setVisible(true);
|
bikePane.setVisible(true);
|
||||||
temperaturePane.setVisible(false);
|
temperaturePane.setVisible(false);
|
||||||
@@ -185,7 +163,6 @@ public class ExtraActivityController {
|
|||||||
*/
|
*/
|
||||||
public void displayTemperature(ActionEvent event) {
|
public void displayTemperature(ActionEvent event) {
|
||||||
// System.out.println("display t");
|
// System.out.println("display t");
|
||||||
addFadeTransAnimation(temperaturePane);
|
|
||||||
veganMealPane.setVisible(false);
|
veganMealPane.setVisible(false);
|
||||||
bikePane.setVisible(false);
|
bikePane.setVisible(false);
|
||||||
temperaturePane.setVisible(true);
|
temperaturePane.setVisible(true);
|
||||||
@@ -200,7 +177,6 @@ public class ExtraActivityController {
|
|||||||
*/
|
*/
|
||||||
public void displaySolarPanel(ActionEvent event) {
|
public void displaySolarPanel(ActionEvent event) {
|
||||||
// System.out.println("display sp");
|
// System.out.println("display sp");
|
||||||
addFadeTransAnimation(solarPanelPane);
|
|
||||||
veganMealPane.setVisible(false);
|
veganMealPane.setVisible(false);
|
||||||
bikePane.setVisible(false);
|
bikePane.setVisible(false);
|
||||||
temperaturePane.setVisible(false);
|
temperaturePane.setVisible(false);
|
||||||
@@ -214,7 +190,6 @@ public class ExtraActivityController {
|
|||||||
* @param event the click of the designated button
|
* @param event the click of the designated button
|
||||||
*/
|
*/
|
||||||
public void displayLocalProduce(ActionEvent event) {
|
public void displayLocalProduce(ActionEvent event) {
|
||||||
addFadeTransAnimation(localProducePane);
|
|
||||||
veganMealPane.setVisible(false);
|
veganMealPane.setVisible(false);
|
||||||
bikePane.setVisible(false);
|
bikePane.setVisible(false);
|
||||||
temperaturePane.setVisible(false);
|
temperaturePane.setVisible(false);
|
||||||
@@ -228,7 +203,6 @@ public class ExtraActivityController {
|
|||||||
* @param event the click of the designated button
|
* @param event the click of the designated button
|
||||||
*/
|
*/
|
||||||
public void displayPublicTransport(ActionEvent event) {
|
public void displayPublicTransport(ActionEvent event) {
|
||||||
addFadeTransAnimation(publicTransportPane);
|
|
||||||
veganMealPane.setVisible(false);
|
veganMealPane.setVisible(false);
|
||||||
bikePane.setVisible(false);
|
bikePane.setVisible(false);
|
||||||
temperaturePane.setVisible(false);
|
temperaturePane.setVisible(false);
|
||||||
|
|||||||
@@ -23,13 +23,9 @@ public class FriendController {
|
|||||||
private Button addButton;
|
private Button addButton;
|
||||||
@FXML
|
@FXML
|
||||||
private TextField userNameText;
|
private TextField userNameText;
|
||||||
@FXML
|
|
||||||
private Button removeButton;
|
|
||||||
@FXML
|
|
||||||
private TextField removeUserNameText;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a new friend.
|
* Signs up the user.
|
||||||
* @param event the click of the sign up button
|
* @param event the click of the sign up button
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
@@ -62,48 +58,8 @@ public class FriendController {
|
|||||||
String friendName = userNameText.getText();
|
String friendName = userNameText.getText();
|
||||||
Stage current = (Stage) owner;
|
Stage current = (Stage) owner;
|
||||||
dashBoardController.updateAchievements();
|
dashBoardController.updateAchievements();
|
||||||
dashBoardController.updateFriends();
|
|
||||||
current.close();
|
current.close();
|
||||||
UserController.AlertHelper.showAlert(Alert.AlertType.CONFIRMATION, owner, "Friend added!",
|
UserController.AlertHelper.showAlert(Alert.AlertType.CONFIRMATION, owner, "Friend added!",
|
||||||
userNameText.getText() + " is now your friend!");
|
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!");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
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.FadeTransition;
|
import javafx.animation.FadeTransition;
|
||||||
@@ -8,10 +7,8 @@ import javafx.animation.Interpolator;
|
|||||||
import javafx.animation.KeyFrame;
|
import javafx.animation.KeyFrame;
|
||||||
import javafx.animation.KeyValue;
|
import javafx.animation.KeyValue;
|
||||||
import javafx.animation.ParallelTransition;
|
import javafx.animation.ParallelTransition;
|
||||||
import javafx.animation.ScaleTransition;
|
|
||||||
import javafx.animation.Timeline;
|
import javafx.animation.Timeline;
|
||||||
import javafx.animation.TranslateTransition;
|
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;
|
||||||
@@ -27,6 +24,7 @@ import javafx.scene.control.ScrollPane;
|
|||||||
import javafx.scene.control.Slider;
|
import javafx.scene.control.Slider;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.layout.AnchorPane;
|
import javafx.scene.layout.AnchorPane;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import javafx.stage.Window;
|
import javafx.stage.Window;
|
||||||
@@ -36,7 +34,6 @@ import org.springframework.stereotype.Controller;
|
|||||||
import org.springframework.web.client.HttpClientErrorException;
|
import org.springframework.web.client.HttpClientErrorException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@@ -53,6 +50,8 @@ public class RegisterWindowController {
|
|||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private Text explainText;
|
private Text explainText;
|
||||||
|
|
||||||
|
|
||||||
//navigation panes
|
//navigation panes
|
||||||
@FXML
|
@FXML
|
||||||
private AnchorPane getStartedPane;
|
private AnchorPane getStartedPane;
|
||||||
@@ -168,6 +167,7 @@ public class RegisterWindowController {
|
|||||||
private Button signUpButton;
|
private Button signUpButton;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//@FXML
|
//@FXML
|
||||||
//private Line uNamePathLine;
|
//private Line uNamePathLine;
|
||||||
|
|
||||||
@@ -180,8 +180,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 RegisterButtonSkin(signUpButton));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -197,16 +195,16 @@ public class RegisterWindowController {
|
|||||||
slideIn.play();
|
slideIn.play();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public void showExplanation(ActionEvent event) throws InterruptedException {
|
||||||
* Shows an explanation of the application.
|
System.out.println(explainText.isVisible());
|
||||||
* @param event the click of the question mark button
|
|
||||||
*/
|
|
||||||
public void showExplanation(ActionEvent event) {
|
|
||||||
if (explainText.isVisible()) {
|
if (explainText.isVisible()) {
|
||||||
|
System.out.println("set to false");
|
||||||
explainText.setVisible(false);
|
explainText.setVisible(false);
|
||||||
} else {
|
} else {
|
||||||
|
System.out.println("set to true");
|
||||||
explainText.setVisible(true);
|
explainText.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -214,7 +212,7 @@ public class RegisterWindowController {
|
|||||||
* @param event the click of the sign up button
|
* @param event the click of the sign up button
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
public void handleSignUpButton(ActionEvent event) throws IOException, NoSuchAlgorithmException {
|
public void handleSignUpButton(ActionEvent event) throws IOException {
|
||||||
//set the window to the current window (for displaying the alerts)
|
//set the window to the current window (for displaying the alerts)
|
||||||
Window owner = signUpButton.getScene().getWindow();
|
Window owner = signUpButton.getScene().getWindow();
|
||||||
//check if the username field is empty
|
//check if the username field is empty
|
||||||
@@ -635,41 +633,4 @@ public class RegisterWindowController {
|
|||||||
carTravelElectricLabel.getText().replace(" km/Le", ""));
|
carTravelElectricLabel.getText().replace(" km/Le", ""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("Duplicates")
|
|
||||||
public class RegisterButtonSkin extends ButtonSkin {
|
|
||||||
/**
|
|
||||||
* registers button skins.
|
|
||||||
* @param button clicking
|
|
||||||
*/
|
|
||||||
public RegisterButtonSkin(Button button) {
|
|
||||||
super(button);
|
|
||||||
|
|
||||||
ScaleTransition scaleUp = new ScaleTransition(Duration.millis(140));
|
|
||||||
scaleUp.setToX(1.2);
|
|
||||||
scaleUp.setToY(1.2);
|
|
||||||
scaleUp.setNode(button);
|
|
||||||
button.setOnMouseEntered(e -> scaleUp.playFromStart());
|
|
||||||
|
|
||||||
ScaleTransition scaleMiddleDown = new ScaleTransition(Duration.millis(50));
|
|
||||||
|
|
||||||
scaleMiddleDown.setToX(1.1);
|
|
||||||
scaleMiddleDown.setToY(1.1);
|
|
||||||
scaleMiddleDown.setNode(button);
|
|
||||||
button.setOnMousePressed(e -> scaleMiddleDown.playFromStart());
|
|
||||||
|
|
||||||
ScaleTransition scaleMiddleUp = new ScaleTransition(Duration.millis(50));
|
|
||||||
|
|
||||||
scaleMiddleUp.setToX(1.2);
|
|
||||||
scaleMiddleUp.setToY(1.2);
|
|
||||||
scaleMiddleUp.setNode(button);
|
|
||||||
button.setOnMouseReleased(e -> scaleMiddleUp.playFromStart());
|
|
||||||
|
|
||||||
ScaleTransition scaleDown = new ScaleTransition(Duration.millis(200));
|
|
||||||
scaleDown.setToX(1.0);
|
|
||||||
scaleDown.setToY(1.0);
|
|
||||||
scaleDown.setNode(button);
|
|
||||||
button.setOnMouseExited(e -> scaleDown.playFromStart());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
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.ScaleTransition;
|
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
@@ -14,13 +12,11 @@ import javafx.scene.control.PasswordField;
|
|||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import javafx.stage.Window;
|
import javafx.stage.Window;
|
||||||
import javafx.util.Duration;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.client.HttpClientErrorException;
|
import org.springframework.web.client.HttpClientErrorException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,11 +36,6 @@ public class UserController {
|
|||||||
@FXML
|
@FXML
|
||||||
private Button signUpButton;
|
private Button signUpButton;
|
||||||
|
|
||||||
public void initialize() {
|
|
||||||
loginButton.setSkin(new LoginButtonSkin(loginButton));
|
|
||||||
signUpButton.setSkin(new LoginButtonSkin(signUpButton));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles when the user clicks on the login button.
|
* Handles when the user clicks on the login button.
|
||||||
* it checks if the username and password fields are filled
|
* it checks if the username and password fields are filled
|
||||||
@@ -53,8 +44,8 @@ public class UserController {
|
|||||||
* @throws IOException an exception for logging in the user
|
* @throws IOException an exception for logging in the user
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void handleLoginButtonAction(ActionEvent event)
|
protected void handleLoginButtonAction(ActionEvent event) throws IOException {
|
||||||
throws IOException, NoSuchAlgorithmException {
|
|
||||||
Window owner = loginButton.getScene().getWindow(); //get the current window
|
Window owner = loginButton.getScene().getWindow(); //get the current window
|
||||||
if (usernameField.getText().isEmpty()) {
|
if (usernameField.getText().isEmpty()) {
|
||||||
AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Log-in Error!",
|
AlertHelper.showAlert(Alert.AlertType.ERROR, owner, "Log-in Error!",
|
||||||
@@ -145,51 +136,11 @@ public class UserController {
|
|||||||
Parent registerWindow = Application.load(this.getClass().getClassLoader()
|
Parent registerWindow = Application.load(this.getClass().getClassLoader()
|
||||||
.getResource("fxml/RegisterWindow.fxml"));
|
.getResource("fxml/RegisterWindow.fxml"));
|
||||||
Scene registerScene = new Scene(registerWindow);
|
Scene registerScene = new Scene(registerWindow);
|
||||||
registerScene.getStylesheets().add(this.getClass().getClassLoader()
|
|
||||||
.getResource("stylesheets/registerWindowStyle.css").toExternalForm());
|
|
||||||
Stage registerStage = new Stage();
|
Stage registerStage = new Stage();
|
||||||
registerStage.setScene(registerScene);
|
registerStage.setScene(registerScene);
|
||||||
registerStage.setTitle("Enter register credentials");
|
registerStage.setTitle("Enter register credentials");
|
||||||
registerStage.show();
|
registerStage.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@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));
|
|
||||||
scaleUp.setToX(1.1);
|
|
||||||
scaleUp.setToY(1.1);
|
|
||||||
scaleUp.setNode(button);
|
|
||||||
button.setOnMouseEntered(e -> scaleUp.playFromStart());
|
|
||||||
|
|
||||||
ScaleTransition scaleMiddleDown = new ScaleTransition(Duration.millis(50));
|
|
||||||
scaleMiddleDown.setFromX(1.1);
|
|
||||||
scaleMiddleDown.setFromY(1.1);
|
|
||||||
scaleMiddleDown.setToX(1.05);
|
|
||||||
scaleMiddleDown.setToY(1.05);
|
|
||||||
scaleMiddleDown.setNode(button);
|
|
||||||
button.setOnMousePressed(e -> scaleMiddleDown.playFromStart());
|
|
||||||
|
|
||||||
ScaleTransition scaleMiddleUp = new ScaleTransition(Duration.millis(50));
|
|
||||||
scaleMiddleUp.setFromX(1.05);
|
|
||||||
scaleMiddleUp.setFromY(1.05);
|
|
||||||
scaleMiddleUp.setToX(1.1);
|
|
||||||
scaleMiddleUp.setToY(1.1);
|
|
||||||
scaleMiddleUp.setNode(button);
|
|
||||||
button.setOnMouseReleased(e -> scaleMiddleUp.playFromStart());
|
|
||||||
|
|
||||||
ScaleTransition scaleDown = new ScaleTransition(Duration.millis(200));
|
|
||||||
scaleDown.setToX(1.0);
|
|
||||||
scaleDown.setToY(1.0);
|
|
||||||
scaleDown.setNode(button);
|
|
||||||
button.setOnMouseExited(e -> scaleDown.playFromStart());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package greenify.client.rest;
|
|||||||
|
|
||||||
import greenify.common.UserDto;
|
import greenify.common.UserDto;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
import org.springframework.boot.web.client.RestTemplateBuilder;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpEntity;
|
||||||
@@ -13,9 +12,6 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.security.MessageDigest;
|
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -23,9 +19,6 @@ import java.util.Map;
|
|||||||
public class UserService {
|
public class UserService {
|
||||||
public UserDto currentUser;
|
public UserDto currentUser;
|
||||||
|
|
||||||
@Value( "${server.address:http://localhost:8080}" )
|
|
||||||
String serverAddress = "http://localhost:8080";
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
RestTemplate restTemplate;
|
RestTemplate restTemplate;
|
||||||
|
|
||||||
@@ -43,17 +36,16 @@ public class UserService {
|
|||||||
@SuppressWarnings("Duplicates")
|
@SuppressWarnings("Duplicates")
|
||||||
//this suppressWarnings is to get rid of the errors of duplicate code
|
//this suppressWarnings is to get rid of the errors of duplicate code
|
||||||
//because the methods are very similar
|
//because the methods are very similar
|
||||||
public UserDto registerUser(String name, String password) throws NoSuchAlgorithmException {
|
public UserDto registerUser(String name, String password) {
|
||||||
//headers for http
|
//headers for http
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
//set the accept header in JSON value
|
//set the accept header in JSON value
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
//connect to the server with the needed url
|
//connect to the server with the needed url
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/registerUser")
|
||||||
.fromHttpUrl(serverAddress + "/registerUser")
|
|
||||||
.queryParam("name", name)
|
.queryParam("name", name)
|
||||||
//getting the name from the database
|
//getting the name from the database
|
||||||
.queryParam("password", hashPassword(password));
|
.queryParam("password", password);
|
||||||
//getting the password from the database
|
//getting the password from the database
|
||||||
|
|
||||||
//create a http entity to be sent
|
//create a http entity to be sent
|
||||||
@@ -75,14 +67,13 @@ public class UserService {
|
|||||||
* @return a userDTO
|
* @return a userDTO
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("Duplicates")
|
@SuppressWarnings("Duplicates")
|
||||||
public UserDto loginUser(String name, String password) throws NoSuchAlgorithmException {
|
public UserDto loginUser(String name, String password) {
|
||||||
//this method is almost the same as the registerUser one, but with a different link
|
//this method is almost the same as the registerUser one, but with a different link
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/loginUser")
|
||||||
.fromHttpUrl(serverAddress + "/loginUser")
|
|
||||||
.queryParam("name", name)
|
.queryParam("name", name)
|
||||||
.queryParam("password", hashPassword(password));
|
.queryParam("password", password);
|
||||||
new HttpEntity<>(headers);
|
new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
UserDto result = this.restTemplate.getForObject(builder.build()
|
UserDto result = this.restTemplate.getForObject(builder.build()
|
||||||
@@ -101,7 +92,7 @@ public class UserService {
|
|||||||
public void updateInput(String name, String inputName, String value) {
|
public void updateInput(String name, String inputName, String value) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(serverAddress + "/setInput")
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/setInput")
|
||||||
.queryParam("name", name)
|
.queryParam("name", name)
|
||||||
.queryParam("inputName", inputName)
|
.queryParam("inputName", inputName)
|
||||||
.queryParam("value",value);
|
.queryParam("value",value);
|
||||||
@@ -121,8 +112,7 @@ public class UserService {
|
|||||||
public void updateExtraInput(String name, String inputName, String value) {
|
public void updateExtraInput(String name, String inputName, String value) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/setExtraInput")
|
||||||
.fromHttpUrl(serverAddress + "/setExtraInput")
|
|
||||||
.queryParam("name", name)
|
.queryParam("name", name)
|
||||||
.queryParam("inputName", inputName)
|
.queryParam("inputName", inputName)
|
||||||
.queryParam("value", value);
|
.queryParam("value", value);
|
||||||
@@ -141,8 +131,7 @@ public class UserService {
|
|||||||
public double getFootprint(String name) {
|
public double getFootprint(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getFootprint")
|
||||||
.fromHttpUrl(serverAddress + "/getFootprint")
|
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
new HttpEntity<>(headers);
|
new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -160,7 +149,7 @@ public class UserService {
|
|||||||
public double getFirstFootprint(String name) {
|
public double getFirstFootprint(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(serverAddress + "/getFirst")
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getFirst")
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
new HttpEntity<>(headers);
|
new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -179,8 +168,7 @@ public class UserService {
|
|||||||
public Float saveFootprint(String name) {
|
public Float saveFootprint(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/saveFootprint")
|
||||||
.fromHttpUrl(serverAddress + "/saveFootprint")
|
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
new HttpEntity<>(headers);
|
new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -199,8 +187,7 @@ public class UserService {
|
|||||||
public Float saveFirstFootprint(String name) {
|
public Float saveFirstFootprint(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/saveFirstFootprint")
|
||||||
.fromHttpUrl(serverAddress + "/saveFirstFootprint")
|
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
new HttpEntity<>(headers);
|
new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -218,8 +205,7 @@ public class UserService {
|
|||||||
public List<String> getFriendNames(String name) {
|
public List<String> getFriendNames(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getFriends")
|
||||||
.fromHttpUrl(serverAddress + "/getFriends")
|
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
new HttpEntity<>(headers);
|
new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -237,8 +223,7 @@ public class UserService {
|
|||||||
public void addFriend(String name, String friend) {
|
public void addFriend(String name, String friend) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/addFriend")
|
||||||
.fromHttpUrl(serverAddress + "/addFriend")
|
|
||||||
.queryParam("name", name)
|
.queryParam("name", name)
|
||||||
.queryParam("friend",friend);
|
.queryParam("friend",friend);
|
||||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||||
@@ -256,8 +241,7 @@ public class UserService {
|
|||||||
public void removeFriend(String name, String friend) {
|
public void removeFriend(String name, String friend) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/removeFriend")
|
||||||
.fromHttpUrl(serverAddress + "/removeFriend")
|
|
||||||
.queryParam("name", name)
|
.queryParam("name", name)
|
||||||
.queryParam("friend",friend);
|
.queryParam("friend",friend);
|
||||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||||
@@ -274,8 +258,7 @@ public class UserService {
|
|||||||
public Map<String, String> getInputs(String name) {
|
public Map<String, String> getInputs(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getInputs")
|
||||||
.fromHttpUrl(serverAddress + "/getInputs")
|
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -292,8 +275,7 @@ public class UserService {
|
|||||||
public Map<String, String> getExtraInputs(String name) {
|
public Map<String, String> getExtraInputs(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getExtraInputs")
|
||||||
.fromHttpUrl(serverAddress + "/getExtraInputs")
|
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -311,8 +293,7 @@ public class UserService {
|
|||||||
public Map getAchievements(String name) {
|
public Map getAchievements(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getAchievements")
|
||||||
.fromHttpUrl(serverAddress + "/getAchievements")
|
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -329,8 +310,7 @@ public class UserService {
|
|||||||
public Map<String, String> getResults(String name) {
|
public Map<String, String> getResults(String name) {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getResults")
|
||||||
.fromHttpUrl(serverAddress + "/getResults")
|
|
||||||
.queryParam("name", name);
|
.queryParam("name", name);
|
||||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
@@ -345,50 +325,11 @@ public class UserService {
|
|||||||
public List<String> getAllUsers() {
|
public List<String> getAllUsers() {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://localhost:8080/getAllUsers");
|
||||||
.fromHttpUrl(serverAddress + "/getAllUsers");
|
|
||||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||||
System.out.println(builder.build().encode().toUri());
|
System.out.println(builder.build().encode().toUri());
|
||||||
List<String> result = this.restTemplate.getForObject(builder
|
List<String> result = this.restTemplate.getForObject(builder
|
||||||
.build().encode().toUri(), List.class);
|
.build().encode().toUri(), List.class);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes a user from the database.
|
|
||||||
* @param name the username of the current user.
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("Duplicates")
|
|
||||||
public void deleteAccount(String name) {
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
|
||||||
headers.set("Accept", MediaType.APPLICATION_JSON_VALUE);
|
|
||||||
UriComponentsBuilder builder = UriComponentsBuilder
|
|
||||||
.fromHttpUrl(serverAddress + "/deleteAccount")
|
|
||||||
.queryParam("name", name);
|
|
||||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
|
||||||
System.out.println(builder.build().encode().toUri());
|
|
||||||
ResponseEntity<String> authenticateResponse = this.restTemplate.getForEntity(builder.build()
|
|
||||||
.encode().toUri(), String.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hashes the password of a user.
|
|
||||||
* @param password password of the user
|
|
||||||
* @return hashed password
|
|
||||||
* @throws NoSuchAlgorithmException when there is no such algorithm
|
|
||||||
*/
|
|
||||||
public String hashPassword(String password)
|
|
||||||
throws NoSuchAlgorithmException {
|
|
||||||
MessageDigest digest = MessageDigest.getInstance("SHA-256");
|
|
||||||
byte[] encodedHash = digest.digest(password.getBytes(StandardCharsets.UTF_8));
|
|
||||||
StringBuffer hexString = new StringBuffer();
|
|
||||||
for (int i = 0; i < encodedHash.length; i++) {
|
|
||||||
String hex = Integer.toHexString(0xff & encodedHash[i]);
|
|
||||||
if (hex.length() == 1) {
|
|
||||||
hexString.append('0');
|
|
||||||
}
|
|
||||||
hexString.append(hex);
|
|
||||||
}
|
|
||||||
return hexString.toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -166,13 +166,14 @@
|
|||||||
<Font name="System Bold" size="22.0" />
|
<Font name="System Bold" size="22.0" />
|
||||||
</font>
|
</font>
|
||||||
</Text>
|
</Text>
|
||||||
<Text fx:id="explainText" layoutX="52.0" layoutY="456.0" strokeType="OUTSIDE" strokeWidth="0.0" text="This application will help you decrease your CO2-footprint. In the next screen, you will be asked to fill in certain things, like your yearly energy costs. These values will help us calculate your CO2-footprint. Warning: If you don't fill anything in, the calculator will use a default value based on averages, so if you want a value to be zero, please fill in zero. After that, you'll be able to see your score and compare your footprint to those of your friends. Let's go green and save the planet!" textAlignment="CENTER" visible="false" wrappingWidth="714.0">
|
<Text fx:id="explainText" layoutX="53.0" layoutY="487.0" strokeType="OUTSIDE" strokeWidth="0.0" text="This application will help you decrease your CO2-footprint. In the next screen, you will be asked to fill in certain things, like your yearly energy costs. These values will help us calculate your CO2-footprint. Warning: If you don't fill anything in, the calculator will use a default value based on averages, so if you want a value to be zero, please fill in zero. After that, you'll be able to see your score and compare your footprint to those of your friends. Let's go green and save the planet!" textAlignment="CENTER" visible="false" wrappingWidth="714.0">
|
||||||
<font>
|
<font>
|
||||||
<Font size="14.0" />
|
<Font size="16.0" />
|
||||||
</font></Text>
|
</font>
|
||||||
<Button fx:id="showExplanation" layoutX="31.0" layoutY="534.0" mnemonicParsing="false" onAction="#showExplanation" prefHeight="63.0" prefWidth="52.0" style="-fx-background-color: transparent; -fx-padding: 0 0 0 0;">
|
</Text>
|
||||||
|
<Button layoutX="14.0" layoutY="532.0" mnemonicParsing="false" onAction="#showExplanation" style="-fx-background-color: transparent; -fx-padding: 0 0 0 0;">
|
||||||
<graphic>
|
<graphic>
|
||||||
<ImageView fitHeight="62.0" fitWidth="83.0" pickOnBounds="true" preserveRatio="true">
|
<ImageView fitHeight="73.0" fitWidth="72.0" pickOnBounds="true" preserveRatio="true">
|
||||||
<image>
|
<image>
|
||||||
<Image url="@../icons/questionmark.png" />
|
<Image url="@../icons/questionmark.png" />
|
||||||
</image>
|
</image>
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<?import java.lang.*?>
|
|
||||||
<?import javafx.scene.control.*?>
|
<?import javafx.scene.control.*?>
|
||||||
<?import javafx.scene.image.*?>
|
<?import javafx.scene.image.*?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
@@ -25,7 +24,7 @@
|
|||||||
<Font size="13.0" />
|
<Font size="13.0" />
|
||||||
</font>
|
</font>
|
||||||
</TextField>
|
</TextField>
|
||||||
<Button fx:id="signUpButton" layoutX="115.0" layoutY="229.0" mnemonicParsing="false" onAction="#handleSignUpButton" text="Sign up!" textFill="#c4eec9">
|
<Button fx:id="signUpButton" layoutX="115.0" layoutY="229.0" mnemonicParsing="false" onAction="#handleSignUpButton" style="-fx-background-color: #005e07;" text="Sign up!" textFill="#c4eec9">
|
||||||
<font>
|
<font>
|
||||||
<Font name="Corbel Bold" size="14.0" />
|
<Font name="Corbel Bold" size="14.0" />
|
||||||
</font>
|
</font>
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.control.Button?>
|
|
||||||
<?import javafx.scene.control.TextField?>
|
|
||||||
<?import javafx.scene.image.Image?>
|
|
||||||
<?import javafx.scene.image.ImageView?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
|
|
||||||
<AnchorPane prefHeight="287.0" prefWidth="187.0" style="-fx-background-color: #e2f0c8;" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="greenify.client.controller.FriendController">
|
|
||||||
<children>
|
|
||||||
<Text fill="#00650d" layoutX="114.0" layoutY="64.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Remove Friend" textAlignment="CENTER" wrappingWidth="234.96600341796875">
|
|
||||||
<font>
|
|
||||||
<Font size="30.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
<TextField fx:id="removeUserNameText" layoutX="140.0" layoutY="100.0" prefHeight="35.0" prefWidth="183.0" promptText="Username">
|
|
||||||
<font>
|
|
||||||
<Font size="13.0" />
|
|
||||||
</font>
|
|
||||||
</TextField>
|
|
||||||
<Button fx:id="removeButton" layoutX="206.0" layoutY="154.0" mnemonicParsing="false" onAction="#removeFriend" style="-fx-background-color: #005e07;" text="Remove!" textFill="#c4eec9">
|
|
||||||
<font>
|
|
||||||
<Font name="Corbel Bold" size="14.0" />
|
|
||||||
</font>
|
|
||||||
</Button>
|
|
||||||
<ImageView fitHeight="80.0" fitWidth="349.0" layoutY="211.0" pickOnBounds="true" preserveRatio="true">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/grass.png"/>
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
<ImageView fitHeight="150.0" fitWidth="200.0" layoutY="43.0" pickOnBounds="true" preserveRatio="true">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/friends.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
@@ -1,5 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.*?>
|
||||||
|
<?import javafx.scene.chart.*?>
|
||||||
|
<?import javafx.scene.control.*?>
|
||||||
|
<?import javafx.scene.image.*?>
|
||||||
|
<?import javafx.scene.layout.*?>
|
||||||
|
<?import javafx.scene.shape.*?>
|
||||||
|
<?import javafx.scene.text.*?>
|
||||||
<?import javafx.scene.chart.PieChart?>
|
<?import javafx.scene.chart.PieChart?>
|
||||||
<?import javafx.scene.control.Button?>
|
<?import javafx.scene.control.Button?>
|
||||||
<?import javafx.scene.control.Label?>
|
<?import javafx.scene.control.Label?>
|
||||||
@@ -16,8 +23,9 @@
|
|||||||
<?import javafx.scene.shape.Line?>
|
<?import javafx.scene.shape.Line?>
|
||||||
<?import javafx.scene.text.Font?>
|
<?import javafx.scene.text.Font?>
|
||||||
<?import javafx.scene.text.Text?>
|
<?import javafx.scene.text.Text?>
|
||||||
|
<?import javafx.scene.control.Tooltip?>
|
||||||
|
|
||||||
<AnchorPane prefHeight="702.0" prefWidth="1032.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="greenify.client.controller.DashBoardController">
|
<AnchorPane prefHeight="702.0" prefWidth="1032.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="greenify.client.controller.DashBoardController">
|
||||||
<children>
|
<children>
|
||||||
<AnchorPane fx:id="menuBar" prefHeight="703.0" prefWidth="216.0" style="-fx-background-color: #5a635c;">
|
<AnchorPane fx:id="menuBar" prefHeight="703.0" prefWidth="216.0" style="-fx-background-color: #5a635c;">
|
||||||
<children>
|
<children>
|
||||||
@@ -451,11 +459,16 @@
|
|||||||
</ImageView>
|
</ImageView>
|
||||||
</graphic>
|
</graphic>
|
||||||
</Button>
|
</Button>
|
||||||
<TableView fx:id="globalLeaderboard" layoutX="53.0" layoutY="220.0" prefHeight="334.0" prefWidth="207.0">
|
<TableView fx:id="globalLeaderboard" layoutX="56.0" layoutY="220.0" prefHeight="333.0" prefWidth="200.0">
|
||||||
<columns>
|
<columns>
|
||||||
<TableColumn fx:id="globalPlace" prefWidth="30.0" text="#" />
|
|
||||||
<TableColumn fx:id="globalUser" prefWidth="75.0" text="User" />
|
<TableColumn fx:id="globalUser" prefWidth="75.0" text="User" />
|
||||||
<TableColumn fx:id="globalScore" prefWidth="100.0" text="Score" />
|
<TableColumn fx:id="globalScore" prefWidth="124.0" text="Score" />
|
||||||
|
</columns>
|
||||||
|
</TableView>
|
||||||
|
<TableView fx:id="developmentLeaderboard" layoutX="302.0" layoutY="220.0" prefHeight="333.0" prefWidth="200.0">
|
||||||
|
<columns>
|
||||||
|
<TableColumn fx:id="developmentUser" prefWidth="75.0" text="User" />
|
||||||
|
<TableColumn fx:id="developmentScore" prefWidth="124.0" text="Score" />
|
||||||
</columns>
|
</columns>
|
||||||
</TableView>
|
</TableView>
|
||||||
<Label layoutX="69.0" layoutY="177.0" prefHeight="46.0" prefWidth="187.0" text="Global Leaderboard" textAlignment="CENTER" textFill="#5f1616">
|
<Label layoutX="69.0" layoutY="177.0" prefHeight="46.0" prefWidth="187.0" text="Global Leaderboard" textAlignment="CENTER" textFill="#5f1616">
|
||||||
@@ -557,13 +570,6 @@
|
|||||||
</Button>
|
</Button>
|
||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
<TableView fx:id="developmentLeaderboard" layoutX="292.0" layoutY="220.0" prefHeight="334.0" prefWidth="207.0">
|
|
||||||
<columns>
|
|
||||||
<TableColumn fx:id="developmentPlace" prefWidth="30.0" text="#" />
|
|
||||||
<TableColumn fx:id="developmentUser" prefWidth="75.0" text="User" />
|
|
||||||
<TableColumn fx:id="developmentScore" prefWidth="100.0" text="Score" />
|
|
||||||
</columns>
|
|
||||||
</TableView>
|
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
<AnchorPane fx:id="friendsPane" layoutX="216.0" prefHeight="703.0" prefWidth="820.0" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="214.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
<AnchorPane fx:id="friendsPane" layoutX="216.0" prefHeight="703.0" prefWidth="820.0" visible="false" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="214.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
@@ -578,7 +584,7 @@
|
|||||||
<Font size="20.0" />
|
<Font size="20.0" />
|
||||||
</font>
|
</font>
|
||||||
</Text>
|
</Text>
|
||||||
<TableView fx:id="friendsTable" layoutX="60.0" layoutY="170.0" prefHeight="426.0" prefWidth="214.0" style="-fx-background-color: #e1fcd9;">
|
<TableView fx:id="friendsTable" layoutX="60.0" layoutY="170.0" prefHeight="426.0" prefWidth="216.0" style="-fx-background-color: #e1fcd9;">
|
||||||
<columns>
|
<columns>
|
||||||
<TableColumn fx:id="friendsColumn" prefWidth="107.0" text="Friend" />
|
<TableColumn fx:id="friendsColumn" prefWidth="107.0" text="Friend" />
|
||||||
<TableColumn fx:id="scoreColumn" prefWidth="108.0" text="Score" />
|
<TableColumn fx:id="scoreColumn" prefWidth="108.0" text="Score" />
|
||||||
@@ -592,40 +598,15 @@
|
|||||||
<Font size="20.0" />
|
<Font size="20.0" />
|
||||||
</font>
|
</font>
|
||||||
</Text>
|
</Text>
|
||||||
<TableView fx:id="friendLeaderboard" layoutX="300.0" layoutY="170.0" prefHeight="426.0" prefWidth="232.0" style="-fx-background-color: #e1fcd9;">
|
<TableView fx:id="friendLeaderboard" layoutX="300.0" layoutY="170.0" prefHeight="426.0" prefWidth="216.0" style="-fx-background-color: #e1fcd9;">
|
||||||
<columns>
|
<columns>
|
||||||
<TableColumn fx:id="friendPlace" prefWidth="30.0" resizable="false" text="#" />
|
<TableColumn fx:id="friendUser" prefWidth="107.0" text="Friend" />
|
||||||
<TableColumn fx:id="friendUser" minWidth="30.0" prefWidth="100.0" resizable="false" text="Friend" />
|
<TableColumn fx:id="friendScore" prefWidth="108.0" text="Score" />
|
||||||
<TableColumn fx:id="friendScore" minWidth="30.0" prefWidth="100.0" resizable="false" text="Score" />
|
|
||||||
</columns>
|
</columns>
|
||||||
<columnResizePolicy>
|
<columnResizePolicy>
|
||||||
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
|
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
|
||||||
</columnResizePolicy>
|
</columnResizePolicy>
|
||||||
</TableView>
|
</TableView>
|
||||||
<Button fx:id="addFriend" contentDisplay="RIGHT" layoutX="575.0" layoutY="75.0" mnemonicParsing="false" onAction="#openAddFriend" prefHeight="74.0" prefWidth="200.0" style="-fx-border-radius: 20px; -fx-padding: 0px 0px 0px 0px; -fx-background-color: transparent;" text="Add friend" textFill="#29721a">
|
|
||||||
<font>
|
|
||||||
<Font name="Corbel Bold" size="14.0" />
|
|
||||||
</font>
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="74.0" fitWidth="64.0" pickOnBounds="true" preserveRatio="true">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/friend2.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</graphic>
|
|
||||||
</Button>
|
|
||||||
<Button fx:id="removeFriend" contentDisplay="RIGHT" layoutX="560.0" layoutY="150.0" mnemonicParsing="false" onAction="#openRemoveFriend" prefHeight="74.0" prefWidth="200.0" style="-fx-border-radius: 20px; -fx-padding: 0px 0px 0px 0px; -fx-background-color: transparent;" text="Remove friend" textFill="#29721a">
|
|
||||||
<font>
|
|
||||||
<Font name="Corbel Bold" size="14.0" />
|
|
||||||
</font>
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="70.0" fitWidth="60.0" pickOnBounds="true" preserveRatio="true">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/remove_friend.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</graphic>
|
|
||||||
</Button>
|
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<?import java.lang.*?>
|
|
||||||
<?import javafx.scene.control.*?>
|
<?import javafx.scene.control.*?>
|
||||||
<?import javafx.scene.image.*?>
|
<?import javafx.scene.image.*?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
@@ -9,6 +8,63 @@
|
|||||||
|
|
||||||
<AnchorPane prefHeight="611.0" prefWidth="820.0" stylesheets="@../stylesheets/extraActivitiesStyle.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="greenify.client.controller.ExtraActivityController">
|
<AnchorPane prefHeight="611.0" prefWidth="820.0" stylesheets="@../stylesheets/extraActivitiesStyle.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="greenify.client.controller.ExtraActivityController">
|
||||||
<children>
|
<children>
|
||||||
|
<AnchorPane prefHeight="611.0" prefWidth="107.0">
|
||||||
|
<children>
|
||||||
|
<Button fx:id="displayVeganMealButton" contentDisplay="TOP" layoutX="14.0" layoutY="62.0" mnemonicParsing="false" onAction="#displayVeganMeal" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="45.0" fitWidth="45.0" pickOnBounds="true" preserveRatio="true" styleClass="navButton">
|
||||||
|
<image>
|
||||||
|
<Image url="@../icons/icons8-vegan-food-100.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
</graphic>
|
||||||
|
</Button>
|
||||||
|
<Button fx:id="displayLocalProduceButton" contentDisplay="TOP" layoutX="14.0" layoutY="143.0" mnemonicParsing="false" onAction="#displayLocalProduce" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="45.0" fitWidth="45.0" pickOnBounds="true" preserveRatio="true" styleClass="navButton">
|
||||||
|
<image>
|
||||||
|
<Image url="@../icons/localProduce.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
</graphic>
|
||||||
|
</Button>
|
||||||
|
<Button fx:id="displayBikeButton" contentDisplay="TOP" layoutX="14.0" layoutY="224.0" mnemonicParsing="false" onAction="#displayBike" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="45.0" fitWidth="48.0" pickOnBounds="true" preserveRatio="true">
|
||||||
|
<image>
|
||||||
|
<Image url="@../icons/icons8-bicycle-filled-100.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
</graphic></Button>
|
||||||
|
<Button fx:id="displaySolarPanelButton" contentDisplay="TOP" layoutX="14.0" layoutY="467.0" mnemonicParsing="false" onAction="#displaySolarPanel" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="45.0" fitWidth="48.0" pickOnBounds="true" preserveRatio="true">
|
||||||
|
<image>
|
||||||
|
<Image url="@../icons/icons8-solar-panel-filled-100.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
</graphic>
|
||||||
|
</Button>
|
||||||
|
<Button fx:id="displayTemperatureButton" contentDisplay="TOP" layoutX="14.0" layoutY="386.0" mnemonicParsing="false" onAction="#displayTemperature" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="45.0" fitWidth="48.0" pickOnBounds="true" preserveRatio="true">
|
||||||
|
<image>
|
||||||
|
<Image url="@../icons/icons8-temperature-inside-64.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
</graphic>
|
||||||
|
</Button>
|
||||||
|
<Button fx:id="displayPublicTransportButton" contentDisplay="TOP" layoutX="14.0" layoutY="305.0" mnemonicParsing="false" onAction="#displayPublicTransport" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
||||||
|
<graphic>
|
||||||
|
<ImageView fitHeight="45.0" fitWidth="45.0" pickOnBounds="true" preserveRatio="true" styleClass="navButton">
|
||||||
|
<image>
|
||||||
|
<Image url="@../icons/publicTransport.png" />
|
||||||
|
</image>
|
||||||
|
</ImageView>
|
||||||
|
</graphic>
|
||||||
|
</Button>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
<AnchorPane fx:id="veganMealPane" layoutX="107.0" prefHeight="611.0" prefWidth="713.0">
|
<AnchorPane fx:id="veganMealPane" layoutX="107.0" prefHeight="611.0" prefWidth="713.0">
|
||||||
<children>
|
<children>
|
||||||
<Line fx:id="line1" endX="79.0" layoutX="465.0" layoutY="7.0" stroke="#545b54" />
|
<Line fx:id="line1" endX="79.0" layoutX="465.0" layoutY="7.0" stroke="#545b54" />
|
||||||
@@ -167,7 +223,7 @@
|
|||||||
<AnchorPane fx:id="publicTransportPane" layoutX="107.0" prefHeight="611.0" prefWidth="713.0" visible="false">
|
<AnchorPane fx:id="publicTransportPane" layoutX="107.0" prefHeight="611.0" prefWidth="713.0" visible="false">
|
||||||
<children>
|
<children>
|
||||||
<Line fx:id="line21" endX="79.0" layoutX="465.0" layoutY="7.0" stroke="#545b54" />
|
<Line fx:id="line21" endX="79.0" layoutX="465.0" layoutY="7.0" stroke="#545b54" />
|
||||||
<Text layoutX="153.0" layoutY="56.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Using public transport instead of your car">
|
<Text layoutX="153.0" layoutY="56.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Using your public transport instead of your car">
|
||||||
<font>
|
<font>
|
||||||
<Font size="20.0" />
|
<Font size="20.0" />
|
||||||
</font>
|
</font>
|
||||||
@@ -201,62 +257,5 @@
|
|||||||
</HBox>
|
</HBox>
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
<AnchorPane prefHeight="611.0" prefWidth="107.0">
|
|
||||||
<children>
|
|
||||||
<Button fx:id="displayVeganMealButton" contentDisplay="TOP" layoutX="14.0" layoutY="62.0" mnemonicParsing="false" onAction="#displayVeganMeal" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="45.0" fitWidth="45.0" pickOnBounds="true" preserveRatio="true" styleClass="navButton">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/icons8-vegan-food-100.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</graphic>
|
|
||||||
</Button>
|
|
||||||
<Button fx:id="displayLocalProduceButton" contentDisplay="TOP" layoutX="14.0" layoutY="143.0" mnemonicParsing="false" onAction="#displayLocalProduce" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="45.0" fitWidth="45.0" pickOnBounds="true" preserveRatio="true" styleClass="navButton">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/localProduce.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</graphic>
|
|
||||||
</Button>
|
|
||||||
<Button fx:id="displayBikeButton" contentDisplay="TOP" layoutX="14.0" layoutY="224.0" mnemonicParsing="false" onAction="#displayBike" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="45.0" fitWidth="48.0" pickOnBounds="true" preserveRatio="true">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/icons8-bicycle-filled-100.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</graphic></Button>
|
|
||||||
<Button fx:id="displaySolarPanelButton" contentDisplay="TOP" layoutX="14.0" layoutY="467.0" mnemonicParsing="false" onAction="#displaySolarPanel" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="45.0" fitWidth="48.0" pickOnBounds="true" preserveRatio="true">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/icons8-solar-panel-filled-100.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</graphic>
|
|
||||||
</Button>
|
|
||||||
<Button fx:id="displayTemperatureButton" contentDisplay="TOP" layoutX="14.0" layoutY="386.0" mnemonicParsing="false" onAction="#displayTemperature" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="45.0" fitWidth="48.0" pickOnBounds="true" preserveRatio="true">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/icons8-temperature-inside-64.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</graphic>
|
|
||||||
</Button>
|
|
||||||
<Button fx:id="displayPublicTransportButton" contentDisplay="TOP" layoutX="14.0" layoutY="305.0" mnemonicParsing="false" onAction="#displayPublicTransport" prefHeight="70.0" prefWidth="82.0" styleClass="navButton">
|
|
||||||
<graphic>
|
|
||||||
<ImageView fitHeight="45.0" fitWidth="45.0" pickOnBounds="true" preserveRatio="true" styleClass="navButton">
|
|
||||||
<image>
|
|
||||||
<Image url="@../icons/publicTransport.png" />
|
|
||||||
</image>
|
|
||||||
</ImageView>
|
|
||||||
</graphic>
|
|
||||||
</Button>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
</children>
|
</children>
|
||||||
</AnchorPane>
|
</AnchorPane>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 19 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 46 KiB |
@@ -2,12 +2,4 @@
|
|||||||
-fx-background-color: #005e07;
|
-fx-background-color: #005e07;
|
||||||
-fx-text-fill: #c4eec9;
|
-fx-text-fill: #c4eec9;
|
||||||
-fx-font-weight: bold;
|
-fx-font-weight: bold;
|
||||||
}
|
|
||||||
|
|
||||||
.button:hover {
|
|
||||||
-fx-background-color: #027009;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button:pressed {
|
|
||||||
-fx-background-color: #1ba023;
|
|
||||||
}
|
}
|
||||||
@@ -1,17 +1,15 @@
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
import greenify.client.features.Friend;
|
import greenify.client.Friend;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
|
||||||
public class FriendTest {
|
public class FriendTest {
|
||||||
@Test
|
@Test
|
||||||
public void setAndGetTest() {
|
public void setAndGetTest() {
|
||||||
Friend test = new Friend(1,"ceren", 10.0);
|
Friend test = new Friend("ceren", 10.0);
|
||||||
test.setPlace(1);
|
|
||||||
test.setFriend("greenify");
|
test.setFriend("greenify");
|
||||||
test.setScore(15.0);
|
test.setScore(15.0);
|
||||||
Assertions.assertEquals(test.getPlace(), 1);
|
|
||||||
assertEquals(test.getFriend(), "greenify");
|
assertEquals(test.getFriend(), "greenify");
|
||||||
Assertions.assertEquals(test.getScore(), 15.0);
|
Assertions.assertEquals(test.getScore(), 15.0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import static junit.framework.TestCase.assertTrue;
|
|||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
import greenify.client.features.Hints;
|
import greenify.client.Hints;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class HintsTest {
|
public class HintsTest {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class UserServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
public void userRegisterTest() throws Exception {
|
public void userRegisterTest() throws Exception {
|
||||||
UserDto testUser = new UserDto(1L, "Eric");
|
UserDto testUser = new UserDto(1L, "Eric");
|
||||||
Mockito.when(restTemplate.getForObject(new java.net.URI("http://localhost:8080/registerUser?name=Eric&password=5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"),
|
Mockito.when(restTemplate.getForObject(new java.net.URI("http://localhost:8080/registerUser?name=Eric&password=password"),
|
||||||
UserDto.class))
|
UserDto.class))
|
||||||
.thenReturn(testUser);
|
.thenReturn(testUser);
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ public class UserServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
public void userLoginTest() throws Exception {
|
public void userLoginTest() throws Exception {
|
||||||
UserDto testUser = new UserDto(1L, "Eric");
|
UserDto testUser = new UserDto(1L, "Eric");
|
||||||
Mockito.when(restTemplate.getForObject(new java.net.URI("http://localhost:8080/loginUser?name=Eric&password=5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"),
|
Mockito.when(restTemplate.getForObject(new java.net.URI("http://localhost:8080/loginUser?name=Eric&password=password"),
|
||||||
UserDto.class))
|
UserDto.class))
|
||||||
.thenReturn(testUser);
|
.thenReturn(testUser);
|
||||||
UserDto user = userService.loginUser("Eric", "password");
|
UserDto user = userService.loginUser("Eric", "password");
|
||||||
@@ -152,6 +152,8 @@ public class UserServiceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void removeFriendTest() throws Exception {
|
public void removeFriendTest() throws Exception {
|
||||||
|
userService.addFriend("Eric", "Ceren");
|
||||||
|
Mockito.verify(userService).addFriend("Eric", "Ceren");
|
||||||
userService.removeFriend("Eric", "Ceren");
|
userService.removeFriend("Eric", "Ceren");
|
||||||
Mockito.verify(userService).removeFriend("Eric", "Ceren");
|
Mockito.verify(userService).removeFriend("Eric", "Ceren");
|
||||||
}
|
}
|
||||||
@@ -167,12 +169,6 @@ public class UserServiceTest {
|
|||||||
userService.getResults("mika");
|
userService.getResults("mika");
|
||||||
Mockito.verify(userService).getResults("mika");
|
Mockito.verify(userService).getResults("mika");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void deleteAccountTest() throws Exception {
|
|
||||||
userService.deleteAccount("merel");
|
|
||||||
Mockito.verify(userService).deleteAccount("merel");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
import greenify.common.ApplicationException;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
public class ApplicationExceptionTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void setAndGetTest() {
|
|
||||||
ApplicationException ex = new ApplicationException("This is an exception");
|
|
||||||
assertEquals(ex.getMessage(), "This is an exception");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void equalsTest() {
|
|
||||||
ApplicationException ex = new ApplicationException("This is an exception");
|
|
||||||
ApplicationException test = new ApplicationException("This is an exception");
|
|
||||||
assertEquals(ex.getMessage(), test.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -7,19 +7,6 @@ buildscript {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
|
||||||
id "com.heroku.sdk.heroku-gradle" version "1.0.4"
|
|
||||||
}
|
|
||||||
|
|
||||||
heroku {
|
|
||||||
appName = "greenify43"
|
|
||||||
includes = ["${buildDir}/libs/greenify-server-1.0.0.jar"]
|
|
||||||
includeBuildDir = false
|
|
||||||
processTypes(
|
|
||||||
web: "java -Dserver.port=\$PORT -jar src/Server/build/libs/greenify-server-1.0.0.jar"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
apply plugin: 'eclipse'
|
apply plugin: 'eclipse'
|
||||||
apply plugin: 'idea'
|
apply plugin: 'idea'
|
||||||
@@ -29,8 +16,8 @@ apply plugin: 'jacoco'
|
|||||||
apply plugin: 'checkstyle'
|
apply plugin: 'checkstyle'
|
||||||
|
|
||||||
bootJar {
|
bootJar {
|
||||||
baseName = 'greenify-server'
|
baseName = 'gs-rest-service'
|
||||||
version = '1.0.0'
|
version = '0.1.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
test {
|
test {
|
||||||
|
|||||||
@@ -209,6 +209,7 @@ public class User {
|
|||||||
throw new ApplicationException("Cannot add yourself as a friend");
|
throw new ApplicationException("Cannot add yourself as a friend");
|
||||||
} else {
|
} else {
|
||||||
friends.add(user);
|
friends.add(user);
|
||||||
|
System.out.print("Friend added!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,6 +222,7 @@ public class User {
|
|||||||
throw new ApplicationException("This user is not your friend!");
|
throw new ApplicationException("This user is not your friend!");
|
||||||
} else {
|
} else {
|
||||||
friends.remove(user);
|
friends.remove(user);
|
||||||
|
System.out.print("Friend removed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -114,6 +114,7 @@ public class UserController {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping("/getFirst")
|
@RequestMapping("/getFirst")
|
||||||
public Float getFirstFootprint(@RequestParam(value = "name") String name) {
|
public Float getFirstFootprint(@RequestParam(value = "name") String name) {
|
||||||
|
System.out.println("hello");
|
||||||
Float footprint = userService.getFirstFootprint(name);
|
Float footprint = userService.getFirstFootprint(name);
|
||||||
return footprint;
|
return footprint;
|
||||||
}
|
}
|
||||||
@@ -194,14 +195,5 @@ public class UserController {
|
|||||||
public Map<String, String> getResults(@RequestParam(value = "name") String name) {
|
public Map<String, String> getResults(@RequestParam(value = "name") String name) {
|
||||||
return userService.getResults(name);
|
return userService.getResults(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This method deletes a user from the database.
|
|
||||||
* @param name name of the user
|
|
||||||
*/
|
|
||||||
@RequestMapping("/deleteAccount")
|
|
||||||
public void deleteAccount(@RequestParam(value = "name") String name) {
|
|
||||||
userService.deleteAccount(name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,8 +38,6 @@ public class AchievementService {
|
|||||||
public void achieveSocialButterfly(User user) {
|
public void achieveSocialButterfly(User user) {
|
||||||
if (user.getFriends().size() >= 3) {
|
if (user.getFriends().size() >= 3) {
|
||||||
userService.setAchievement(user.getName(), "Social butterfly", true);
|
userService.setAchievement(user.getName(), "Social butterfly", true);
|
||||||
} else {
|
|
||||||
userService.setAchievement(user.getName(), "Social butterfly", false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,8 +48,6 @@ public class AchievementService {
|
|||||||
public void achieveGreenSaver(User user) {
|
public void achieveGreenSaver(User user) {
|
||||||
if (20 > user.getFootPrint()) {
|
if (20 > user.getFootPrint()) {
|
||||||
userService.setAchievement(user.getName(), "Green saver", true);
|
userService.setAchievement(user.getName(), "Green saver", true);
|
||||||
} else {
|
|
||||||
userService.setAchievement(user.getName(), "Green saver", false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,8 +59,6 @@ public class AchievementService {
|
|||||||
int vegan = Integer.parseInt(user.getExtraInputs().get("vegan"));
|
int vegan = Integer.parseInt(user.getExtraInputs().get("vegan"));
|
||||||
if (vegan > 10) {
|
if (vegan > 10) {
|
||||||
userService.setAchievement(user.getName(), "Animal friend", true);
|
userService.setAchievement(user.getName(), "Animal friend", true);
|
||||||
} else {
|
|
||||||
userService.setAchievement(user.getName(), "Animal friend", false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,8 +70,6 @@ public class AchievementService {
|
|||||||
int bike = Integer.parseInt(user.getExtraInputs().get("bike"));
|
int bike = Integer.parseInt(user.getExtraInputs().get("bike"));
|
||||||
if (bike > 15) {
|
if (bike > 15) {
|
||||||
userService.setAchievement(user.getName(), "Tom Dumoulin", true);
|
userService.setAchievement(user.getName(), "Tom Dumoulin", true);
|
||||||
} else {
|
|
||||||
userService.setAchievement(user.getName(), "Tom Dumoulin", false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,8 +81,6 @@ public class AchievementService {
|
|||||||
int solarPanels = Integer.parseInt(user.getExtraInputs().get("solar_panels"));
|
int solarPanels = Integer.parseInt(user.getExtraInputs().get("solar_panels"));
|
||||||
if (solarPanels >= 2) {
|
if (solarPanels >= 2) {
|
||||||
userService.setAchievement(user.getName(), "Let it shine", true);
|
userService.setAchievement(user.getName(), "Let it shine", true);
|
||||||
} else {
|
|
||||||
userService.setAchievement(user.getName(), "Let it shine", false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ public class CalculatorService {
|
|||||||
.indexOf("<result_grand_total>")
|
.indexOf("<result_grand_total>")
|
||||||
+ 20, response.getBody().indexOf("</result_grand_total>"));
|
+ 20, response.getBody().indexOf("</result_grand_total>"));
|
||||||
// to do: in not HTTP 200 or exception case throws exception
|
// to do: in not HTTP 200 or exception case throws exception
|
||||||
|
System.out.println(Float.parseFloat(result));
|
||||||
return Float.parseFloat(result);
|
return Float.parseFloat(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -303,15 +303,4 @@ public class UserService {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This method gets the list of all users.
|
|
||||||
*/
|
|
||||||
public void deleteAccount(String name) {
|
|
||||||
User user = userRepository.findByName(name);
|
|
||||||
if (user == null) {
|
|
||||||
throw new ApplicationException("User doesn't exist");
|
|
||||||
}
|
|
||||||
userRepository.delete(user);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -262,16 +262,4 @@ public class UserControllerTest {
|
|||||||
assertEquals("mika", arg1Captor.getValue());
|
assertEquals("mika", arg1Captor.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void deleteAccountTest() throws Exception {
|
|
||||||
ArgumentCaptor<String> arg1Captor = ArgumentCaptor.forClass(String.class);
|
|
||||||
mvc.perform(get("/deleteAccount")
|
|
||||||
.param("name", "merel")
|
|
||||||
.accept(MediaType.APPLICATION_JSON))
|
|
||||||
.andDo(print())
|
|
||||||
.andExpect(status().isOk());
|
|
||||||
verify(userService, times(1)).deleteAccount(arg1Captor.capture());
|
|
||||||
assertEquals("merel", arg1Captor.getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,6 @@ package greenify.server.service;
|
|||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
import static org.mockito.Mockito.doNothing;
|
|
||||||
import static org.mockito.Mockito.times;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import greenify.common.ApplicationException;
|
import greenify.common.ApplicationException;
|
||||||
@@ -329,17 +326,4 @@ public class UserServiceTest {
|
|||||||
public void getAchievementsTest() {
|
public void getAchievementsTest() {
|
||||||
assertEquals(AllAchievements.getDefaults(), userService.getAchievements("alex"));
|
assertEquals(AllAchievements.getDefaults(), userService.getAchievements("alex"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void deleteAccountException() {
|
|
||||||
assertThrows(ApplicationException.class, () -> userService.deleteAccount("merel"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void deleteAccount() {
|
|
||||||
User alex = new User(1L, "alex", "password");
|
|
||||||
doNothing().when(userRepository).delete(alex);
|
|
||||||
userService.deleteAccount("alex");
|
|
||||||
verify(userRepository, times(1)).delete(alex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user