Skip to content

Commit 8fe534d

Browse files
committed
Made some minor changes and refactored some parts
1 parent 9446e4f commit 8fe534d

File tree

16 files changed

+92
-100
lines changed

16 files changed

+92
-100
lines changed

src/main/java/entities/chat/GroupChat.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package entities.chat;
22

3-
import entities.message.Message;
4-
53
import java.util.ArrayList;
64

75
public class GroupChat extends Chat {
@@ -25,7 +23,7 @@ public GroupChat(String name, String chatID, String senderUsername){
2523
this.name = name;
2624
this.chatID = chatID;
2725
this.senderUsername = senderUsername;
28-
this.convHist = new ArrayList<Message>();
26+
this.convHist = new ArrayList<>();
2927
this.groupMembers = new ArrayList<>();
3028
}
3129

@@ -35,7 +33,7 @@ public GroupChat(String name, String chatID, String senderUsername){
3533
* @return groupMembers
3634
*/
3735
public ArrayList<String> getGroupMembers(){
38-
return new ArrayList<String>(this.groupMembers);
36+
return new ArrayList<>(this.groupMembers);
3937
}
4038

4139
/**

src/main/java/entities/chat/PrivateChat.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package entities.chat;
22

3-
import entities.message.Message;
4-
53
import java.util.ArrayList;
64

75
public class PrivateChat extends Chat {
@@ -29,7 +27,7 @@ public PrivateChat(String name, String chatID, String recipientUsername ){
2927
this.name = name;
3028
this.chatID = chatID;
3129
this.recipientUsername = recipientUsername;
32-
this.convHist = new ArrayList<Message>();
30+
this.convHist = new ArrayList<>();
3331

3432
}
3533

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package interface_adapters.appscreen;
2+
3+
import entities.chat.Chat;
4+
import use_cases.appscreen.AppScreenRequestModel;
5+
import use_cases.appscreen.AppScreenResponseModel;
6+
import java.util.ArrayList;
7+
8+
public class AppScreenChatProxy {
9+
10+
private final String username;
11+
private final Chat chat;
12+
13+
/**
14+
* Create a proxy between app screen and a chat
15+
* @param username Username of the current user
16+
* @param chat The new/updated chat
17+
*/
18+
public AppScreenChatProxy(String username, Chat chat){
19+
this.username = username;
20+
this.chat = chat;
21+
}
22+
23+
/**
24+
* Main source for managing chat order and updating it in user database (for a single user)
25+
*/
26+
public void proxyChat() {
27+
// get the new chat order
28+
AppScreenRequestModel requestModel = new AppScreenRequestModel(this.username, this.chat);
29+
ArrayList<Chat> newOrder = requestModel.orderChats();
30+
31+
// update the user's chat list in user database
32+
AppScreenController controller = new AppScreenController(this.username);
33+
controller.createGateway(newOrder);
34+
35+
// update the AppScreen UI
36+
AppScreenResponseModel.refreshScreen();
37+
}
38+
}

src/main/java/interface_adapters/appscreen/AppScreenController.java

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,17 @@
11
package interface_adapters.appscreen;
22

3-
import data_access.UserDatabase;
43
import entities.chat.Chat;
5-
import use_cases.appscreen.ChatInfo;
6-
import use_cases.appscreen.ChatOrder;
7-
8-
import java.io.File;
94
import java.util.ArrayList;
105

116
public class AppScreenController{
12-
137
private final String username;
14-
private final String chatID;
15-
168

179
/**
1810
* Create an app screen controller
1911
* @param username Username of the user
20-
* @param chatID ID the chat with an update
2112
*/
22-
public AppScreenController(String username, String chatID){
13+
public AppScreenController(String username){
2314
this.username = username;
24-
this.chatID = chatID;
25-
26-
}
27-
28-
/**
29-
* Return the chat with the given ID
30-
* @return Chat with given ID
31-
*/
32-
public Chat getChat(){
33-
ChatInfo chatInfo = new ChatInfo(this.username, this.chatID);
34-
return chatInfo.getChat();
3515

3616
}
3717

src/main/java/interface_adapters/appscreen/AppScreenLoader.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package interface_adapters.appscreen;
22

3-
import entities.chat.Chat;
43
import screens.appscreen.AppScreen;
54
import use_cases.appscreen.AppScreenStatus;
65

@@ -9,14 +8,15 @@
98
public class AppScreenLoader implements AppScreenPresenter {
109

1110
private final String username;
12-
private final ArrayList<Chat> chats;
11+
private final ArrayList<String> chats;
1312
public AppScreen appScreen;
1413

1514
/**
16-
* Create the app screen loader (and store its user and chat information)
15+
* Create the app screen loader
1716
* @param username The username of the current user
17+
* @param chats A list of chatIDs of all the chats the given user has
1818
*/
19-
public AppScreenLoader(String username, ArrayList<Chat> chats){
19+
public AppScreenLoader(String username, ArrayList<String> chats){
2020
this.username = username;
2121
this.chats = chats;
2222

src/main/java/interface_adapters/appscreen/UserAppScreenGateway.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,26 @@ public class UserAppScreenGateway implements Login {
1212

1313
private final UserDatabase userDatabase = new UserDatabase(new File("user_accounts"));
1414
private final String username;
15+
private final ArrayList<Chat> userChats;
1516

1617
/**
17-
* Create gateway between user and appscreen
18+
* Create gateway between user and app screen
1819
*/
1920
public UserAppScreenGateway(String username){
2021
this.username = username;
22+
this.userChats = userDatabase.getUserChats(this.username);
2123
}
2224

2325
/**
2426
* Log the user into the system
2527
*/
2628
public void login(){
27-
ArrayList<Chat> userChats = userDatabase.getUserChats(this.username);
28-
AppScreenLoader appScreenLoader = new AppScreenLoader(this.username, userChats);
29+
ArrayList<String> chatIDs = new ArrayList<>();
30+
31+
for (Chat chat: userChats){
32+
chatIDs.add(chat.getChatID());
33+
}
34+
AppScreenLoader appScreenLoader = new AppScreenLoader(this.username, chatIDs);
2935
appScreenLoader.openScreen();
3036
}
3137

src/main/java/screens/appscreen/AppScreen.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package screens.appscreen;
22

3-
import entities.chat.Chat;
43
import entities.chat.CommonPrivatechat;
54
import entities.chat.PrivateChatfactory;
65
import interface_adapters.appscreen.AppScreenPresenter;
6+
import interface_adapters.appscreen.Refresh;
77
import screens.Profile_screen.UserSearchUI;
88
import screens.chat_screen.ChatController;
99
import screens.chat_screen.ChatView;
@@ -17,25 +17,26 @@
1717
import java.time.LocalDateTime;
1818
import java.util.ArrayList;
1919

20-
public class AppScreen implements AppScreenPresenter {
20+
public class AppScreen implements AppScreenPresenter, Refresh {
2121

2222
private final JFrame jFrame;
2323
private JScrollPane jScrollPane;
2424
private final String currentUsername;
25-
private ArrayList<Chat> chats;
25+
private ArrayList<String> chats;
2626

2727

2828
/**
2929
Create an AppScreen object
3030
@param chats This is a list of chats given by the user (the list will always come as sorted with the
3131
most recent chats at the end of the list)
3232
*/
33-
public AppScreen(String currentUsername, ArrayList<Chat> chats) {
33+
public AppScreen(String currentUsername, ArrayList<String> chats) {
3434
this.currentUsername = currentUsername;
3535
this.chats = chats;
3636
jFrame = new JFrame();
3737
jFrame.setSize(300, 500);
3838
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
39+
jFrame.setLocation(300, 100);
3940

4041

4142
// top panel containing the buttons for creating a new chat
@@ -118,7 +119,7 @@ public void displayAppScreen(){
118119
// getting the names of each chat to display and creating buttons for each chat
119120
for (int i = this.chats.size() - 1; i > -1; i--) {
120121

121-
ChatInfo chatInfo = new ChatInfo(currentUsername, this.chats.get(i).getChatID());
122+
ChatInfo chatInfo = new ChatInfo(currentUsername, this.chats.get(i));
122123

123124
String chatName = chatInfo.getChatName();
124125
LocalDateTime lastUpdated = chatInfo.getLastMessageTime();

src/main/java/screens/chat_screen/ChatController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
public class ChatController {
88

99
ChatInputBoundry chatinputboundry;
10+
String username;
1011
PrivateChat newprivatechat;
11-
public ChatController(ChatInputBoundry chatinputboundry) {
12+
public ChatController(ChatInputBoundry chatinputboundry, String username) {
1213
this.chatinputboundry = chatinputboundry;
14+
this.username = username;
1315
}
1416

1517
// this method is used in UI to set the recipient username

src/main/java/screens/chat_screen/ChatView.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
public class ChatView extends JFrame implements ActionListener{
4343
//use Contrroller
4444

45-
private ChatController controller;
45+
private final ChatController controller;
4646

4747
//Use Jframes, butttons, labels ,textfileds, Jpannels,JMenuBar for UI.
4848
final JFrame frame ;
@@ -69,7 +69,7 @@ public class ChatView extends JFrame implements ActionListener{
6969

7070

7171
//this is constructor
72-
public ChatView( ChatController controller , boolean isNewchat){
72+
public ChatView(ChatController controller , boolean isNewchat){
7373
this.controller = controller;
7474
this.isNewchat = isNewchat;
7575

@@ -110,7 +110,6 @@ public ChatView( ChatController controller , boolean isNewchat){
110110
// set frame size and frame title
111111
frame.setSize(450, 500);
112112
frame.setTitle("Chat box");
113-
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
114113

115114

116115
// adding "addbutton" and "groupchatbutton" to the menu bar
@@ -165,6 +164,7 @@ public ChatView( ChatController controller , boolean isNewchat){
165164

166165

167166
frame.getContentPane().add(BorderLayout.CENTER, conversationHistoryPanel);
167+
frame.setLocation(587, 100);
168168

169169
// set the frame visibile
170170
frame.setVisible(true);

src/main/java/use_cases/appscreen/AppScreenChatProxy.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)