Skip to content

Commit b8f2220

Browse files
committed
Added some changes to invert dependency
1 parent 92cc5f5 commit b8f2220

File tree

13 files changed

+120
-81
lines changed

13 files changed

+120
-81
lines changed
Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
package interface_adapters.app_screen_interface_adapters;
1+
package interface_adapters.appscreen;
22

33
import data_access.UserDatabase;
44
import entities.chat.Chat;
5-
import use_cases.app_screen_use_case.ChatOrder;
5+
import use_cases.appscreen.ChatInfo;
6+
import use_cases.appscreen.ChatOrder;
67

78
import java.io.File;
89
import java.util.ArrayList;
@@ -11,7 +12,6 @@ public class AppScreenController{
1112

1213
private final String username;
1314
private final String chatID;
14-
private final UserDatabase userDatabase;
1515

1616

1717
/**
@@ -22,7 +22,6 @@ public class AppScreenController{
2222
public AppScreenController(String username, String chatID){
2323
this.username = username;
2424
this.chatID = chatID;
25-
this.userDatabase = new UserDatabase(new File("user_accounts"));
2625

2726
}
2827

@@ -31,13 +30,8 @@ public AppScreenController(String username, String chatID){
3130
* @return Chat with given ID
3231
*/
3332
public Chat getChat(){
34-
ArrayList<Chat> userChats = this.userDatabase.getUser(this.username).getUserChats();
35-
for (Chat chat: userChats){
36-
if (chat.getChatID().equals(this.chatID)){
37-
return chat;
38-
}
39-
}
40-
throw new RuntimeException("User is not part of this chat");
33+
ChatInfo chatInfo = new ChatInfo(this.username, this.chatID);
34+
return chatInfo.getChat();
4135

4236
}
4337

@@ -46,7 +40,7 @@ public Chat getChat(){
4640
*/
4741
public void updateScreen(){
4842
ChatOrder chatOrder = new ChatOrder(this.username);
49-
ArrayList<Chat> newOrder = chatOrder.changeOrder(this.chatID);
43+
ArrayList<Chat> newOrder = chatOrder.changeOrder(getChat());
5044
createGateway(newOrder);
5145

5246
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package interface_adapters.app_screen_interface_adapters;
1+
package interface_adapters.appscreen;
22

33
import entities.chat.Chat;
4-
import screens.app_screen.AppScreen;
4+
import screens.appscreen.AppScreen;
55

66
import java.util.ArrayList;
77

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package interface_adapters.app_screen_interface_adapters;
1+
package interface_adapters.appscreen;
22

33
public interface AppScreenPresenter {
44
void openScreen();
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package interface_adapters.appscreen;
2+
3+
public interface Refresh {
4+
void refreshScreen(String chatID);
5+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package interface_adapters.app_screen_interface_adapters;
1+
package interface_adapters.appscreen;
22

33
import data_access.UserDatabase;
44
import entities.chat.Chat;

src/main/java/screens/app_screen/AppScreen.java renamed to src/main/java/screens/appscreen/AppScreen.java

Lines changed: 9 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package screens.app_screen;
1+
package screens.appscreen;
22

33
import entities.chat.Chat;
44
import entities.chat.CommonPrivatechat;
55
import entities.chat.PrivateChatfactory;
6-
import interface_adapters.app_screen_interface_adapters.AppScreenController;
7-
import interface_adapters.app_screen_interface_adapters.AppScreenPresenter;
6+
import interface_adapters.appscreen.AppScreenPresenter;
7+
import interface_adapters.appscreen.Refresh;
88
import screens.chat_screen.ChatController;
99
import screens.chat_screen.ChatView;
10-
import use_cases.app_screen_use_case.*;
10+
import use_cases.appscreen.*;
1111
import use_cases.chat_initiation_use_case.ChatInputBoundry;
1212
import use_cases.chat_initiation_use_case.ChatInteractor;
1313

@@ -16,7 +16,7 @@
1616
import java.time.LocalDateTime;
1717
import java.util.ArrayList;
1818

19-
public class AppScreen implements AppScreenPresenter, ChatName, LastUpdate {
19+
public class AppScreen implements AppScreenPresenter, Refresh {
2020

2121
private final JFrame jFrame;
2222
private JScrollPane jScrollPane;
@@ -94,8 +94,10 @@ public void displayAppScreen(){
9494
// getting the names of each chat to display and creating buttons for each chat
9595
for (int i = this.chats.size() - 1; i > -1; i--) {
9696

97-
String chatName = getChatName(this.chats.get(i));
98-
LocalDateTime lastUpdated = getLastUpdatedTime(this.chats.get(i));
97+
ChatInfo chatInfo = new ChatInfo(currentUsername, this.chats.get(i).getChatID());
98+
99+
String chatName = chatInfo.getChatName();
100+
LocalDateTime lastUpdated = chatInfo.getLastMessageTime();
99101

100102
jPanel.add(ChatButton.createButton(chatName, currentUsername, lastUpdated));
101103
}
@@ -114,16 +116,6 @@ public void displayAppScreen(){
114116

115117
}
116118

117-
/**
118-
* Return the date and time of the last message in a chat
119-
* @param chat The given chat
120-
* @return date and time of last update
121-
*/
122-
@Override
123-
public LocalDateTime getLastUpdatedTime(Chat chat) {
124-
return chat.getLastUpdated();
125-
}
126-
127119
/**
128120
Make the chat list scrollable
129121
@param jPanel The panel containing the chats
@@ -137,26 +129,12 @@ private void scrollableChats(JPanel jPanel) {
137129
}
138130

139131

140-
/**
141-
* Get the name of the chat
142-
* @param chat The chat in context
143-
* @return name
144-
*/
145-
@Override
146-
public String getChatName(Chat chat) {
147-
return chat.getName();
148-
}
149-
150-
151132
/**
152133
* Update the order of chats that appear on screen if there was a change to conversation history
153134
* This should be called if a new chat was added or if an existing chat has a new message
154135
* @param chatID The ID of the chat with an update
155136
*/
156137
public void refreshScreen(String chatID) {
157-
AppScreenController appScreenController = new AppScreenController(currentUsername, chatID);
158-
appScreenController.updateScreen();
159-
160138
ChatOrder chatOrder = new ChatOrder(currentUsername);
161139
this.chats = chatOrder.getUserChats();
162140

src/main/java/use_cases/app_screen_use_case/ChatName.java

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

src/main/java/use_cases/app_screen_use_case/LastUpdate.java

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package use_cases.appscreen;
2+
3+
import interface_adapters.appscreen.AppScreenController;
4+
import interface_adapters.appscreen.Refresh;
5+
6+
public class AppScreenRequestModel implements Refresh {
7+
private final AppScreenController appScreenController;
8+
9+
public AppScreenRequestModel(String username, String chatID){
10+
this.appScreenController = new AppScreenController(username, chatID);
11+
}
12+
13+
@Override
14+
public void refreshScreen(String chatID) {
15+
this.appScreenController.updateScreen();
16+
}
17+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package use_cases.appscreen;
2+
3+
import screens.appscreen.AppScreen;
4+
5+
public class AppScreenResponseModel {
6+
7+
AppScreen appScreen;
8+
String chatID;
9+
public AppScreenResponseModel(AppScreen appScreen, String chatID){
10+
this.appScreen = appScreen;
11+
this.chatID = chatID;
12+
appScreen.refreshScreen(chatID);
13+
}
14+
}

0 commit comments

Comments
 (0)