Skip to content

Commit 4421f4c

Browse files
committed
Add new model class for project, use ModelView as wrapper around model class
Show error dialog if user/password incorrect
1 parent 1997bb8 commit 4421f4c

10 files changed

+73
-44
lines changed

src/main/java/org/jabref/gui/sharelatex/ShareLatexLoginDialogController.java

+11-5
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@
33
import javax.inject.Inject;
44

55
import javafx.fxml.FXML;
6+
import javafx.scene.control.Alert.AlertType;
67
import javafx.scene.control.PasswordField;
78
import javafx.scene.control.TextField;
89

910
import org.jabref.gui.AbstractController;
11+
import org.jabref.gui.FXDialog;
1012
import org.jabref.logic.sharelatex.ShareLatexManager;
1113

1214
public class ShareLatexLoginDialogController extends AbstractController<ShareLatexLoginDialogViewModel> {
1315

1416
@FXML private TextField tbAddress;
1517
@FXML private TextField tbUsername;
1618
@FXML private PasswordField pfPassword;
17-
@Inject ShareLatexManager manager;
19+
@Inject private ShareLatexManager manager;
1820

1921
@FXML
2022
private void initialize() {
@@ -34,10 +36,14 @@ private void signIn() {
3436
System.out.println(pfPassword.getText());
3537

3638
String result = manager.login(tbAddress.getText(), tbUsername.getText(), pfPassword.getText());
37-
System.out.println(result);
38-
39-
ShareLatexProjectDialogView dlgprojects = new ShareLatexProjectDialogView();
40-
dlgprojects.show();
39+
if (result.contains("incorrect")) {
40+
FXDialog dlg = new FXDialog(AlertType.ERROR);
41+
dlg.setContentText("Your email or password is incorrect. Please try again");
42+
dlg.showAndWait();
43+
} else {
44+
ShareLatexProjectDialogView dlgprojects = new ShareLatexProjectDialogView();
45+
dlgprojects.show();
46+
}
4147

4248
}
4349
}

src/main/java/org/jabref/gui/sharelatex/ShareLatexProjectDialogController.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
package org.jabref.gui.sharelatex;
22

3-
import org.jabref.gui.AbstractController;
4-
import org.jabref.logic.sharelatex.ShareLatexManager;
5-
63
import javax.inject.Inject;
74

85
import javafx.fxml.FXML;
96
import javafx.scene.control.TableColumn;
107
import javafx.scene.control.TableView;
118

9+
import org.jabref.gui.AbstractController;
10+
import org.jabref.logic.sharelatex.ShareLatexManager;
11+
1212
public class ShareLatexProjectDialogController extends AbstractController<ShareLatexProjectDialogViewModel> {
1313

14-
@FXML TableColumn<ShareLatexProjectViewModel, String> colTitle;
15-
@FXML TableColumn<ShareLatexProjectViewModel, String> colOwner;
16-
@FXML TableColumn<ShareLatexProjectViewModel, String> colLastModified;
17-
@FXML TableView<ShareLatexProjectViewModel> tblProjects;
18-
@Inject ShareLatexManager manager;
14+
@FXML private TableColumn<ShareLatexProjectViewModel, String> colTitle;
15+
@FXML private TableColumn<ShareLatexProjectViewModel, String> colOwner;
16+
@FXML private TableColumn<ShareLatexProjectViewModel, String> colLastModified;
17+
@FXML private TableView<ShareLatexProjectViewModel> tblProjects;
18+
@Inject private ShareLatexManager manager;
1919

2020
@FXML
2121
private void initialize() {
22-
23-
viewModel = new ShareLatexProjectDialogViewModel(manager.getProjects());
22+
viewModel = new ShareLatexProjectDialogViewModel();
23+
viewModel.addProjects(manager.getProjects());
2424

2525
colTitle.setCellValueFactory(cellData -> cellData.getValue().getProjectTitle());
2626
colOwner.setCellValueFactory(cellData -> cellData.getValue().getOwner());

src/main/java/org/jabref/gui/sharelatex/ShareLatexProjectDialogView.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package org.jabref.gui.sharelatex;
22

3-
import javafx.scene.control.DialogPane;
43
import javafx.scene.control.Alert.AlertType;
4+
import javafx.scene.control.DialogPane;
5+
56
import org.jabref.gui.AbstractDialogView;
67
import org.jabref.gui.FXDialog;
78

Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
11
package org.jabref.gui.sharelatex;
22

33
import java.util.List;
4+
import java.util.stream.Collectors;
45

56
import javafx.beans.property.SimpleListProperty;
67
import javafx.collections.FXCollections;
78

89
import org.jabref.gui.AbstractViewModel;
10+
import org.jabref.model.sharelatex.ShareLatexProject;
911

1012
public class ShareLatexProjectDialogViewModel extends AbstractViewModel {
1113

1214
private final SimpleListProperty<ShareLatexProjectViewModel> projects = new SimpleListProperty<>(
1315
FXCollections.observableArrayList());
1416

15-
public ShareLatexProjectDialogViewModel(List<ShareLatexProjectViewModel> projects) {
16-
this.projects.addAll(projects);
17+
public void addProjects(List<ShareLatexProject> projectsToAdd) {
18+
this.projects.addAll(projectsToAdd.stream().map(ShareLatexProjectViewModel::new).collect(Collectors.toList()));
1719
}
1820

1921
public SimpleListProperty<ShareLatexProjectViewModel> projectsProperty() {
2022
return this.projects;
2123
}
2224

23-
public ShareLatexProjectDialogViewModel() {
24-
// TODO Auto-generated constructor stub
25-
}
26-
2725
}

src/main/java/org/jabref/gui/sharelatex/ShareLatexProjectViewModel.java

+7-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import javafx.beans.property.SimpleStringProperty;
44
import javafx.beans.property.StringProperty;
55

6+
import org.jabref.model.sharelatex.ShareLatexProject;
7+
68
/**
79
* Data class
810
* @author CS
@@ -15,12 +17,12 @@ public class ShareLatexProjectViewModel {
1517
private final StringProperty owner;
1618
private final StringProperty lastUpdated;
1719

18-
public ShareLatexProjectViewModel(String projectId, String projectTitle, String owner, String lastUpdated) {
20+
public ShareLatexProjectViewModel(ShareLatexProject project) {
1921

20-
this.projectId = projectId;
21-
this.projectTitle = new SimpleStringProperty(projectTitle);
22-
this.owner = new SimpleStringProperty(owner);
23-
this.lastUpdated = new SimpleStringProperty(lastUpdated);
22+
this.projectId = project.getProjectId();
23+
this.projectTitle = new SimpleStringProperty(project.getProjectTitle());
24+
this.owner = new SimpleStringProperty(project.getOwner());
25+
this.lastUpdated = new SimpleStringProperty(project.getLastUpdated());
2426

2527
}
2628

src/main/java/org/jabref/logic/sharelatex/ShareLatexManager.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@
44
import java.util.ArrayList;
55
import java.util.List;
66

7-
import org.jabref.gui.sharelatex.ShareLatexProjectViewModel;
7+
import org.jabref.model.sharelatex.ShareLatexProject;
88

99
import com.google.gson.JsonArray;
1010
import com.google.gson.JsonElement;
1111

1212
public class ShareLatexManager {
1313

1414
private final SharelatexConnector connector = new SharelatexConnector();
15-
private final List<ShareLatexProjectViewModel> projects = new ArrayList<>();
15+
private final List<ShareLatexProject> projects = new ArrayList<>();
1616

1717
public String login(String server, String username, String password) {
1818
return connector.connectToServer(server, username, password);
1919
}
2020

21-
public List<ShareLatexProjectViewModel> getProjects() {
21+
public List<ShareLatexProject> getProjects() {
2222
try {
2323
connector.getProjects().ifPresent(jsonResponse -> {
2424
if (jsonResponse.has("projects")) {
@@ -38,8 +38,8 @@ public List<ShareLatexProjectViewModel> getProjects() {
3838
System.out.println("LastUpdated " + lastUpdated);
3939
System.out.println("Owner" + owner);
4040

41-
ShareLatexProjectViewModel model = new ShareLatexProjectViewModel(id, name, owner, lastUpdated);
42-
projects.add(model);
41+
ShareLatexProject project = new ShareLatexProject(id, name, owner, lastUpdated);
42+
projects.add(project);
4343
//TODO: How do I pass this projectLIst to the other view?
4444
}
4545

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.jabref.model.sharelatex;
2+
3+
public class ShareLatexProject {
4+
5+
private final String projectId;
6+
private final String projectTitle;
7+
private final String owner;
8+
private final String lastUpdated;
9+
10+
public ShareLatexProject(String projectId, String projectTitle, String owner, String lastUpdated) {
11+
this.projectId = projectId;
12+
this.projectTitle = projectTitle;
13+
this.lastUpdated = lastUpdated;
14+
this.owner = owner;
15+
}
16+
17+
public String getLastUpdated() {
18+
return lastUpdated;
19+
}
20+
21+
public String getProjectId() {
22+
return projectId;
23+
}
24+
25+
public String getProjectTitle() {
26+
return projectTitle;
27+
}
28+
29+
public String getOwner() {
30+
return owner;
31+
}
32+
}

src/test/java/org/jabref/logic/sharelatex/ShareLatexManagerTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.util.List;
44

5-
import org.jabref.gui.sharelatex.ShareLatexProjectViewModel;
5+
import org.jabref.model.sharelatex.ShareLatexProject;
66

77
import org.junit.Test;
88

@@ -15,7 +15,7 @@ public void test() {
1515
ShareLatexManager manager = new ShareLatexManager();
1616
manager.login("http://192.168.1.248", "[email protected]", "test");
1717

18-
List<ShareLatexProjectViewModel> projects = manager.getProjects();
18+
List<ShareLatexProject> projects = manager.getProjects();
1919
assertFalse(projects.isEmpty());
2020
}
2121
}

src/test/java/org/jabref/logic/sharelatex/ShareLatexProject.java

-7
This file was deleted.

src/test/java/org/jabref/logic/sharelatex/SharelatexConnectorTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@
22

33
import org.junit.Test;
44

5-
65
public class SharelatexConnectorTest {
76

87
@Test
98
public void test() {
10-
119
SharelatexConnector connector = new SharelatexConnector();
1210
connector.connectToServer("http://192.168.1.248", "[email protected]", "test");
13-
1411
}
1512

1613
}

0 commit comments

Comments
 (0)