Skip to content

Commit 5611a78

Browse files
committed
implemented a refresh for editing
1 parent def1724 commit 5611a78

File tree

10 files changed

+117
-33
lines changed

10 files changed

+117
-33
lines changed

src/data/FlashcardSets.csv

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ test set 1,for testing study use case,false,0,testUser,0,1,2,3
33
empty test set,for testing study use case with empty set,true,1,testUser
44
my flashcard set,for presentation,false,2,lucas,4
55
csc207,csc207 class,false,3,jempio
6-
new flashcard set,decsi,false,4,testUser
7-
aghdopaidsh,fdjas;lghd,false,5,testUser
8-
athapsto;,aphetioahsokd,false,6,testUser
6+
lol,decsi,false,4,testUser
7+
l,fdjas;lghd,false,5,testUser
8+
k,tge gy,false,6,testUser,5
9+
p,osdglskg,false,7,testUser
10+
b,klijdasgsd,false,8,testUser
11+
alkjsdaf,klndsaf,false,9,testUser
12+
hahahaha,sdg.masdf,false,10,testUser
13+
testestestests,lolol,false,11,testUser
14+
adsgh klmh;,im so happy,false,12,testUser

src/data/Flashcards.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ test card 2,the second test card,2022-11-13T15:32:27.666982800,1,0
44
test card 3,the third test card,2022-11-13T15:32:28.666982800,2,0
55
alphabetical order checker,to test if alphabetical order is working,2022-11-13T15:32:29.666982800,3,0
66
my new flashcard,my test definition,2022-11-21T14:27:10.045791,4,2
7+
fasdgadsf,alsflasfkal,2022-11-28T14:54:37.086646100,5,6

src/data/Users.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ jempio,ilovejempio,false,3
33
ducas,badpassword,false
44
lucas,password,false,2
55
adminUser,password,true
6-
testUser,password,false,0,1,4,5,6
6+
testUser,password,false,0,1,4,5,6,7,8,9,10,11,12

src/main/java/EditorMainPage/EditorMainPage.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package EditorMainPage;
22

3+
import MainPage.HomePage;
34
import dataAccess.*;
45
import entityRequestModels.FlashcardDsRequestModel;
56
import entityRequestModels.FlashcardSetDsRequestModel;
67

78
import javax.swing.*;
9+
import java.awt.event.WindowEvent;
10+
import java.awt.event.WindowListener;
811
import java.io.IOException;
912
import java.util.ArrayList;
1013
import java.util.List;
1114

1215
public class EditorMainPage extends JFrame {
16+
1317
public EditorMainPage(int flashcardSetId){
1418
IFlashcardSetDataAccess fcSetGateway;
1519
IFlashcardDataAccess fcGateway;
@@ -37,7 +41,6 @@ public EditorMainPage(int flashcardSetId){
3741
//scrollPane.setPreferredSize(new Dimension(100, 100));
3842
this.add(scrollPane);
3943

40-
4144
this.setTitle("Edit Set \"" + flashcardSet.getTitle() + "\"");
4245
this.setSize(1000, 800);
4346
this.setVisible(true);

src/main/java/EditorMainPage/FlashcardDataPanel.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,13 @@ else if(event.getActionCommand().equals("Delete Flashcard")){
6161
@Override
6262
public void windowOpened(WindowEvent e) {}
6363
@Override
64-
public void windowClosing(WindowEvent e) {}
65-
@Override
66-
public void windowClosed(WindowEvent e) {
64+
public void windowClosing(WindowEvent e) {
6765
frame.dispose();
6866
new EditorMainPage(flashcardSetId);
67+
}
68+
@Override
69+
public void windowClosed(WindowEvent e) {
70+
6971
}
7072
@Override
7173
public void windowIconified(WindowEvent e) {}

src/main/java/MainPage/FlashcardSetDataPanel.java

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,33 @@
33
import EditorMainPage.EditorMainPage;
44
import dataAccess.DBGateway;
55
import delete_flashcardset_use_case.*;
6+
import loginAndSignupUseCase.UserLoginInputBoundary;
7+
import loginAndSignupUseCase.UserLoginInteractor;
8+
import loginAndSignupUseCase.UserLoginOutputBoundary;
69
import loginAndSignupUseCase.UserLoginResponseModel;
10+
import loginAndSignupUseCase.loginAndSignupUseCaseScreens.UserLoginController;
11+
import loginAndSignupUseCase.loginAndSignupUseCaseScreens.UserLoginPresenter;
712
import quizUseCase.*;
813
import quizUseCase.screens.QuizSettingsScreen;
914
import studyMode.*;
1015
import studyMode.screens.StudySettingsScreen;
1116

1217
import javax.swing.*;
1318
import javax.swing.border.Border;
19+
import java.awt.*;
20+
import java.awt.event.WindowEvent;
21+
import java.awt.event.WindowListener;
1422

15-
public class FlashcardSetDataPanel extends JPanel {
16-
23+
public class FlashcardSetDataPanel extends JPanel implements WindowListener {
24+
HomePage home;
1725
public FlashcardSetDataPanel(String title, String description,
1826
int flashcardSetId, DBGateway gateway,
19-
UserLoginResponseModel user) {
27+
UserLoginResponseModel user, HomePage home) {
2028
Border border = BorderFactory.createTitledBorder(title);
2129

22-
2330
JLabel descriptionLabel = new JLabel(description);
2431
this.add(descriptionLabel);
25-
32+
this.home = home;
2633
JPanel buttons = new JPanel();
2734

2835
JButton study = new JButton("Study");
@@ -36,7 +43,11 @@ public FlashcardSetDataPanel(String title, String description,
3643
buttons.add(edit);
3744
buttons.add(delete);
3845

39-
edit.addActionListener((e) -> new EditorMainPage(flashcardSetId));
46+
edit.addActionListener((e) -> {
47+
EditorMainPage editor = new EditorMainPage(flashcardSetId);
48+
editor.addWindowListener(this);
49+
});
50+
4051
study.addActionListener(e -> {
4152
StudySessionOutputBoundary presenter = new StudySessionPresenter();
4253
StudySessionInputBoundary interactor = new StudySessionInteractor(gateway, presenter);
@@ -63,4 +74,38 @@ public FlashcardSetDataPanel(String title, String description,
6374
}
6475

6576

77+
@Override
78+
public void windowOpened(WindowEvent e) {
79+
80+
}
81+
82+
@Override
83+
public void windowClosing(WindowEvent e) {
84+
}
85+
86+
@Override
87+
public void windowClosed(WindowEvent e) {
88+
home.refresh();
89+
90+
}
91+
92+
@Override
93+
public void windowIconified(WindowEvent e) {
94+
95+
}
96+
97+
@Override
98+
public void windowDeiconified(WindowEvent e) {
99+
100+
}
101+
102+
@Override
103+
public void windowActivated(WindowEvent e) {
104+
105+
}
106+
107+
@Override
108+
public void windowDeactivated(WindowEvent e) {
109+
110+
}
66111
}

src/main/java/MainPage/HomePage.java

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package MainPage;
22

3+
import EditorMainPage.EditorMainPage;
34
import create_flashcardset_use_case.*;
45
import dataAccess.*;
56
import entities.FlashcardSetFactory;
@@ -24,27 +25,25 @@ public class HomePage extends JFrame implements WindowListener {
2425
UserLoginResponseModel user;
2526
DBGateway gateway;
2627

27-
public HomePage(UserLoginResponseModel user) throws IOException {
28+
public HomePage(UserLoginResponseModel user, DBGateway gateway) throws IOException {
2829
super(user.getSignedInUsername() + "'s home page");
29-
30+
this.gateway = gateway;
3031
this.user = user;
3132
// home page layout
3233
getContentPane().setLayout(new BoxLayout(getContentPane(),BoxLayout.Y_AXIS));
3334

34-
// initialize DBGateway
35-
IFlashcardSetDataAccess flashcardSetDataAccess = new FlashcardSetDataAccess(DBGateway.getFlashcardSetPath());
36-
IFlashcardDataAccess flashcardDataAccess = new FlashcardDataAccess(DBGateway.getFlashcardPath());
37-
IUserDataAccess userDataAccess = new CommonUserDataAccess(DBGateway.getUserPath());
38-
DBGateway gateway = new DBGateway(flashcardDataAccess,
39-
flashcardSetDataAccess, userDataAccess);
40-
this.gateway = gateway;
4135
// top bar
4236
JPanel topBar = new JPanel();
4337
topBar.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 20));
4438

4539
JButton searchButton = new JButton("Search");
4640
JButton addFlashcardSetButton = new JButton("Add Flashcard Set");
4741
JButton logOff = new JButton("Log Off");
42+
JButton refresh = new JButton("Refresh");
43+
44+
refresh.addActionListener(e -> {
45+
refresh();
46+
});
4847

4948
searchButton.addActionListener(e -> {
5049
SearchOutputBoundary presenter = new SearchPresenter();
@@ -63,7 +62,6 @@ public HomePage(UserLoginResponseModel user) throws IOException {
6362
creationScreen.addWindowListener(this);
6463
});
6564

66-
6765
logOff.addActionListener(e -> {
6866
this.setVisible(false);
6967
this.dispose();
@@ -77,6 +75,7 @@ public HomePage(UserLoginResponseModel user) throws IOException {
7775
topBar.add(searchButton);
7876
topBar.add(addFlashcardSetButton);
7977
topBar.add(logOff);
78+
topBar.add(refresh);
8079
topBar.setSize(1000,20);
8180
this.add(topBar);
8281

@@ -93,27 +92,43 @@ public HomePage(UserLoginResponseModel user) throws IOException {
9392
this.add(labelPanel);
9493
}
9594
else {
96-
this.add(new ListOfFlashcardSetsDataPanel(idsToFlashcardSetData, gateway, user));
95+
this.add(new ListOfFlashcardSetsDataPanel(idsToFlashcardSetData, gateway, user, this));
9796
}
97+
98+
// for (Component component : comp) {
99+
// if (component instanceof JButton) {
100+
// if (((JButton) component).getText().equals("Edit")){
101+
//
102+
// }
103+
// else if (((JButton) component).getText().equals("Delete")){
104+
//
105+
// }
106+
// }
107+
// }
108+
98109
this.setSize(1000, 800);
99110
this.setVisible(true);
100111
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
101112
}
102113

103114

104-
private void refresh() {
115+
public void refresh() {
105116
try {
117+
IFlashcardSetDataAccess flashcardSetDataAccess = new FlashcardSetDataAccess(DBGateway.getFlashcardSetPath());
118+
IFlashcardDataAccess flashcardDataAccess = new FlashcardDataAccess(DBGateway.getFlashcardPath());
119+
IUserDataAccess userDataAccess = new CommonUserDataAccess(DBGateway.getUserPath());
120+
DBGateway gateway = new DBGateway(flashcardDataAccess,
121+
flashcardSetDataAccess, userDataAccess);
106122
UserLoginOutputBoundary presenter = new UserLoginPresenter();
107123
UserLoginInputBoundary interactor = new UserLoginInteractor(
108124
gateway, presenter);
109125
UserLoginController userLoginController = new UserLoginController(interactor);
110126
setVisible(false);
111-
dispose();
112127

113128
user = userLoginController.create(user.getSignedInUsername(),
114129
user.getPassword());
115130
this.dispose();
116-
new HomePage(user);
131+
new HomePage(user, gateway);
117132
} catch (Exception e) {
118133
JOptionPane.showMessageDialog(this, e.getMessage());
119134
}

src/main/java/MainPage/ListOfFlashcardSetsDataPanel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@
1313
public class ListOfFlashcardSetsDataPanel extends JPanel {
1414

1515
public ListOfFlashcardSetsDataPanel(Map<Integer, String[]> idsToFlashcardSetData,
16-
DBGateway gateway, UserLoginResponseModel user) {
16+
DBGateway gateway, UserLoginResponseModel user, HomePage home) {
1717
Set<Integer> flashcardSetIds = idsToFlashcardSetData.keySet();
1818

1919
for (int flashcardSetId : flashcardSetIds) {
2020
String[] data = idsToFlashcardSetData.get(flashcardSetId);
2121
String title = data[0];
2222
String description = data[1];
2323

24-
this.add(new FlashcardSetDataPanel(title, description, flashcardSetId, gateway, user));
24+
this.add(new FlashcardSetDataPanel(title, description, flashcardSetId, gateway, user, home));
2525
}
2626

27-
this.setLayout(new FlowLayout());
27+
this.setLayout (new FlowLayout());
2828
this.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
2929
this.setPreferredSize(new Dimension(500, 1000));
3030
}

src/main/java/loginAndSignupUseCase/loginAndSignupUseCaseScreens/LoginScreen.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package loginAndSignupUseCase.loginAndSignupUseCaseScreens;
22

33
import MainPage.HomePage;
4+
import dataAccess.*;
45
import loginAndSignupUseCase.UserLoginResponseModel;
56

67
import javax.swing.*;
@@ -81,7 +82,12 @@ public void actionPerformed(ActionEvent evt) {
8182
UserLoginResponseModel user = userLoginController.create(username.getText(),
8283
String.valueOf(password.getPassword()));
8384
this.dispose();
84-
new HomePage(user);
85+
IFlashcardSetDataAccess flashcardSetDataAccess = new FlashcardSetDataAccess(DBGateway.getFlashcardSetPath());
86+
IFlashcardDataAccess flashcardDataAccess = new FlashcardDataAccess(DBGateway.getFlashcardPath());
87+
IUserDataAccess userDataAccess = new CommonUserDataAccess(DBGateway.getUserPath());
88+
DBGateway gateway = new DBGateway(flashcardDataAccess,
89+
flashcardSetDataAccess, userDataAccess);
90+
new HomePage(user, gateway);
8591
} catch (Exception e) {
8692
JOptionPane.showMessageDialog(this, e.getMessage());
8793
}

src/main/java/loginAndSignupUseCase/loginAndSignupUseCaseScreens/RegisterScreen.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package loginAndSignupUseCase.loginAndSignupUseCaseScreens;
22

33
import MainPage.HomePage;
4+
import dataAccess.*;
45
import loginAndSignupUseCase.*;
56

67
import javax.swing.*;
@@ -107,7 +108,12 @@ public void actionPerformed(ActionEvent evt) {
107108
UserLoginResponseModel user = userLoginController.create(newUser.getSignedUpUsername(),
108109
newUser.getSignedUpPassword());
109110
try {
110-
new HomePage(user);
111+
IFlashcardSetDataAccess flashcardSetDataAccess = new FlashcardSetDataAccess(DBGateway.getFlashcardSetPath());
112+
IFlashcardDataAccess flashcardDataAccess = new FlashcardDataAccess(DBGateway.getFlashcardPath());
113+
IUserDataAccess userDataAccess = new CommonUserDataAccess(DBGateway.getUserPath());
114+
DBGateway gateway = new DBGateway(flashcardDataAccess,
115+
flashcardSetDataAccess, userDataAccess);
116+
new HomePage(user, gateway);
111117
} catch (IOException e) {
112118
throw new RuntimeException(e);
113119
}

0 commit comments

Comments
 (0)