From ecfd1ea501983122da16aa9f4ae6ef1c50640bf9 Mon Sep 17 00:00:00 2001 From: Ethan Hapurne Date: Thu, 17 Jul 2025 11:37:09 -0400 Subject: [PATCH 1/4] Changed the login page from going to the logged in page to the main page and added 3 buttons to the main page --- main/java/app/AppBuilder.java | 17 ++++- main/java/app/Main.java | 1 + .../login/LoginPresenter.java | 26 ++++--- .../main_page/MainPageState.java | 4 ++ .../main_page/MainPageViewModel.java | 10 +++ main/java/view/MainPageView.java | 69 +++++++++++++++++++ 6 files changed, 117 insertions(+), 10 deletions(-) create mode 100644 main/java/interface_adapter/main_page/MainPageState.java create mode 100644 main/java/interface_adapter/main_page/MainPageViewModel.java create mode 100644 main/java/view/MainPageView.java diff --git a/main/java/app/AppBuilder.java b/main/java/app/AppBuilder.java index 7ddb69a..b4f178b 100644 --- a/main/java/app/AppBuilder.java +++ b/main/java/app/AppBuilder.java @@ -21,6 +21,7 @@ import interface_adapter.signup.SignupController; import interface_adapter.signup.SignupPresenter; import interface_adapter.signup.SignupViewModel; +import interface_adapter.main_page.MainPageViewModel; import use_case.change_password.ChangePasswordInputBoundary; import use_case.change_password.ChangePasswordInteractor; import use_case.change_password.ChangePasswordOutputBoundary; @@ -37,6 +38,7 @@ import view.LoginView; import view.SignupView; import view.ViewManager; +import view.MainPageView; /** * The AppBuilder class is responsible for putting together the pieces of @@ -67,6 +69,8 @@ public class AppBuilder { private LoggedInViewModel loggedInViewModel; private LoggedInView loggedInView; private LoginView loginView; + private MainPageView mainPageView; + private MainPageViewModel mainPageViewModel; public AppBuilder() { cardPanel.setLayout(cardLayout); @@ -105,6 +109,17 @@ public AppBuilder addLoggedInView() { return this; } + /** + * Adds the Main Page View to the application. + * @return this builder + */ + public AppBuilder addMainPageView() { + mainPageViewModel = new MainPageViewModel(); + mainPageView = new MainPageView(mainPageViewModel); + cardPanel.add(mainPageView, mainPageView.getViewName()); + return this; + } + /** * Adds the Signup Use Case to the application. * @return this builder @@ -126,7 +141,7 @@ public AppBuilder addSignupUseCase() { */ public AppBuilder addLoginUseCase() { final LoginOutputBoundary loginOutputBoundary = new LoginPresenter(viewManagerModel, - loggedInViewModel, loginViewModel); + loggedInViewModel, loginViewModel, mainPageViewModel); final LoginInputBoundary loginInteractor = new LoginInteractor( userDataAccessObject, loginOutputBoundary); diff --git a/main/java/app/Main.java b/main/java/app/Main.java index 0d41ddf..610a887 100644 --- a/main/java/app/Main.java +++ b/main/java/app/Main.java @@ -16,6 +16,7 @@ public static void main(String[] args) { .addLoginView() .addSignupView() .addLoggedInView() + .addMainPageView() .addSignupUseCase() .addLoginUseCase() .addLogoutUseCase() diff --git a/main/java/interface_adapter/login/LoginPresenter.java b/main/java/interface_adapter/login/LoginPresenter.java index 66560d5..a6403db 100644 --- a/main/java/interface_adapter/login/LoginPresenter.java +++ b/main/java/interface_adapter/login/LoginPresenter.java @@ -3,6 +3,7 @@ import interface_adapter.ViewManagerModel; import interface_adapter.change_password.LoggedInState; import interface_adapter.change_password.LoggedInViewModel; +import interface_adapter.main_page.MainPageViewModel; import use_case.login.LoginOutputBoundary; import use_case.login.LoginOutputData; @@ -14,25 +15,32 @@ public class LoginPresenter implements LoginOutputBoundary { private final LoginViewModel loginViewModel; private final LoggedInViewModel loggedInViewModel; private final ViewManagerModel viewManagerModel; + private final MainPageViewModel mainPageViewModel; public LoginPresenter(ViewManagerModel viewManagerModel, LoggedInViewModel loggedInViewModel, - LoginViewModel loginViewModel) { + LoginViewModel loginViewModel, + MainPageViewModel mainPageViewModel) { this.viewManagerModel = viewManagerModel; this.loggedInViewModel = loggedInViewModel; this.loginViewModel = loginViewModel; + this.mainPageViewModel = mainPageViewModel; } @Override public void prepareSuccessView(LoginOutputData response) { - // On success, switch to the logged in view. - - final LoggedInState loggedInState = loggedInViewModel.getState(); - loggedInState.setUsername(response.getUsername()); - this.loggedInViewModel.setState(loggedInState); - this.loggedInViewModel.firePropertyChanged(); - - this.viewManagerModel.setState(loggedInViewModel.getViewName()); +// // On success, switch to the logged in view. +// +// final LoggedInState loggedInState = loggedInViewModel.getState(); +// loggedInState.setUsername(response.getUsername()); +// this.loggedInViewModel.setState(loggedInState); +// this.loggedInViewModel.firePropertyChanged(); +// +// this.viewManagerModel.setState(loggedInViewModel.getViewName()); + + // On success, switch to the main page view. + this.mainPageViewModel.firePropertyChanged(); + this.viewManagerModel.setState(mainPageViewModel.getViewName()); this.viewManagerModel.firePropertyChanged(); } diff --git a/main/java/interface_adapter/main_page/MainPageState.java b/main/java/interface_adapter/main_page/MainPageState.java new file mode 100644 index 0000000..f0dfc9c --- /dev/null +++ b/main/java/interface_adapter/main_page/MainPageState.java @@ -0,0 +1,4 @@ +package interface_adapter.main_page; + +public class MainPageState { +} diff --git a/main/java/interface_adapter/main_page/MainPageViewModel.java b/main/java/interface_adapter/main_page/MainPageViewModel.java new file mode 100644 index 0000000..7b51d64 --- /dev/null +++ b/main/java/interface_adapter/main_page/MainPageViewModel.java @@ -0,0 +1,10 @@ +package interface_adapter.main_page; + +import interface_adapter.ViewModel; + +public class MainPageViewModel extends ViewModel { + public MainPageViewModel() { + super("main page"); + setState(new MainPageState()); + } +} diff --git a/main/java/view/MainPageView.java b/main/java/view/MainPageView.java new file mode 100644 index 0000000..1e0ec8b --- /dev/null +++ b/main/java/view/MainPageView.java @@ -0,0 +1,69 @@ +package view; + +import interface_adapter.main_page.MainPageState; +import interface_adapter.main_page.MainPageViewModel; + +import javax.swing.JPanel; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +public class MainPageView extends JPanel implements ActionListener, PropertyChangeListener { + private final String viewName = "main page"; + + private final MainPageViewModel mainPageViewModel; + private final JButton postsButton; + private final JButton dmButton; + private final JButton accountButton; + + public MainPageView(MainPageViewModel mainPageViewModel) { + this.mainPageViewModel = mainPageViewModel; + this.mainPageViewModel.addPropertyChangeListener(this); + + final JLabel title = new JLabel("Main Page Screen"); + title.setAlignmentX(Component.CENTER_ALIGNMENT); + + final JPanel buttons = new JPanel(); + + postsButton = new JButton("Posts"); + buttons.add(postsButton); + postsButton.addActionListener(this); + + dmButton = new JButton("DM"); + buttons.add(dmButton); + dmButton.addActionListener(this); + + accountButton = new JButton("Account"); + buttons.add(accountButton); + accountButton.addActionListener(this); + + this.add(title); + this.add(buttons); + } + + public String getViewName() { + return viewName; + } + + /** + * @param evt the event to be processed + */ + @Override + public void actionPerformed(ActionEvent evt) { + JOptionPane.showMessageDialog(this, evt.getActionCommand() + " clicked!"); + } + + /** + * @param evt A PropertyChangeEvent object describing the event source + * and the property that has changed. + */ + @Override + public void propertyChange(PropertyChangeEvent evt) { + + } +} \ No newline at end of file From b137ee91aa01d22faaf56bc1b1969d8d386f93c7 Mon Sep 17 00:00:00 2001 From: rexho Date: Thu, 17 Jul 2025 13:55:36 -0400 Subject: [PATCH 2/4] part of post page --- .../post_page/PostPageState.java | 4 + .../post_page/PostPageViewModel.java | 10 ++ main/java/view/PostPageView.java | 95 +++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 main/java/interface_adapter/post_page/PostPageState.java create mode 100644 main/java/interface_adapter/post_page/PostPageViewModel.java create mode 100644 main/java/view/PostPageView.java diff --git a/main/java/interface_adapter/post_page/PostPageState.java b/main/java/interface_adapter/post_page/PostPageState.java new file mode 100644 index 0000000..e924f7d --- /dev/null +++ b/main/java/interface_adapter/post_page/PostPageState.java @@ -0,0 +1,4 @@ +package interface_adapter.post_page; + +public class PostPageState { +} diff --git a/main/java/interface_adapter/post_page/PostPageViewModel.java b/main/java/interface_adapter/post_page/PostPageViewModel.java new file mode 100644 index 0000000..455a06c --- /dev/null +++ b/main/java/interface_adapter/post_page/PostPageViewModel.java @@ -0,0 +1,10 @@ +package interface_adapter.post_page; + +import interface_adapter.ViewModel; + +public class PostPageViewModel extends ViewModel { + public PostPageViewModel() { + super("post page"); + setState(new PostPageState()); + } +} diff --git a/main/java/view/PostPageView.java b/main/java/view/PostPageView.java new file mode 100644 index 0000000..f1e5bef --- /dev/null +++ b/main/java/view/PostPageView.java @@ -0,0 +1,95 @@ +package view; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import interface_adapter.post_page.PostPageViewModel; +import interface_adapter.post_page.PostPageState; + +public class PostPageView extends JPanel implements ActionListener { + + private final JButton postButton; + private final JTextField searchField; + private final JButton searchButton; + private final JButton backButton; + + private final JList postList; + private final JTextArea contentArea; + private final JTextArea commentsArea; + + public PostPageView() { + this.setLayout(new BorderLayout()); + + JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + + postButton = new JButton("Post"); + searchField = new JTextField(20); + searchButton = new JButton("Search"); + backButton = new JButton("Back"); + + topPanel.add(postButton); + topPanel.add(searchField); + topPanel.add(searchButton); + topPanel.add(backButton); + + postButton.addActionListener(this); + searchButton.addActionListener(this); + backButton.addActionListener(this); + + this.add(topPanel, BorderLayout.NORTH); + + DefaultListModel listModel = new DefaultListModel<>(); + listModel.addElement("Post A"); + listModel.addElement("Post B"); + listModel.addElement("Post C"); + + postList = new JList<>(listModel); + JScrollPane listScrollPane = new JScrollPane(postList); + + contentArea = new JTextArea("Content shown here"); + commentsArea = new JTextArea("Comments go here"); + contentArea.setLineWrap(true); + contentArea.setWrapStyleWord(true); + commentsArea.setLineWrap(true); + commentsArea.setWrapStyleWord(true); + + contentArea.setEditable(false); + commentsArea.setEditable(false); + + JPanel rightPanel = new JPanel(new BorderLayout()); + rightPanel.add(new JLabel("Content:"), BorderLayout.NORTH); + rightPanel.add(new JScrollPane(contentArea), BorderLayout.CENTER); + rightPanel.add(new JScrollPane(commentsArea), BorderLayout.SOUTH); + + JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listScrollPane, rightPanel); + splitPane.setDividerLocation(200); + + this.add(splitPane, BorderLayout.CENTER); + + postList.addListSelectionListener(e -> { + if (!e.getValueIsAdjusting()) { + String selected = postList.getSelectedValue(); + contentArea.setText("Content for " + selected); + commentsArea.setText("Comments for " + selected); + } + }); + } + + @Override + public void actionPerformed(ActionEvent e) { + String command = e.getActionCommand(); + switch (command) { + case "Post": + JOptionPane.showMessageDialog(this, "Post clicked"); + break; + case "Search": + String query = searchField.getText(); + JOptionPane.showMessageDialog(this, "Searching for: " + query); + break; + case "Back": + JOptionPane.showMessageDialog(this, "Back to main page"); + break; + } + } +} From cefaf9bdc4c069484e1156cd1412a2e42bf4e997 Mon Sep 17 00:00:00 2001 From: rexho Date: Thu, 17 Jul 2025 15:14:21 -0400 Subject: [PATCH 3/4] part of post page --- main/java/app/AppBuilder.java | 17 +++ main/java/app/Main.java | 1 + .../main_page/MainPageController.java | 23 ++++ main/java/view/MainPageView.java | 69 ---------- main/java/view/PostPageView.java | 120 +++++++----------- 5 files changed, 88 insertions(+), 142 deletions(-) create mode 100644 main/java/interface_adapter/main_page/MainPageController.java delete mode 100644 main/java/view/MainPageView.java diff --git a/main/java/app/AppBuilder.java b/main/java/app/AppBuilder.java index b4f178b..640e029 100644 --- a/main/java/app/AppBuilder.java +++ b/main/java/app/AppBuilder.java @@ -21,6 +21,8 @@ import interface_adapter.signup.SignupController; import interface_adapter.signup.SignupPresenter; import interface_adapter.signup.SignupViewModel; +import interface_adapter.post_page.PostPageState; +import interface_adapter.post_page.PostPageViewModel; import interface_adapter.main_page.MainPageViewModel; import use_case.change_password.ChangePasswordInputBoundary; import use_case.change_password.ChangePasswordInteractor; @@ -39,6 +41,7 @@ import view.SignupView; import view.ViewManager; import view.MainPageView; +import view.PostPageView; /** * The AppBuilder class is responsible for putting together the pieces of @@ -71,6 +74,9 @@ public class AppBuilder { private LoginView loginView; private MainPageView mainPageView; private MainPageViewModel mainPageViewModel; + private PostPageView postPageView; + private PostPageViewModel postPageViewModel; + private PostPageState postPageState; public AppBuilder() { cardPanel.setLayout(cardLayout); @@ -120,6 +126,17 @@ public AppBuilder addMainPageView() { return this; } + /** + * Adds the Post Page View to the application. + * @return this builder + */ + public AppBuilder addPostPageView() { + postPageViewModel = new PostPageViewModel(); + postPageView = new PostPageView(postPageViewModel); + cardPanel.add(postPageView, postPageView.getViewName()); + return this; + } + /** * Adds the Signup Use Case to the application. * @return this builder diff --git a/main/java/app/Main.java b/main/java/app/Main.java index 610a887..6621db8 100644 --- a/main/java/app/Main.java +++ b/main/java/app/Main.java @@ -17,6 +17,7 @@ public static void main(String[] args) { .addSignupView() .addLoggedInView() .addMainPageView() + .addPostPageView() .addSignupUseCase() .addLoginUseCase() .addLogoutUseCase() diff --git a/main/java/interface_adapter/main_page/MainPageController.java b/main/java/interface_adapter/main_page/MainPageController.java new file mode 100644 index 0000000..2841d09 --- /dev/null +++ b/main/java/interface_adapter/main_page/MainPageController.java @@ -0,0 +1,23 @@ +package interface_adapter.main_page; + +import interface_adapter.ViewManagerModel; +import interface_adapter.post_page.PostPageViewModel; + +/** + * The controller for the Login Use Case. + */ +public class MainPageController { + private final PostPageViewModel postPageViewModel; + private final ViewManagerModel viewManagerModel; + + public MainPageController(PostPageViewModel postPageViewModel, ViewManagerModel viewManagerModel) { + this.postPageViewModel = postPageViewModel; + this.viewManagerModel = viewManagerModel; + } + + public void navigateToPostsPage() { + this.postPageViewModel.firePropertyChanged(); + this.viewManagerModel.setState(postPageViewModel.getViewName()); + this.viewManagerModel.firePropertyChanged(); + } +} diff --git a/main/java/view/MainPageView.java b/main/java/view/MainPageView.java deleted file mode 100644 index 1e0ec8b..0000000 --- a/main/java/view/MainPageView.java +++ /dev/null @@ -1,69 +0,0 @@ -package view; - -import interface_adapter.main_page.MainPageState; -import interface_adapter.main_page.MainPageViewModel; - -import javax.swing.JPanel; -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JOptionPane; -import java.awt.Component; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; - -public class MainPageView extends JPanel implements ActionListener, PropertyChangeListener { - private final String viewName = "main page"; - - private final MainPageViewModel mainPageViewModel; - private final JButton postsButton; - private final JButton dmButton; - private final JButton accountButton; - - public MainPageView(MainPageViewModel mainPageViewModel) { - this.mainPageViewModel = mainPageViewModel; - this.mainPageViewModel.addPropertyChangeListener(this); - - final JLabel title = new JLabel("Main Page Screen"); - title.setAlignmentX(Component.CENTER_ALIGNMENT); - - final JPanel buttons = new JPanel(); - - postsButton = new JButton("Posts"); - buttons.add(postsButton); - postsButton.addActionListener(this); - - dmButton = new JButton("DM"); - buttons.add(dmButton); - dmButton.addActionListener(this); - - accountButton = new JButton("Account"); - buttons.add(accountButton); - accountButton.addActionListener(this); - - this.add(title); - this.add(buttons); - } - - public String getViewName() { - return viewName; - } - - /** - * @param evt the event to be processed - */ - @Override - public void actionPerformed(ActionEvent evt) { - JOptionPane.showMessageDialog(this, evt.getActionCommand() + " clicked!"); - } - - /** - * @param evt A PropertyChangeEvent object describing the event source - * and the property that has changed. - */ - @Override - public void propertyChange(PropertyChangeEvent evt) { - - } -} \ No newline at end of file diff --git a/main/java/view/PostPageView.java b/main/java/view/PostPageView.java index f1e5bef..9b6f35a 100644 --- a/main/java/view/PostPageView.java +++ b/main/java/view/PostPageView.java @@ -1,95 +1,69 @@ package view; -import javax.swing.*; -import java.awt.*; +import interface_adapter.post_page.PostPageState; +import interface_adapter.post_page.PostPageViewModel; + +import javax.swing.JPanel; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import interface_adapter.post_page.PostPageViewModel; -import interface_adapter.post_page.PostPageState; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; -public class PostPageView extends JPanel implements ActionListener { +public class PostPageView extends JPanel implements ActionListener, PropertyChangeListener { + private final String viewName = "post page"; - private final JButton postButton; - private final JTextField searchField; + private final PostPageViewModel postPageViewModel; + private final JButton postsButton; private final JButton searchButton; private final JButton backButton; - private final JList postList; - private final JTextArea contentArea; - private final JTextArea commentsArea; + public PostPageView(PostPageViewModel postPageViewModel) { + this.postPageViewModel = postPageViewModel; + this.postPageViewModel.addPropertyChangeListener(this); - public PostPageView() { - this.setLayout(new BorderLayout()); + final JLabel title = new JLabel("Post Page Screen"); + title.setAlignmentX(Component.CENTER_ALIGNMENT); - JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + final JPanel buttons = new JPanel(); - postButton = new JButton("Post"); - searchField = new JTextField(20); - searchButton = new JButton("Search"); - backButton = new JButton("Back"); - - topPanel.add(postButton); - topPanel.add(searchField); - topPanel.add(searchButton); - topPanel.add(backButton); + postsButton = new JButton("Posts"); + buttons.add(postsButton); + postsButton.addActionListener(this); - postButton.addActionListener(this); + searchButton = new JButton("search"); + buttons.add(searchButton); searchButton.addActionListener(this); - backButton.addActionListener(this); - - this.add(topPanel, BorderLayout.NORTH); - - DefaultListModel listModel = new DefaultListModel<>(); - listModel.addElement("Post A"); - listModel.addElement("Post B"); - listModel.addElement("Post C"); - postList = new JList<>(listModel); - JScrollPane listScrollPane = new JScrollPane(postList); - - contentArea = new JTextArea("Content shown here"); - commentsArea = new JTextArea("Comments go here"); - contentArea.setLineWrap(true); - contentArea.setWrapStyleWord(true); - commentsArea.setLineWrap(true); - commentsArea.setWrapStyleWord(true); - - contentArea.setEditable(false); - commentsArea.setEditable(false); - - JPanel rightPanel = new JPanel(new BorderLayout()); - rightPanel.add(new JLabel("Content:"), BorderLayout.NORTH); - rightPanel.add(new JScrollPane(contentArea), BorderLayout.CENTER); - rightPanel.add(new JScrollPane(commentsArea), BorderLayout.SOUTH); + backButton = new JButton("Back"); + buttons.add(backButton); + backButton.addActionListener(this); - JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, listScrollPane, rightPanel); - splitPane.setDividerLocation(200); + this.add(title); + this.add(buttons); + } - this.add(splitPane, BorderLayout.CENTER); + public String getViewName() { + return viewName; + } - postList.addListSelectionListener(e -> { - if (!e.getValueIsAdjusting()) { - String selected = postList.getSelectedValue(); - contentArea.setText("Content for " + selected); - commentsArea.setText("Comments for " + selected); - } - }); + /** + * @param evt the event to be processed + */ + @Override + public void actionPerformed(ActionEvent evt) { + JOptionPane.showMessageDialog(this, evt.getActionCommand() + " clicked!"); } + /** + * @param evt A PropertyChangeEvent object describing the event source + * and the property that has changed. + */ @Override - public void actionPerformed(ActionEvent e) { - String command = e.getActionCommand(); - switch (command) { - case "Post": - JOptionPane.showMessageDialog(this, "Post clicked"); - break; - case "Search": - String query = searchField.getText(); - JOptionPane.showMessageDialog(this, "Searching for: " + query); - break; - case "Back": - JOptionPane.showMessageDialog(this, "Back to main page"); - break; - } + public void propertyChange(PropertyChangeEvent evt) { + } -} +} \ No newline at end of file From 2e18eae6f916478e9f3b00391e5e2c8fdc559f03 Mon Sep 17 00:00:00 2001 From: rexho Date: Tue, 22 Jul 2025 14:56:08 -0400 Subject: [PATCH 4/4] add IntelliJ IDEA project configuration files --- .idea/compiler.xml | 8 + .idea/misc.xml | 7 + .../shelved.patch" | 17 +++ .../shelved.patch" | 0 ...kout_at_2025-07-22__2_55p_m___Changes_.xml | 4 + .idea/workspace.xml | 144 ++++++++++++++++++ 6 files changed, 180 insertions(+) create mode 100644 .idea/compiler.xml create mode 100644 .idea/misc.xml create mode 100644 ".idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22,_2_55\342\200\257p_m__[Changes]/shelved.patch" create mode 100644 ".idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22,_2_55\342\200\257p_m__[Changes]1/shelved.patch" create mode 100644 .idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22__2_55p_m___Changes_.xml create mode 100644 .idea/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..6c4abfb --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b2eea27 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/.idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22,_2_55\342\200\257p_m__[Changes]/shelved.patch" "b/.idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22,_2_55\342\200\257p_m__[Changes]/shelved.patch" new file mode 100644 index 0000000..7c3f1ff --- /dev/null +++ "b/.idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22,_2_55\342\200\257p_m__[Changes]/shelved.patch" @@ -0,0 +1,17 @@ +Index: homework-5.iml +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP +<+>\n\n \n \n \n \n \n +=================================================================== +diff --git a/homework-5.iml b/homework-5.iml +--- a/homework-5.iml (revision 2464bb34945ff7277545ec16f38bf975a00749c3) ++++ b/homework-5.iml (date 1753150947110) +@@ -5,4 +5,7 @@ + + + ++ ++ + +\ No newline at end of file diff --git "a/.idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22,_2_55\342\200\257p_m__[Changes]1/shelved.patch" "b/.idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22,_2_55\342\200\257p_m__[Changes]1/shelved.patch" new file mode 100644 index 0000000..e69de29 diff --git a/.idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22__2_55p_m___Changes_.xml b/.idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22__2_55p_m___Changes_.xml new file mode 100644 index 0000000..81004f0 --- /dev/null +++ b/.idea/shelf/Uncommitted_changes_before_Checkout_at_2025-07-22__2_55p_m___Changes_.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..8af1b76 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + { + "lastFilter": { + "state": "OPEN", + "assignee": "rexho0" + } +} + { + "selectedUrlAndAccountId": { + "url": "https://github.com/Ethan-Hapurne/CSC207-Miao-Miao.git", + "accountId": "98f1e1ae-56d5-4bf6-9bb8-23381d17611e" + } +} + { + "associatedIndex": 3 +} + + + + + + + + + + + + + + + + + + + + + + + + 1753150307898 + + + + + + + + + + + + + + + + + \ No newline at end of file