diff --git a/.idea/modules.xml b/.idea/modules.xml index 2e427f8517ddb10ed85217b5455d71f2f793816c..1fe4435f739a457406c6c8482d6bbcec0854e0aa 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,11 +2,7 @@ <project version="4"> <component name="ProjectModuleManager"> <modules> -<<<<<<< HEAD <module fileurl="file://$PROJECT_DIR$/infinitymonkeys.iml" filepath="$PROJECT_DIR$/infinitymonkeys.iml" /> -======= - <module fileurl="file://$PROJECT_DIR$/comp90015-dsass2-infinitymonkeys-remaster.iml" filepath="$PROJECT_DIR$/comp90015-dsass2-infinitymonkeys-remaster.iml" /> ->>>>>>> 37a6af2e6d36ab514d01a93dbd5be6538a2572c7 </modules> </component> </project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 3cfaeba47baf68d9add8e3780696b5c6d4da1803..d977b687b3c340eccc8cf30a665528eea8e5f65f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,53 +2,9 @@ <project version="4"> <component name="ChangeListManager"> <list default="true" id="688d774d-cfc7-4b0d-b00c-5ca931aba600" name="Default Changelist" comment=""> - <change afterPath="$PROJECT_DIR$/.idea/$PRODUCT_WORKSPACE_FILE$" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/.idea/.gitignore" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/comp90015-dsass2-infinitymonkeys-remaster.iml" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/ChatScreen$1.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/ChatScreen.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/ColorPallete.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/DrawingArea$1.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/DrawingArea$Mode.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/DrawingArea.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/MenuBar.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/PaintGUI$1.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/PaintGUI.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/StartScreen$1.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/StartScreen.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/ToolBar.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/GUI/Tools.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/LICENSE" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/META-INF/comp90015-dsass2-infinitymonkeys-remaster.kotlin_module" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/client/ChatUpdate.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/client/Client.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/client/ClientUpdate.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/client/DrawingUpdate.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/AbstractLayout.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/DimensionInfo.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/GridConstraints.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/GridLayoutManager.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/HorizontalInfo.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/LayoutState.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/Spacer.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/SupportCode$TextWithMnemonic.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/SupportCode.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/Util.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/com/intellij/uiDesigner/core/VerticalInfo.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/remote/IChatController.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/remote/IChatUpdate.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/remote/IClientController.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/remote/IClientUpdate.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/remote/IDrawingController.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/remote/IDrawingUpdate.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/server/ChatController.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/server/ClientController.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/server/DrawingController.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/server/Server.class" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/out/production/comp90015-dsass2-infinitymonkeys-remaster/server/User.class" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/GUI/ChatScreen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/GUI/ChatScreen.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/src/server/User.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/server/User.java" afterDir="false" /> </list> <ignored path="$PROJECT_DIR$/out/" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> @@ -63,115 +19,11 @@ </component> <component name="FileEditorManager"> <leaf> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/server/ChatController.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-939"> - <caret line="9" column="45" selection-start-line="9" selection-start-column="45" selection-end-line="9" selection-end-column="45" /> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/server/ClientController.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-85"> - <caret line="27" selection-start-line="27" selection-end-line="27" /> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/client/ClientUpdate.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="238"> - <caret line="38" selection-start-line="38" selection-end-line="38" /> - </state> - </provider> - </entry> - </file> <file pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.java"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="208"> - <caret line="54" selection-start-line="54" selection-end-line="54" /> - <folding> - <element signature="e#1789#2635#0" expanded="true" /> - <element signature="e#2634#2635#0" expanded="true" /> - <element signature="e#1716#1717#0" expanded="true" /> - <element signature="e#1779#1780#0" expanded="true" /> - <element signature="e#1823#1824#0" expanded="true" /> - <element signature="e#1860#1861#0" expanded="true" /> - <element signature="e#1915#1916#0" expanded="true" /> - <element signature="e#1959#1960#0" expanded="true" /> - <element signature="e#1998#1999#0" expanded="true" /> - <element signature="e#2033#2034#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/client/ChatUpdate.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="357"> - <caret line="25" column="65" selection-start-line="25" selection-start-column="65" selection-end-line="25" selection-end-column="65" /> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/server/User.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="187"> - <caret line="13" selection-start-line="13" selection-end-line="13" /> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/remote/IClientController.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="187"> - <caret line="12" selection-start-line="12" selection-end-line="12" /> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/remote/IClientUpdate.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="170"> - <caret line="12" selection-start-line="12" selection-end-line="12" /> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/src/client/Client.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="119"> - <caret line="133" column="104" selection-start-line="133" selection-start-column="104" selection-end-line="133" selection-end-column="104" /> - <folding> - <element signature="e#892#893#0" expanded="true" /> - <element signature="e#923#924#0" expanded="true" /> - <element signature="e#969#970#0" expanded="true" /> - <element signature="e#1002#1003#0" expanded="true" /> - <element signature="e#1059#1060#0" expanded="true" /> - <element signature="e#1102#1103#0" expanded="true" /> - <element signature="e#1157#1158#0" expanded="true" /> - <element signature="e#1194#1195#0" expanded="true" /> - <element signature="e#1252#1253#0" expanded="true" /> - <element signature="e#1291#1292#0" expanded="true" /> - <element signature="e#1427#1428#0" expanded="true" /> - <element signature="e#1467#1468#0" expanded="true" /> - <element signature="e#1506#1507#0" expanded="true" /> - <element signature="e#1542#1543#0" expanded="true" /> - <element signature="e#1604#1605#0" expanded="true" /> - <element signature="e#1654#1655#0" expanded="true" /> - <element signature="e#3373#3374#0" expanded="true" /> - <element signature="e#3411#3412#0" expanded="true" /> - </folding> + <state relative-caret-position="323"> + <caret line="81" selection-start-line="81" selection-end-line="81" /> </state> </provider> </entry> @@ -209,12 +61,12 @@ <option value="$PROJECT_DIR$/src/server/ChatController.java" /> <option value="$PROJECT_DIR$/src/remote/IChatController.java" /> <option value="$PROJECT_DIR$/src/remote/IChatUpdate.java" /> - <option value="$PROJECT_DIR$/src/server/User.java" /> <option value="$PROJECT_DIR$/src/server/ClientController.java" /> <option value="$PROJECT_DIR$/src/remote/IClientController.java" /> <option value="$PROJECT_DIR$/src/client/ClientUpdate.java" /> <option value="$PROJECT_DIR$/src/remote/IClientUpdate.java" /> <option value="$PROJECT_DIR$/src/GUI/ChatScreen.form" /> + <option value="$PROJECT_DIR$/src/server/User.java" /> <option value="$PROJECT_DIR$/src/GUI/ChatScreen.java" /> </list> </option> @@ -267,13 +119,6 @@ <item name="GUI" type="462c0819:PsiDirectoryNode" /> <item name="ChatScreen" type="e9f4de52:FormNode" /> </path> - <path> - <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" /> - <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" /> - <item name="src" type="462c0819:PsiDirectoryNode" /> - <item name="GUI" type="462c0819:PsiDirectoryNode" /> - <item name="StartScreen" type="e9f4de52:FormNode" /> - </path> <path> <item name="infinitymonkeys" type="b2602c69:ProjectViewProjectNode" /> <item name="infinitymonkeys" type="462c0819:PsiDirectoryNode" /> @@ -367,7 +212,7 @@ <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1571631720382</updated> - <workItem from="1571631723795" duration="16817000" /> + <workItem from="1571631723795" duration="17601000" /> </task> <task id="LOCAL-00001" summary="Changed the join method to send over a reference of the ClientUpdate Interface"> <created>1571646862883</created> @@ -380,7 +225,7 @@ <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="16817000" /> + <option name="totallyTimeSpent" value="17601000" /> </component> <component name="ToolWindowManager"> <frame x="-7" y="-7" width="1295" height="704" extended-state="6" /> @@ -394,7 +239,7 @@ <window_info id="JavaEE:App" side_tool="true" /> <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24939272" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> - <window_info anchor="bottom" id="Terminal" visible="true" weight="0.124125876" /> + <window_info anchor="bottom" id="Terminal" visible="true" weight="0.26923078" /> <window_info anchor="bottom" id="Docker" show_stripe_button="false" /> <window_info anchor="bottom" id="Event Log" side_tool="true" /> <window_info anchor="bottom" id="Messages" weight="0.32867134" /> @@ -484,17 +329,44 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/server/User.java"> + <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.form"> + <provider selected="true" editor-type-id="ui-designer" /> + </entry> + <entry file="file://$PROJECT_DIR$/src/needsDebugging/client/ChatUpdate.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="68"> + <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/client/ClientUpdate.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="663"> + <caret line="39" column="31" lean-forward="true" selection-start-line="39" selection-start-column="31" selection-end-line="39" selection-end-column="31" /> + <folding> + <element signature="imports" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/server/ChatController.java"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-939"> + <caret line="9" column="45" selection-start-line="9" selection-start-column="45" selection-end-line="9" selection-end-column="45" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/src/remote/IClientController.java"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="187"> - <caret line="13" selection-start-line="13" selection-end-line="13" /> + <caret line="12" selection-start-line="12" selection-end-line="12" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/client/ChatUpdate.java"> + <entry file="file://$PROJECT_DIR$/src/remote/IClientUpdate.java"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="357"> - <caret line="25" column="65" selection-start-line="25" selection-start-column="65" selection-end-line="25" selection-end-column="65" /> + <state relative-caret-position="170"> + <caret line="12" selection-start-line="12" selection-end-line="12" /> </state> </provider> </entry> @@ -525,67 +397,34 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/server/ChatController.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-939"> - <caret line="9" column="45" selection-start-line="9" selection-start-column="45" selection-end-line="9" selection-end-column="45" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/remote/IClientUpdate.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="170"> - <caret line="12" selection-start-line="12" selection-end-line="12" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/client/ClientUpdate.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="238"> - <caret line="38" selection-start-line="38" selection-end-line="38" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.form"> - <provider selected="true" editor-type-id="ui-designer" /> - </entry> - <entry file="file://$PROJECT_DIR$/src/remote/IClientController.java"> + <entry file="file://$PROJECT_DIR$/src/client/ChatUpdate.java"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="187"> - <caret line="12" selection-start-line="12" selection-end-line="12" /> + <state relative-caret-position="114"> + <caret line="25" column="65" selection-start-line="25" selection-start-column="65" selection-end-line="25" selection-end-column="65" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/src/needsDebugging/client/ChatUpdate.java"> + <entry file="file://$PROJECT_DIR$/src/server/User.java"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="68"> - <caret line="8" column="13" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" /> + <state relative-caret-position="186"> + <caret line="47" lean-forward="true" selection-start-line="47" selection-end-line="47" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/server/ClientController.java"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-85"> - <caret line="27" selection-start-line="27" selection-end-line="27" /> + <state relative-caret-position="-1602"> + <caret line="12" column="13" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" /> + <folding> + <element signature="imports" expanded="true" /> + </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/src/GUI/ChatScreen.java"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="208"> - <caret line="54" selection-start-line="54" selection-end-line="54" /> - <folding> - <element signature="e#1789#2635#0" expanded="true" /> - <element signature="e#2634#2635#0" expanded="true" /> - <element signature="e#1716#1717#0" expanded="true" /> - <element signature="e#1779#1780#0" expanded="true" /> - <element signature="e#1823#1824#0" expanded="true" /> - <element signature="e#1860#1861#0" expanded="true" /> - <element signature="e#1915#1916#0" expanded="true" /> - <element signature="e#1959#1960#0" expanded="true" /> - <element signature="e#1998#1999#0" expanded="true" /> - <element signature="e#2033#2034#0" expanded="true" /> - </folding> + <state relative-caret-position="323"> + <caret line="81" selection-start-line="81" selection-end-line="81" /> </state> </provider> </entry> diff --git a/src/GUI/ApplicationMain.java b/src/GUI/ApplicationMain.java new file mode 100644 index 0000000000000000000000000000000000000000..6c35fece617762f9bc54f63078cf3fc41c3c9dfc --- /dev/null +++ b/src/GUI/ApplicationMain.java @@ -0,0 +1,72 @@ +package GUI; + +import client.Client; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.rmi.RemoteException; + +public class ApplicationMain extends JPanel { + Client client; + ChatScreen chatScreen; + PaintGUI paintGUI; + JFrame frame; + + public ChatScreen getChatScreen() { return chatScreen; } + + public PaintGUI getPaintGUI() { return paintGUI; } + + public JFrame getFrame() { + return frame; + } + + public ApplicationMain(Client client) { + this.client = client; + this.chatScreen = new ChatScreen(client); + this.paintGUI = new PaintGUI(client); + } + + public void createAndShowGUI() { + frame = new JFrame("Application Main"); + JFrame.setDefaultLookAndFeelDecorated(true); + Container content = frame.getContentPane(); + content.setLayout(new BorderLayout()); + content.add(paintGUI.getGlobal(), BorderLayout.WEST); + content.add(chatScreen.panel2, BorderLayout.EAST); + SwingUtilities.getRootPane(chatScreen.getSendButton()).setDefaultButton(chatScreen.getSendButton()); + frame.addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent arg0) + { + int answer = JOptionPane.showConfirmDialog(null, + "Are you sure you want to quit the session?", + "Shut down session", JOptionPane.YES_NO_OPTION); + System.out.println(answer); + if (answer == 0) + { + System.out.println("Quitting session"); + try + { + client.getClientController().quit(client.getUserName()); + } + catch (RemoteException e) + { + e.printStackTrace(); + } + System.exit(0); + } + } + }); + + frame.setSize(1200, 700); + frame.setLocationRelativeTo( null ); + frame.setResizable(false); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.pack(); + frame.setVisible(true); + } + +} diff --git a/src/GUI/ChatScreen.form b/src/GUI/ChatScreen.form index 9d8893e963fd7589e8246cf21b7735b63c75c9e6..baeed115748181b31d550c0aacfc5dc6db17fe1e 100644 --- a/src/GUI/ChatScreen.form +++ b/src/GUI/ChatScreen.form @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="GUI.ChatScreen"> - <grid id="27dc6" binding="panel2" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> + <grid id="27dc6" binding="panel2" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <margin top="0" left="0" bottom="0" right="0"/> <constraints> <xy x="20" y="20" width="1200" height="1200"/> @@ -8,14 +8,14 @@ <properties> <maximumSize width="-1" height="-1"/> <minimumSize width="-1" height="-1"/> - <preferredSize width="1200" height="600"/> + <preferredSize width="700" height="600"/> </properties> <border type="none"/> <children> <grid id="b37e3" binding="othersPanel" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> <margin top="0" left="0" bottom="0" right="0"/> <constraints> - <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/> + <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="3" indent="0" use-parent-layout="false"/> </constraints> <properties/> <border type="none"/> @@ -195,15 +195,6 @@ </grid> </children> </grid> - <grid id="be22c" binding="drawingPanel" custom-create="true" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1"> - <margin top="0" left="0" bottom="0" right="0"/> - <constraints> - <grid row="0" column="0" row-span="2" col-span="1" vsize-policy="3" hsize-policy="1" anchor="0" fill="3" indent="0" use-parent-layout="false"/> - </constraints> - <properties/> - <border type="none" title="Drawing Area"/> - <children/> - </grid> </children> </grid> </form> diff --git a/src/GUI/ChatScreen.java b/src/GUI/ChatScreen.java index 8dda5bb827736fa34432e329ad2647adec928766..ead543eed4ae0c187f108bed0e33e5d2aa4f55ad 100644 --- a/src/GUI/ChatScreen.java +++ b/src/GUI/ChatScreen.java @@ -5,17 +5,16 @@ import remote.IChatController; import remote.IClientController; import javax.swing.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; +import java.awt.event.*; import java.rmi.RemoteException; public class ChatScreen { public JPanel panel2; + private JButton sendButton; - private JPanel drawingPanel; + + // private JPanel drawingPanel; private JPanel othersPanel; private JComboBox sendMessageToComboBox; private JTextArea chatDisplayBox; @@ -34,58 +33,29 @@ public class ChatScreen { private JButton exitThisRoomButton; private JButton quitButton; private JFrame frame; + public Client getClient() { + return client; + } - private Client client; + public Client client; public ChatScreen(Client client) { this.client = client; - yourNameDisplay.setText(client.getUserName()); -// sentMessageToComboBox.addItem(client.getUserName()); - quitButton.addActionListener(actionListener); + exitThisRoomButton.addActionListener(actionListener); sendButton.addActionListener(actionListener); - frame = new JFrame("Application"); - frame.setContentPane(panel2); - createUIComponents(); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.pack(); - frame.setResizable(false); - frame.setVisible(true); - - SwingUtilities.getRootPane(sendButton).setDefaultButton(sendButton); - - frame.addWindowListener(new WindowAdapter() - { - @Override - public void windowClosing(WindowEvent arg0) - { - int answer = JOptionPane.showConfirmDialog(null, - "Are you sure you want to quit the session?", - "Shut down session", JOptionPane.YES_NO_OPTION); - System.out.println(answer); - if (answer == 0) - { - System.out.println("Quitting session"); - try - { - client.getClientController().quit(client.getUserName()); - } - catch (RemoteException e) - { - e.printStackTrace(); - } - System.exit(0); - } - } - }); - + yourNameDisplay.setText(client.getUserName()); +// drawingPanel = new PaintGUI(client); +// SwingUtilities.getRootPane(sendButton).setDefaultButton(sendButton); } + - private void createUIComponents() { - drawingPanel = new PaintGUI(client).getGlobal(); + public JButton getSendButton() { + return sendButton; } + public JTextArea getChatDisplayBox() { return chatDisplayBox; } @@ -95,9 +65,9 @@ public class ChatScreen { return sendMessageToComboBox; } - public JPanel getDrawingPanel() { - return drawingPanel; - } +// public JPanel getDrawingPanel() { +// return drawingPanel; +// } ActionListener actionListener = new ActionListener() diff --git a/src/GUI/PaintGUI.java b/src/GUI/PaintGUI.java index 2995d3be8c34304669416ed3df79c001f413c4e8..40a63589b23c67847eade7ad28d6ae306516d3fd 100644 --- a/src/GUI/PaintGUI.java +++ b/src/GUI/PaintGUI.java @@ -11,7 +11,6 @@ import java.io.File; public class PaintGUI extends JPanel { Client client; - ChatScreen chatScreen; String[] shapes = {"Freehand", "Line", "Circle", "Rectangle", "Oval", "Eraser"}; String[] colors = {"Aqua", "Black", "Blue", "Fuchsia", "Gray", "Green", "Lime", "Maroon", "Navy", "Olive", "Purple", "Red", "Silver", "Teal", "White", "Yellow"}; @@ -33,7 +32,7 @@ public class PaintGUI extends JPanel { this.client = client; /// Main drawing area /// - drawingArea = new DrawingArea(this.client); + drawingArea = new DrawingArea(client); /// Set up main frame and container /// global.setLayout(new BorderLayout()); diff --git a/src/client/ChatUpdate.java b/src/client/ChatUpdate.java index ea4baf8749f7885125bb1027a2f2b6263cfdfff3..2edc3ccdd3c5a1c5262fdc2107d9f28b74b556ce 100644 --- a/src/client/ChatUpdate.java +++ b/src/client/ChatUpdate.java @@ -30,7 +30,7 @@ public class ChatUpdate extends UnicastRemoteObject implements IChatUpdate, Seri outputString = fromClient + ": " + message + "\n"; } - client.getChatScreen().getChatDisplayBox().append(outputString); + client.getApplicationMain().getChatScreen().getChatDisplayBox().append(outputString); //client.setReceivedMessage(message); //System.out.println(fromClient + ": " + message); @@ -39,13 +39,13 @@ public class ChatUpdate extends UnicastRemoteObject implements IChatUpdate, Seri @Override public boolean notifyUserLogin(String fromClient) throws RemoteException { - client.getChatScreen().getChatDisplayBox().append(fromClient + " has joined the room.\n"); + client.getApplicationMain().getChatScreen().getChatDisplayBox().append(fromClient + " has joined the room.\n"); return true; } @Override public boolean notifyUserLogout(String fromClient) throws RemoteException { - client.getChatScreen().getChatDisplayBox().append(fromClient + " has left the room.\n"); + client.getApplicationMain().getChatScreen().getChatDisplayBox().append(fromClient + " has left the room.\n"); return true; } diff --git a/src/client/Client.java b/src/client/Client.java index b5c34ee2fb7f85c513dac93d4208a17c0d12623a..3edda911f8e581fa2eb7d576173e811ce6bb7abf 100644 --- a/src/client/Client.java +++ b/src/client/Client.java @@ -1,5 +1,6 @@ package client; +import GUI.ApplicationMain; import GUI.ChatScreen; import GUI.PaintGUI; import GUI.StartScreen; @@ -19,38 +20,24 @@ public class Client private Registry registryServer; private IChatController chatController; private IClientController clientController; - private IDrawingController drawingController; private ClientUpdate clientUpdate; - private ChatUpdate chatUpdate; private DrawingUpdate drawingUpdate; - private StartScreen startScreen; + private StartScreen startScreen; private ChatScreen chatScreen; private PaintGUI paintGUI; - private String receivedMessage; - - private String[] connectedUsers; + public ApplicationMain getApplicationMain() { return applicationMain; } + private ApplicationMain applicationMain; - public PaintGUI getPaintGUI() { - return paintGUI; - } - - - public ChatScreen getChatScreen() - { - return chatScreen; - } + public PaintGUI getPaintGUI() { return paintGUI; } - public void setConnectedUsers(String[] users) - { - this.connectedUsers = users; - } + public ChatScreen getChatScreen() { return chatScreen; } public IChatController getChatController() { @@ -85,9 +72,11 @@ public class Client this.clientUpdate = new ClientUpdate(this); this.chatUpdate = new ChatUpdate(this); this.drawingUpdate = new DrawingUpdate(this); - this.startScreen = new StartScreen(this); - this.chatScreen = new ChatScreen(this); - this.paintGUI = new PaintGUI(this); +// this.startScreen = new StartScreen(this); +// this.chatScreen = new ChatScreen(this); +// this.paintGUI = new PaintGUI(this); + this.applicationMain = new ApplicationMain(this); + } public static void main(String[] args) @@ -96,8 +85,9 @@ public class Client { Client client = new Client(args[0]); client.connect(); -// client.startScreen.go(); +// client.getChatScreen().showGUI(); // client.getPaintGUI().showGUI(); + client.getApplicationMain().createAndShowGUI(); } catch (Exception e) { @@ -105,22 +95,6 @@ public class Client } } -// public void doSomething() -// { -//// new ChatScreen(); -// -// try -// { -// new ChatScreen(this); -// System.out.println("Sleeping..."); -// TimeUnit.MINUTES.sleep(5); -// } -// catch(Exception e) -// { -// e.printStackTrace(); -// } -// } - public boolean connect() { try @@ -145,14 +119,4 @@ public class Client return false; } - - public String getReceivedMessage() - { - return receivedMessage; - } - - public void setReceivedMessage(String receivedMessage) - { - this.receivedMessage = receivedMessage; - } } \ No newline at end of file diff --git a/src/client/ClientUpdate.java b/src/client/ClientUpdate.java index 83967bc77631a406b91fd2c60dda30d076d7e279..aefdaf5e3e63106ee06a92b045f89c0f08b5a630 100644 --- a/src/client/ClientUpdate.java +++ b/src/client/ClientUpdate.java @@ -21,7 +21,7 @@ public class ClientUpdate extends UnicastRemoteObject implements IClientUpdate, @Override public boolean notifyClient(String fromClient, String newUsername) throws RemoteException { - client.getChatScreen().getSendMessageToComboBox().addItem(newUsername); + client.getApplicationMain().getChatScreen().getSendMessageToComboBox().addItem(newUsername); return true; } @@ -31,7 +31,7 @@ public class ClientUpdate extends UnicastRemoteObject implements IClientUpdate, { //client.setConnectedUsers(users); - JComboBox userBox = client.getChatScreen().getSendMessageToComboBox(); + JComboBox userBox = client.getApplicationMain().getChatScreen().getSendMessageToComboBox(); userBox.removeAllItems(); diff --git a/src/client/DrawingUpdate.java b/src/client/DrawingUpdate.java index d681f1aa85f9a116686ea320a10371c6f7d884b9..4b41c0285681b1674f9b35cc61336ca6d4451426 100644 --- a/src/client/DrawingUpdate.java +++ b/src/client/DrawingUpdate.java @@ -19,11 +19,11 @@ public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate @Override public boolean notifyDrawing(String fromClient, Shape drawing) throws RemoteException { - client.getPaintGUI().getDrawingArea().setDrawing(drawing); - client.getPaintGUI().getDrawingArea().repaint(); - DrawingArea drawingArea = (DrawingArea) client.getChatScreen().getDrawingPanel().getComponent(1); - drawingArea.setDrawing(drawing); - drawingArea.repaint(); + client.getApplicationMain().getPaintGUI().getDrawingArea().setDrawing(drawing); + client.getApplicationMain().getPaintGUI().getDrawingArea().repaint(); +// DrawingArea drawingArea = (DrawingArea) client.getChatScreen().getDrawingPanel().getComponent(1); +// drawingArea.setDrawing(drawing); +// drawingArea.repaint(); return false; } } diff --git a/src/server/ClientController.java b/src/server/ClientController.java index bcfd261f7da172aca929a6a4f291b39c277fb2b1..5e7638f48e3e3307b6929a968b425e40722575a2 100644 --- a/src/server/ClientController.java +++ b/src/server/ClientController.java @@ -1,9 +1,9 @@ package server; import remote.IChatUpdate; -import remote.IClientController; import remote.IClientUpdate; import remote.IDrawingUpdate; +import remote.IClientController; import java.io.Serializable; import java.rmi.Remote;