Browse Source

Organize project into client and lib subprojects

Arnaud Vergnet 3 years ago
parent
commit
b6d02eaaec
75 changed files with 340 additions and 232 deletions
  1. 1
    1
      .gitignore
  2. 1
    1
      .idea/compiler.xml
  3. 24
    0
      .idea/dataSources.xml
  4. 2
    0
      .idea/gradle.xml
  5. 29
    0
      .idea/modules/clavardator.main.iml
  6. 36
    0
      .idea/modules/clavardator.test.iml
  7. 1
    1
      .idea/sqldialects.xml
  8. 4
    3
      client/build.gradle
  9. 1
    1
      client/src/main/java/fr/insa/clavardator/client/Launcher.java
  10. 3
    4
      client/src/main/java/fr/insa/clavardator/client/MainApp.java
  11. 8
    7
      client/src/main/java/fr/insa/clavardator/client/chat/ChatHistory.java
  12. 2
    2
      client/src/main/java/fr/insa/clavardator/client/config/Config.java
  13. 2
    2
      client/src/main/java/fr/insa/clavardator/client/config/ConfigLoader.java
  14. 16
    9
      client/src/main/java/fr/insa/clavardator/client/db/DatabaseController.java
  15. 1
    1
      client/src/main/java/fr/insa/clavardator/client/errors/UsernameTakenException.java
  16. 4
    4
      client/src/main/java/fr/insa/clavardator/client/network/NetDiscoverer.java
  17. 2
    2
      client/src/main/java/fr/insa/clavardator/client/network/NetUtil.java
  18. 7
    6
      client/src/main/java/fr/insa/clavardator/client/network/PeerHandshake.java
  19. 11
    10
      client/src/main/java/fr/insa/clavardator/client/server/InsaPresence.java
  20. 8
    8
      client/src/main/java/fr/insa/clavardator/client/server/Presence.java
  21. 1
    1
      client/src/main/java/fr/insa/clavardator/client/server/PresenceFactory.java
  22. 1
    1
      client/src/main/java/fr/insa/clavardator/client/server/PresenceType.java
  23. 1
    1
      client/src/main/java/fr/insa/clavardator/client/server/UnknownPresenceException.java
  24. 1
    1
      client/src/main/java/fr/insa/clavardator/client/ui/ButtonPressEvent.java
  25. 1
    1
      client/src/main/java/fr/insa/clavardator/client/ui/ErrorScreenController.java
  26. 1
    1
      client/src/main/java/fr/insa/clavardator/client/ui/LoadingScreenController.java
  27. 16
    16
      client/src/main/java/fr/insa/clavardator/client/ui/MainController.java
  28. 1
    1
      client/src/main/java/fr/insa/clavardator/client/ui/NoSelectionModel.java
  29. 2
    4
      client/src/main/java/fr/insa/clavardator/client/ui/ToolbarController.java
  30. 7
    0
      client/src/main/java/fr/insa/clavardator/client/ui/UserSelectedEvent.java
  31. 8
    8
      client/src/main/java/fr/insa/clavardator/client/ui/chat/ChatController.java
  32. 4
    4
      client/src/main/java/fr/insa/clavardator/client/ui/chat/ChatFooterController.java
  33. 3
    4
      client/src/main/java/fr/insa/clavardator/client/ui/chat/ChatHeaderController.java
  34. 2
    3
      client/src/main/java/fr/insa/clavardator/client/ui/chat/MessageListItemCell.java
  35. 4
    4
      client/src/main/java/fr/insa/clavardator/client/ui/chat/MessageListItemController.java
  36. 1
    1
      client/src/main/java/fr/insa/clavardator/client/ui/dialogs/AboutDialogController.java
  37. 4
    4
      client/src/main/java/fr/insa/clavardator/client/ui/dialogs/EditUsernameDialogController.java
  38. 1
    2
      client/src/main/java/fr/insa/clavardator/client/ui/dialogs/SnackbarController.java
  39. 2
    2
      client/src/main/java/fr/insa/clavardator/client/ui/users/UserActiveIndicatorController.java
  40. 6
    6
      client/src/main/java/fr/insa/clavardator/client/ui/users/UserListController.java
  41. 3
    3
      client/src/main/java/fr/insa/clavardator/client/ui/users/UserListItemCell.java
  42. 3
    3
      client/src/main/java/fr/insa/clavardator/client/ui/users/UserListItemController.java
  43. 11
    9
      client/src/main/java/fr/insa/clavardator/client/users/CurrentUser.java
  44. 18
    16
      client/src/main/java/fr/insa/clavardator/client/users/PeerUser.java
  45. 14
    12
      client/src/main/java/fr/insa/clavardator/client/users/UserList.java
  46. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/chat/chat.fxml
  47. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/chat/chatFooter.fxml
  48. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/chat/chatHeader.fxml
  49. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/chat/messageListItem.fxml
  50. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/dialogs/aboutDialog.fxml
  51. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/dialogs/editUsernameDialog.fxml
  52. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/dialogs/snackbar.fxml
  53. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/errorScreen.fxml
  54. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/loadingScreen.fxml
  55. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/scene.fxml
  56. 0
    0
      client/src/main/resources/fr/insa/clavardator/client/ui/styles.css
  57. 3
    3
      client/src/main/resources/fr/insa/clavardator/client/ui/toolbar.fxml
  58. 3
    3
      client/src/main/resources/fr/insa/clavardator/client/ui/users/userActiveIndicator.fxml
  59. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/users/userList.fxml
  60. 1
    1
      client/src/main/resources/fr/insa/clavardator/client/ui/users/userListItem.fxml
  61. 3
    3
      client/src/test/java/fr/insa/clavardator/DatabaseTest.java
  62. 14
    0
      lib/build.gradle
  63. 3
    3
      lib/src/main/java/fr/insa/clavardator/lib/message/FileMessage.java
  64. 2
    2
      lib/src/main/java/fr/insa/clavardator/lib/message/ImageMessage.java
  65. 3
    12
      lib/src/main/java/fr/insa/clavardator/lib/message/Message.java
  66. 2
    2
      lib/src/main/java/fr/insa/clavardator/lib/network/TcpConnection.java
  67. 3
    3
      lib/src/main/java/fr/insa/clavardator/lib/network/TcpListener.java
  68. 6
    6
      lib/src/main/java/fr/insa/clavardator/lib/users/User.java
  69. 1
    1
      lib/src/main/java/fr/insa/clavardator/lib/users/UserInformation.java
  70. 1
    1
      lib/src/main/java/fr/insa/clavardator/lib/util/ErrorCallback.java
  71. 1
    1
      lib/src/main/java/fr/insa/clavardator/lib/util/Log.java
  72. 1
    1
      lib/src/main/java/fr/insa/clavardator/lib/util/ParametrizedCallback.java
  73. 1
    1
      lib/src/main/java/fr/insa/clavardator/lib/util/SimpleCallback.java
  74. 2
    1
      settings.gradle
  75. 0
    7
      src/main/java/fr/insa/clavardator/ui/UserSelectedEvent.java

+ 1
- 1
.gitignore View File

@@ -1,6 +1,6 @@
1 1
 .gradle
2 2
 **/build/
3
-!src/**/build/
3
+!client/src/**/build/
4 4
 
5 5
 # Ignore sqlite db files
6 6
 /*.db

+ 1
- 1
.idea/compiler.xml View File

@@ -1,6 +1,6 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <project version="4">
3 3
   <component name="CompilerConfiguration">
4
-    <bytecodeTargetLevel target="14" />
4
+    <bytecodeTargetLevel target="11" />
5 5
   </component>
6 6
 </project>

+ 24
- 0
.idea/dataSources.xml View File

@@ -0,0 +1,24 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
4
+    <data-source source="LOCAL" name="clavardator_test" uuid="ef1353b8-2399-4195-b9fc-3ae9b9c61351">
5
+      <driver-ref>sqlite.xerial</driver-ref>
6
+      <synchronize>true</synchronize>
7
+      <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
8
+      <jdbc-url>jdbc:sqlite:$PROJECT_DIR$/clavardator_test.db</jdbc-url>
9
+      <working-dir>$ProjectFileDir$</working-dir>
10
+    </data-source>
11
+    <data-source source="LOCAL" name="clavardator" uuid="9e12684a-a723-44a7-82c6-f07ab8912b44">
12
+      <driver-ref>sqlite.xerial</driver-ref>
13
+      <synchronize>true</synchronize>
14
+      <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
15
+      <jdbc-url>jdbc:sqlite:$PROJECT_DIR$/clavardator.db</jdbc-url>
16
+      <working-dir>$ProjectFileDir$</working-dir>
17
+      <libraries>
18
+        <library>
19
+          <url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.31.1/sqlite-jdbc-3.31.1.jar</url>
20
+        </library>
21
+      </libraries>
22
+    </data-source>
23
+  </component>
24
+</project>

+ 2
- 0
.idea/gradle.xml View File

@@ -9,6 +9,8 @@
9 9
         <option name="modules">
10 10
           <set>
11 11
             <option value="$PROJECT_DIR$" />
12
+            <option value="$PROJECT_DIR$/client" />
13
+            <option value="$PROJECT_DIR$/lib" />
12 14
           </set>
13 15
         </option>
14 16
       </GradleProjectSettings>

+ 29
- 0
.idea/modules/clavardator.main.iml View File

@@ -0,0 +1,29 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module external.system.module.type="sourceSet" type="JAVA_MODULE" version="4">
3
+  <component name="NewModuleRootManager">
4
+    <output url="file://$MODULE_DIR$/../../build/classes/java/main" />
5
+    <exclude-output />
6
+    <content url="file://$MODULE_DIR$/../../client/src/main">
7
+      <sourceFolder url="file://$MODULE_DIR$/../../client/src/main/java" isTestSource="false" />
8
+      <sourceFolder url="file://$MODULE_DIR$/../../client/src/main/resources" type="java-resource" />
9
+    </content>
10
+    <orderEntry type="inheritedJdk" />
11
+    <orderEntry type="sourceFolder" forTests="false" />
12
+    <orderEntry type="library" name="Gradle: com.jfoenix:jfoenix:9.0.10" level="project" />
13
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-fxml:linux:11.0.2" level="project" />
14
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-controls:11.0.2" level="project" />
15
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-controls:linux:11.0.2" level="project" />
16
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-graphics:11.0.2" level="project" />
17
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-graphics:linux:11.0.2" level="project" />
18
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-base:11.0.2" level="project" />
19
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-base:linux:11.0.2" level="project" />
20
+    <orderEntry type="library" name="Gradle: org.jetbrains:annotations:20.1.0" level="project" />
21
+    <orderEntry type="library" name="Gradle: org.xerial:sqlite-jdbc:3.32.3" level="project" />
22
+    <orderEntry type="library" name="Gradle: org.kordamp.ikonli:ikonli-javafx:12.0.0" level="project" />
23
+    <orderEntry type="library" name="Gradle: org.kordamp.ikonli:ikonli-fontawesome5-pack:12.0.0" level="project" />
24
+    <orderEntry type="library" name="Gradle: org.json:json:20201115" level="project" />
25
+    <orderEntry type="library" name="Gradle: org.kordamp.ikonli:ikonli-core:12.0.0" level="project" />
26
+    <orderEntry type="library" scope="RUNTIME" name="Gradle: org.openjfx:javafx-graphics:mac:11.0.2" level="project" />
27
+    <orderEntry type="library" scope="RUNTIME" name="Gradle: org.openjfx:javafx-graphics:win:11.0.2" level="project" />
28
+  </component>
29
+</module>

+ 36
- 0
.idea/modules/clavardator.test.iml View File

@@ -0,0 +1,36 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module external.system.module.type="sourceSet" type="JAVA_MODULE" version="4">
3
+  <component name="NewModuleRootManager">
4
+    <output-test url="file://$MODULE_DIR$/../../build/classes/java/test" />
5
+    <exclude-output />
6
+    <content url="file://$MODULE_DIR$/../../client/src/test">
7
+      <sourceFolder url="file://$MODULE_DIR$/../../client/src/test/java" isTestSource="true" />
8
+      <sourceFolder url="file://$MODULE_DIR$/../../client/src/test/resources" type="java-test-resource" />
9
+    </content>
10
+    <orderEntry type="inheritedJdk" />
11
+    <orderEntry type="sourceFolder" forTests="false" />
12
+    <orderEntry type="module" module-name="clavardator.main" />
13
+    <orderEntry type="library" name="Gradle: com.jfoenix:jfoenix:9.0.10" level="project" />
14
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-fxml:linux:11.0.2" level="project" />
15
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-controls:11.0.2" level="project" />
16
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-controls:linux:11.0.2" level="project" />
17
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-graphics:11.0.2" level="project" />
18
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-graphics:linux:11.0.2" level="project" />
19
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-base:11.0.2" level="project" />
20
+    <orderEntry type="library" name="Gradle: org.openjfx:javafx-base:linux:11.0.2" level="project" />
21
+    <orderEntry type="library" name="Gradle: org.jetbrains:annotations:20.1.0" level="project" />
22
+    <orderEntry type="library" name="Gradle: org.xerial:sqlite-jdbc:3.32.3" level="project" />
23
+    <orderEntry type="library" name="Gradle: org.kordamp.ikonli:ikonli-javafx:12.0.0" level="project" />
24
+    <orderEntry type="library" name="Gradle: org.kordamp.ikonli:ikonli-fontawesome5-pack:12.0.0" level="project" />
25
+    <orderEntry type="library" name="Gradle: org.json:json:20201115" level="project" />
26
+    <orderEntry type="library" name="Gradle: org.junit.jupiter:junit-jupiter-api:5.7.0" level="project" />
27
+    <orderEntry type="library" name="Gradle: org.kordamp.ikonli:ikonli-core:12.0.0" level="project" />
28
+    <orderEntry type="library" name="Gradle: org.junit.platform:junit-platform-commons:1.7.0" level="project" />
29
+    <orderEntry type="library" name="Gradle: org.apiguardian:apiguardian-api:1.1.0" level="project" />
30
+    <orderEntry type="library" name="Gradle: org.opentest4j:opentest4j:1.2.0" level="project" />
31
+    <orderEntry type="library" scope="RUNTIME" name="Gradle: org.openjfx:javafx-graphics:mac:11.0.2" level="project" />
32
+    <orderEntry type="library" scope="RUNTIME" name="Gradle: org.openjfx:javafx-graphics:win:11.0.2" level="project" />
33
+    <orderEntry type="library" scope="RUNTIME" name="Gradle: org.junit.jupiter:junit-jupiter-engine:5.7.0" level="project" />
34
+    <orderEntry type="library" scope="RUNTIME" name="Gradle: org.junit.platform:junit-platform-engine:1.7.0" level="project" />
35
+  </component>
36
+</module>

+ 1
- 1
.idea/sqldialects.xml View File

@@ -1,7 +1,7 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <project version="4">
3 3
   <component name="SqlDialectMappings">
4
-    <file url="file://$PROJECT_DIR$/src/main/java/fr/insa/clavardator/db/DatabaseController.java" dialect="GenericSQL" />
4
+    <file url="file://$PROJECT_DIR$/client/src/main/java/fr/insa/clavardator/client/db/DatabaseController.java" dialect="GenericSQL" />
5 5
     <file url="PROJECT" dialect="SQLite" />
6 6
   </component>
7 7
 </project>

build.gradle → client/build.gradle View File

@@ -4,7 +4,7 @@ plugins {
4 4
     id 'com.github.johnrengelman.shadow' version '6.1.0'
5 5
 }
6 6
 
7
-group 'fr.insa.clavardator'
7
+group 'fr.insa.clavardator.client'
8 8
 version '0.0.1'
9 9
 
10 10
 repositories {
@@ -17,6 +17,7 @@ javafx {
17 17
 }
18 18
 
19 19
 dependencies {
20
+    implementation project(':lib')
20 21
     implementation 'org.jetbrains:annotations:20.1.0'
21 22
     runtimeOnly "org.openjfx:javafx-graphics:$javafx.version:win"
22 23
     runtimeOnly "org.openjfx:javafx-graphics:$javafx.version:linux"
@@ -35,11 +36,11 @@ test {
35 36
     useJUnitPlatform()
36 37
 }
37 38
 
38
-mainClassName = 'fr.insa.clavardator.Launcher'
39
+mainClassName = 'fr.insa.clavardator.client.Launcher'
39 40
 
40 41
 jar {
41 42
     manifest {
42
-        attributes 'Main-Class': 'fr.insa.clavardator.Launcher'
43
+        attributes 'Main-Class': 'fr.insa.clavardator.client.Launcher'
43 44
     }
44 45
     from {
45 46
         configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }

src/main/java/fr/insa/clavardator/Launcher.java → client/src/main/java/fr/insa/clavardator/client/Launcher.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator;
1
+package fr.insa.clavardator.client;
2 2
 
3 3
 public class Launcher {
4 4
 	public static void main(String[] args) {

src/main/java/fr/insa/clavardator/MainApp.java → client/src/main/java/fr/insa/clavardator/client/MainApp.java View File

@@ -1,8 +1,7 @@
1
-package fr.insa.clavardator;
1
+package fr.insa.clavardator.client;
2 2
 
3
-import fr.insa.clavardator.ui.MainController;
4
-import fr.insa.clavardator.users.UserList;
5
-import fr.insa.clavardator.util.Log;
3
+import fr.insa.clavardator.client.ui.MainController;
4
+import fr.insa.clavardator.lib.util.Log;
6 5
 import javafx.application.Application;
7 6
 import javafx.fxml.FXMLLoader;
8 7
 import javafx.scene.Parent;

src/main/java/fr/insa/clavardator/chat/ChatHistory.java → client/src/main/java/fr/insa/clavardator/client/chat/ChatHistory.java View File

@@ -1,11 +1,12 @@
1
-package fr.insa.clavardator.chat;
1
+package fr.insa.clavardator.client.chat;
2 2
 
3
-import fr.insa.clavardator.db.DatabaseController;
4
-import fr.insa.clavardator.users.CurrentUser;
5
-import fr.insa.clavardator.users.PeerUser;
6
-import fr.insa.clavardator.users.UserInformation;
7
-import fr.insa.clavardator.util.ErrorCallback;
8
-import fr.insa.clavardator.util.Log;
3
+import fr.insa.clavardator.client.db.DatabaseController;
4
+import fr.insa.clavardator.client.users.CurrentUser;
5
+import fr.insa.clavardator.client.users.PeerUser;
6
+import fr.insa.clavardator.lib.message.Message;
7
+import fr.insa.clavardator.lib.users.UserInformation;
8
+import fr.insa.clavardator.lib.util.ErrorCallback;
9
+import fr.insa.clavardator.lib.util.Log;
9 10
 import javafx.application.Platform;
10 11
 import javafx.collections.FXCollections;
11 12
 import javafx.collections.ObservableList;

src/main/java/fr/insa/clavardator/config/Config.java → client/src/main/java/fr/insa/clavardator/client/config/Config.java View File

@@ -1,6 +1,6 @@
1
-package fr.insa.clavardator.config;
1
+package fr.insa.clavardator.client.config;
2 2
 
3
-import fr.insa.clavardator.server.PresenceType;
3
+import fr.insa.clavardator.client.server.PresenceType;
4 4
 import org.json.JSONException;
5 5
 import org.json.JSONObject;
6 6
 

src/main/java/fr/insa/clavardator/config/ConfigLoader.java → client/src/main/java/fr/insa/clavardator/client/config/ConfigLoader.java View File

@@ -1,6 +1,6 @@
1
-package fr.insa.clavardator.config;
1
+package fr.insa.clavardator.client.config;
2 2
 
3
-import fr.insa.clavardator.util.Log;
3
+import fr.insa.clavardator.lib.util.Log;
4 4
 import org.json.JSONException;
5 5
 import org.json.JSONObject;
6 6
 import org.json.JSONTokener;

src/main/java/fr/insa/clavardator/db/DatabaseController.java → client/src/main/java/fr/insa/clavardator/client/db/DatabaseController.java View File

@@ -1,11 +1,12 @@
1
-package fr.insa.clavardator.db;
2
-
3
-import fr.insa.clavardator.chat.FileMessage;
4
-import fr.insa.clavardator.chat.Message;
5
-import fr.insa.clavardator.users.User;
6
-import fr.insa.clavardator.users.UserInformation;
7
-import fr.insa.clavardator.util.ErrorCallback;
8
-import fr.insa.clavardator.util.Log;
1
+package fr.insa.clavardator.client.db;
2
+
3
+import fr.insa.clavardator.lib.message.FileMessage;
4
+import fr.insa.clavardator.lib.message.Message;
5
+import fr.insa.clavardator.client.users.CurrentUser;
6
+import fr.insa.clavardator.lib.users.User;
7
+import fr.insa.clavardator.lib.users.UserInformation;
8
+import fr.insa.clavardator.lib.util.ErrorCallback;
9
+import fr.insa.clavardator.lib.util.Log;
9 10
 import org.intellij.lang.annotations.Language;
10 11
 import org.jetbrains.annotations.Nullable;
11 12
 
@@ -314,7 +315,13 @@ public class DatabaseController {
314 315
 	public void addMessage(Message message, @Nullable DatabaseController.UpdateCallback callback, ErrorCallback errorCallback) {
315 316
 		// Insert the correspondent if not already in the database
316 317
 		Log.v(getClass().getSimpleName(), "Inserting correspondent into db... ");
317
-		addUser(message.getCorrespondent(), () -> {
318
+		UserInformation correspondent;
319
+		if (CurrentUser.getInstance().getId() != null && CurrentUser.getInstance().getId().equals(message.getSender().id)) {
320
+			correspondent = message.getRecipient();
321
+		} else {
322
+			correspondent = message.getSender();
323
+		}
324
+		addUser(correspondent, () -> {
318 325
 			// Handle messages containing a file
319 326
 			String filePath = null;
320 327
 			if (message instanceof FileMessage) {

src/main/java/fr/insa/clavardator/errors/UsernameTakenException.java → client/src/main/java/fr/insa/clavardator/client/errors/UsernameTakenException.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.errors;
1
+package fr.insa.clavardator.client.errors;
2 2
 
3 3
 import java.io.Serializable;
4 4
 

src/main/java/fr/insa/clavardator/network/NetDiscoverer.java → client/src/main/java/fr/insa/clavardator/client/network/NetDiscoverer.java View File

@@ -1,13 +1,13 @@
1
-package fr.insa.clavardator.network;
1
+package fr.insa.clavardator.client.network;
2 2
 
3
-import fr.insa.clavardator.util.ErrorCallback;
4
-import fr.insa.clavardator.util.Log;
3
+import fr.insa.clavardator.lib.util.ErrorCallback;
4
+import fr.insa.clavardator.lib.util.Log;
5 5
 import org.jetbrains.annotations.Nullable;
6 6
 
7 7
 import java.io.IOException;
8 8
 import java.net.*;
9 9
 
10
-import static fr.insa.clavardator.network.NetUtil.isLocalAddress;
10
+import static fr.insa.clavardator.client.network.NetUtil.isLocalAddress;
11 11
 
12 12
 public class NetDiscoverer {
13 13
 	private static final short DISCOVERY_PORT = 31593;

src/main/java/fr/insa/clavardator/network/NetUtil.java → client/src/main/java/fr/insa/clavardator/client/network/NetUtil.java View File

@@ -1,6 +1,6 @@
1
-package fr.insa.clavardator.network;
1
+package fr.insa.clavardator.client.network;
2 2
 
3
-import fr.insa.clavardator.util.Log;
3
+import fr.insa.clavardator.lib.util.Log;
4 4
 
5 5
 import java.net.InetAddress;
6 6
 import java.net.InterfaceAddress;

src/main/java/fr/insa/clavardator/network/PeerHandshake.java → client/src/main/java/fr/insa/clavardator/client/network/PeerHandshake.java View File

@@ -1,10 +1,11 @@
1
-package fr.insa.clavardator.network;
1
+package fr.insa.clavardator.client.network;
2 2
 
3
-import fr.insa.clavardator.errors.UsernameTakenException;
4
-import fr.insa.clavardator.users.CurrentUser;
5
-import fr.insa.clavardator.users.UserInformation;
6
-import fr.insa.clavardator.util.ErrorCallback;
7
-import fr.insa.clavardator.util.Log;
3
+import fr.insa.clavardator.client.errors.UsernameTakenException;
4
+import fr.insa.clavardator.client.users.CurrentUser;
5
+import fr.insa.clavardator.lib.network.TcpConnection;
6
+import fr.insa.clavardator.lib.users.UserInformation;
7
+import fr.insa.clavardator.lib.util.ErrorCallback;
8
+import fr.insa.clavardator.lib.util.Log;
8 9
 
9 10
 import java.net.InetAddress;
10 11
 import java.net.Socket;

src/main/java/fr/insa/clavardator/server/InsaPresence.java → client/src/main/java/fr/insa/clavardator/client/server/InsaPresence.java View File

@@ -1,12 +1,13 @@
1
-package fr.insa.clavardator.server;
2
-
3
-import fr.insa.clavardator.network.TcpConnection;
4
-import fr.insa.clavardator.users.CurrentUser;
5
-import fr.insa.clavardator.users.UserInformation;
6
-import fr.insa.clavardator.util.ErrorCallback;
7
-import fr.insa.clavardator.util.Log;
8
-import fr.insa.clavardator.util.ParametrizedCallback;
9
-import fr.insa.clavardator.util.SimpleCallback;
1
+package fr.insa.clavardator.client.server;
2
+
3
+import fr.insa.clavardator.lib.network.TcpConnection;
4
+import fr.insa.clavardator.client.users.CurrentUser;
5
+import fr.insa.clavardator.lib.message.Message;
6
+import fr.insa.clavardator.lib.users.UserInformation;
7
+import fr.insa.clavardator.lib.util.ErrorCallback;
8
+import fr.insa.clavardator.lib.util.Log;
9
+import fr.insa.clavardator.lib.util.ParametrizedCallback;
10
+import fr.insa.clavardator.lib.util.SimpleCallback;
10 11
 import org.jetbrains.annotations.Nullable;
11 12
 
12 13
 import java.net.InetAddress;
@@ -26,7 +27,7 @@ import java.util.Arrays;
26 27
  * such as subscribe, unsubscribe, publish, and receive notifications.
27 28
  * <br/>
28 29
  * On the proxy port, the client will be able to send regular
29
- * {@link fr.insa.clavardator.chat.Message messages} like on the local network.
30
+ * {@link Message messages} like on the local network.
30 31
  * The proxy will forward the message to the appropriate recipient using the provided id.
31 32
  */
32 33
 public class InsaPresence implements Presence {

src/main/java/fr/insa/clavardator/server/Presence.java → client/src/main/java/fr/insa/clavardator/client/server/Presence.java View File

@@ -1,10 +1,10 @@
1
-package fr.insa.clavardator.server;
1
+package fr.insa.clavardator.client.server;
2 2
 
3
-import fr.insa.clavardator.network.TcpConnection;
4
-import fr.insa.clavardator.users.UserInformation;
5
-import fr.insa.clavardator.util.ErrorCallback;
6
-import fr.insa.clavardator.util.ParametrizedCallback;
7
-import fr.insa.clavardator.util.SimpleCallback;
3
+import fr.insa.clavardator.lib.network.TcpConnection;
4
+import fr.insa.clavardator.lib.users.UserInformation;
5
+import fr.insa.clavardator.lib.util.ErrorCallback;
6
+import fr.insa.clavardator.lib.util.ParametrizedCallback;
7
+import fr.insa.clavardator.lib.util.SimpleCallback;
8 8
 import org.jetbrains.annotations.Nullable;
9 9
 
10 10
 import java.util.ArrayList;
@@ -13,7 +13,7 @@ import java.util.ArrayList;
13 13
  * Interface exposing public methods necessary for any presence server.
14 14
  *
15 15
  * @implNote Implement this interface when creating your own presence server class,
16
- * then update the {@link fr.insa.clavardator.server.PresenceFactory factory}
16
+ * then update the {@link fr.insa.clavardator.client.server.PresenceFactory factory}
17 17
  * to add your new implementation.
18 18
  */
19 19
 public interface Presence {
@@ -38,7 +38,7 @@ public interface Presence {
38 38
 	/**
39 39
 	 * Gets a connection to the proxy.
40 40
 	 * This can be used to initialize a
41
-	 * {@link fr.insa.clavardator.users.PeerUser Peeruser}
41
+	 * {@link fr.insa.clavardator.client.users.PeerUser Peeruser}
42 42
 	 * and send messages like on a local network.
43 43
 	 *
44 44
 	 * @return The server address

src/main/java/fr/insa/clavardator/server/PresenceFactory.java → client/src/main/java/fr/insa/clavardator/client/server/PresenceFactory.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.server;
1
+package fr.insa.clavardator.client.server;
2 2
 
3 3
 /**
4 4
  * Static factory class used to create concrete presence server implementations.

src/main/java/fr/insa/clavardator/server/PresenceType.java → client/src/main/java/fr/insa/clavardator/client/server/PresenceType.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.server;
1
+package fr.insa.clavardator.client.server;
2 2
 
3 3
 public enum PresenceType {
4 4
 	INSA,

src/main/java/fr/insa/clavardator/server/UnknownPresenceException.java → client/src/main/java/fr/insa/clavardator/client/server/UnknownPresenceException.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.server;
1
+package fr.insa.clavardator.client.server;
2 2
 
3 3
 public class UnknownPresenceException extends Exception {
4 4
 	public UnknownPresenceException() {

src/main/java/fr/insa/clavardator/ui/ButtonPressEvent.java → client/src/main/java/fr/insa/clavardator/client/ui/ButtonPressEvent.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.ui;
1
+package fr.insa.clavardator.client.ui;
2 2
 
3 3
 /**
4 4
  * Interface used to create callbacks for button press events

src/main/java/fr/insa/clavardator/ui/ErrorScreenController.java → client/src/main/java/fr/insa/clavardator/client/ui/ErrorScreenController.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.ui;
1
+package fr.insa.clavardator.client.ui;
2 2
 
3 3
 import javafx.fxml.FXML;
4 4
 import javafx.fxml.Initializable;

src/main/java/fr/insa/clavardator/ui/LoadingScreenController.java → client/src/main/java/fr/insa/clavardator/client/ui/LoadingScreenController.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.ui;
1
+package fr.insa.clavardator.client.ui;
2 2
 
3 3
 import javafx.collections.ObservableList;
4 4
 import javafx.fxml.FXML;

src/main/java/fr/insa/clavardator/ui/MainController.java → client/src/main/java/fr/insa/clavardator/client/ui/MainController.java View File

@@ -1,21 +1,21 @@
1
-package fr.insa.clavardator.ui;
1
+package fr.insa.clavardator.client.ui;
2 2
 
3 3
 import com.jfoenix.controls.JFXSnackbar;
4
-import fr.insa.clavardator.config.Config;
5
-import fr.insa.clavardator.config.ConfigLoader;
6
-import fr.insa.clavardator.db.DatabaseController;
7
-import fr.insa.clavardator.server.Presence;
8
-import fr.insa.clavardator.server.PresenceFactory;
9
-import fr.insa.clavardator.server.PresenceType;
10
-import fr.insa.clavardator.server.UnknownPresenceException;
11
-import fr.insa.clavardator.ui.chat.ChatController;
12
-import fr.insa.clavardator.ui.dialogs.AboutDialogController;
13
-import fr.insa.clavardator.ui.dialogs.EditUsernameDialogController;
14
-import fr.insa.clavardator.ui.dialogs.SnackbarController;
15
-import fr.insa.clavardator.ui.users.UserListController;
16
-import fr.insa.clavardator.users.CurrentUser;
17
-import fr.insa.clavardator.users.UserList;
18
-import fr.insa.clavardator.util.Log;
4
+import fr.insa.clavardator.client.config.Config;
5
+import fr.insa.clavardator.client.config.ConfigLoader;
6
+import fr.insa.clavardator.client.db.DatabaseController;
7
+import fr.insa.clavardator.client.server.Presence;
8
+import fr.insa.clavardator.client.server.PresenceFactory;
9
+import fr.insa.clavardator.client.server.PresenceType;
10
+import fr.insa.clavardator.client.server.UnknownPresenceException;
11
+import fr.insa.clavardator.client.ui.chat.ChatController;
12
+import fr.insa.clavardator.client.ui.dialogs.AboutDialogController;
13
+import fr.insa.clavardator.client.ui.dialogs.EditUsernameDialogController;
14
+import fr.insa.clavardator.client.ui.dialogs.SnackbarController;
15
+import fr.insa.clavardator.client.ui.users.UserListController;
16
+import fr.insa.clavardator.client.users.CurrentUser;
17
+import fr.insa.clavardator.client.users.UserList;
18
+import fr.insa.clavardator.lib.util.Log;
19 19
 import javafx.application.Platform;
20 20
 import javafx.fxml.FXML;
21 21
 import javafx.fxml.FXMLLoader;

src/main/java/fr/insa/clavardator/ui/NoSelectionModel.java → client/src/main/java/fr/insa/clavardator/client/ui/NoSelectionModel.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.ui;
1
+package fr.insa.clavardator.client.ui;
2 2
 
3 3
 import javafx.collections.FXCollections;
4 4
 import javafx.collections.ObservableList;

src/main/java/fr/insa/clavardator/ui/ToolbarController.java → client/src/main/java/fr/insa/clavardator/client/ui/ToolbarController.java View File

@@ -1,14 +1,12 @@
1
-package fr.insa.clavardator.ui;
1
+package fr.insa.clavardator.client.ui;
2 2
 
3
-import fr.insa.clavardator.users.CurrentUser;
3
+import fr.insa.clavardator.client.users.CurrentUser;
4 4
 import javafx.fxml.FXML;
5 5
 import javafx.fxml.Initializable;
6 6
 import javafx.scene.control.Label;
7 7
 
8 8
 import java.beans.PropertyChangeEvent;
9 9
 import java.net.URL;
10
-import java.util.ArrayList;
11
-import java.util.List;
12 10
 import java.util.ResourceBundle;
13 11
 
14 12
 /**

+ 7
- 0
client/src/main/java/fr/insa/clavardator/client/ui/UserSelectedEvent.java View File

@@ -0,0 +1,7 @@
1
+package fr.insa.clavardator.client.ui;
2
+
3
+import fr.insa.clavardator.client.users.PeerUser;
4
+
5
+public interface UserSelectedEvent {
6
+	void onSelected(PeerUser user);
7
+}

src/main/java/fr/insa/clavardator/ui/chat/ChatController.java → client/src/main/java/fr/insa/clavardator/client/ui/chat/ChatController.java View File

@@ -1,12 +1,12 @@
1
-package fr.insa.clavardator.ui.chat;
1
+package fr.insa.clavardator.client.ui.chat;
2 2
 
3
-import fr.insa.clavardator.chat.ChatHistory;
4
-import fr.insa.clavardator.chat.Message;
5
-import fr.insa.clavardator.ui.LoadingScreenController;
6
-import fr.insa.clavardator.ui.NoSelectionModel;
7
-import fr.insa.clavardator.users.PeerUser;
8
-import fr.insa.clavardator.util.ErrorCallback;
9
-import fr.insa.clavardator.util.Log;
3
+import fr.insa.clavardator.client.chat.ChatHistory;
4
+import fr.insa.clavardator.lib.message.Message;
5
+import fr.insa.clavardator.client.ui.LoadingScreenController;
6
+import fr.insa.clavardator.client.ui.NoSelectionModel;
7
+import fr.insa.clavardator.client.users.PeerUser;
8
+import fr.insa.clavardator.lib.util.ErrorCallback;
9
+import fr.insa.clavardator.lib.util.Log;
10 10
 import javafx.application.Platform;
11 11
 import javafx.collections.ListChangeListener;
12 12
 import javafx.fxml.FXML;

src/main/java/fr/insa/clavardator/ui/chat/ChatFooterController.java → client/src/main/java/fr/insa/clavardator/client/ui/chat/ChatFooterController.java View File

@@ -1,10 +1,10 @@
1
-package fr.insa.clavardator.ui.chat;
1
+package fr.insa.clavardator.client.ui.chat;
2 2
 
3 3
 import com.jfoenix.controls.JFXButton;
4 4
 import com.jfoenix.controls.JFXTextField;
5
-import fr.insa.clavardator.users.PeerUser;
6
-import fr.insa.clavardator.util.ErrorCallback;
7
-import fr.insa.clavardator.util.Log;
5
+import fr.insa.clavardator.client.users.PeerUser;
6
+import fr.insa.clavardator.lib.util.ErrorCallback;
7
+import fr.insa.clavardator.lib.util.Log;
8 8
 import javafx.application.Platform;
9 9
 import javafx.beans.value.ObservableValue;
10 10
 import javafx.fxml.FXML;

src/main/java/fr/insa/clavardator/ui/chat/ChatHeaderController.java → client/src/main/java/fr/insa/clavardator/client/ui/chat/ChatHeaderController.java View File

@@ -1,7 +1,7 @@
1
-package fr.insa.clavardator.ui.chat;
1
+package fr.insa.clavardator.client.ui.chat;
2 2
 
3
-import fr.insa.clavardator.ui.users.UserActiveIndicatorController;
4
-import fr.insa.clavardator.users.PeerUser;
3
+import fr.insa.clavardator.client.ui.users.UserActiveIndicatorController;
4
+import fr.insa.clavardator.client.users.PeerUser;
5 5
 import javafx.application.Platform;
6 6
 import javafx.fxml.FXML;
7 7
 import javafx.fxml.Initializable;
@@ -9,7 +9,6 @@ import javafx.scene.control.Label;
9 9
 
10 10
 import java.beans.PropertyChangeEvent;
11 11
 import java.net.URL;
12
-import java.util.ArrayList;
13 12
 import java.util.ResourceBundle;
14 13
 
15 14
 /**

src/main/java/fr/insa/clavardator/ui/chat/MessageListItemCell.java → client/src/main/java/fr/insa/clavardator/client/ui/chat/MessageListItemCell.java View File

@@ -1,7 +1,6 @@
1
-package fr.insa.clavardator.ui.chat;
1
+package fr.insa.clavardator.client.ui.chat;
2 2
 
3
-import fr.insa.clavardator.chat.Message;
4
-import javafx.application.Platform;
3
+import fr.insa.clavardator.lib.message.Message;
5 4
 import javafx.fxml.FXMLLoader;
6 5
 import javafx.scene.Node;
7 6
 import javafx.scene.control.ListCell;

src/main/java/fr/insa/clavardator/ui/chat/MessageListItemController.java → client/src/main/java/fr/insa/clavardator/client/ui/chat/MessageListItemController.java View File

@@ -1,9 +1,9 @@
1
-package fr.insa.clavardator.ui.chat;
1
+package fr.insa.clavardator.client.ui.chat;
2 2
 
3 3
 import com.jfoenix.controls.JFXButton;
4
-import fr.insa.clavardator.chat.FileMessage;
5
-import fr.insa.clavardator.chat.Message;
6
-import fr.insa.clavardator.users.CurrentUser;
4
+import fr.insa.clavardator.lib.message.FileMessage;
5
+import fr.insa.clavardator.lib.message.Message;
6
+import fr.insa.clavardator.client.users.CurrentUser;
7 7
 import javafx.fxml.FXML;
8 8
 import javafx.fxml.Initializable;
9 9
 import javafx.geometry.Pos;

src/main/java/fr/insa/clavardator/ui/dialogs/AboutDialogController.java → client/src/main/java/fr/insa/clavardator/client/ui/dialogs/AboutDialogController.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.ui.dialogs;
1
+package fr.insa.clavardator.client.ui.dialogs;
2 2
 
3 3
 import com.jfoenix.controls.JFXDialog;
4 4
 import javafx.fxml.FXML;

src/main/java/fr/insa/clavardator/ui/dialogs/EditUsernameDialogController.java → client/src/main/java/fr/insa/clavardator/client/ui/dialogs/EditUsernameDialogController.java View File

@@ -1,12 +1,12 @@
1
-package fr.insa.clavardator.ui.dialogs;
1
+package fr.insa.clavardator.client.ui.dialogs;
2 2
 
3 3
 import com.jfoenix.controls.JFXButton;
4 4
 import com.jfoenix.controls.JFXDialog;
5 5
 import com.jfoenix.controls.JFXTextField;
6 6
 import com.jfoenix.validation.base.ValidatorBase;
7
-import fr.insa.clavardator.ui.ButtonPressEvent;
8
-import fr.insa.clavardator.users.CurrentUser;
9
-import fr.insa.clavardator.users.UserList;
7
+import fr.insa.clavardator.client.ui.ButtonPressEvent;
8
+import fr.insa.clavardator.client.users.CurrentUser;
9
+import fr.insa.clavardator.client.users.UserList;
10 10
 import javafx.beans.property.ReadOnlyBooleanWrapper;
11 11
 import javafx.beans.value.ObservableValue;
12 12
 import javafx.fxml.FXML;

src/main/java/fr/insa/clavardator/ui/dialogs/SnackbarController.java → client/src/main/java/fr/insa/clavardator/client/ui/dialogs/SnackbarController.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.ui.dialogs;
1
+package fr.insa.clavardator.client.ui.dialogs;
2 2
 
3 3
 import com.jfoenix.effects.JFXDepthManager;
4 4
 import javafx.collections.ObservableList;
@@ -9,7 +9,6 @@ import javafx.scene.layout.HBox;
9 9
 import org.kordamp.ikonli.javafx.FontIcon;
10 10
 
11 11
 import java.net.URL;
12
-import java.util.Arrays;
13 12
 import java.util.ResourceBundle;
14 13
 
15 14
 /**

src/main/java/fr/insa/clavardator/ui/users/UserActiveIndicatorController.java → client/src/main/java/fr/insa/clavardator/client/ui/users/UserActiveIndicatorController.java View File

@@ -1,6 +1,6 @@
1
-package fr.insa.clavardator.ui.users;
1
+package fr.insa.clavardator.client.ui.users;
2 2
 
3
-import fr.insa.clavardator.users.PeerUser;
3
+import fr.insa.clavardator.client.users.PeerUser;
4 4
 import javafx.application.Platform;
5 5
 import javafx.fxml.FXML;
6 6
 import javafx.fxml.Initializable;

src/main/java/fr/insa/clavardator/ui/users/UserListController.java → client/src/main/java/fr/insa/clavardator/client/ui/users/UserListController.java View File

@@ -1,11 +1,11 @@
1
-package fr.insa.clavardator.ui.users;
1
+package fr.insa.clavardator.client.ui.users;
2 2
 
3 3
 import com.jfoenix.controls.JFXButton;
4
-import fr.insa.clavardator.ui.ButtonPressEvent;
5
-import fr.insa.clavardator.ui.UserSelectedEvent;
6
-import fr.insa.clavardator.users.PeerUser;
7
-import fr.insa.clavardator.users.User;
8
-import fr.insa.clavardator.users.UserList;
4
+import fr.insa.clavardator.client.ui.ButtonPressEvent;
5
+import fr.insa.clavardator.client.ui.UserSelectedEvent;
6
+import fr.insa.clavardator.client.users.PeerUser;
7
+import fr.insa.clavardator.lib.users.User;
8
+import fr.insa.clavardator.client.users.UserList;
9 9
 import javafx.fxml.FXML;
10 10
 import javafx.fxml.Initializable;
11 11
 import javafx.scene.control.ListView;

src/main/java/fr/insa/clavardator/ui/users/UserListItemCell.java → client/src/main/java/fr/insa/clavardator/client/ui/users/UserListItemCell.java View File

@@ -1,7 +1,7 @@
1
-package fr.insa.clavardator.ui.users;
1
+package fr.insa.clavardator.client.ui.users;
2 2
 
3
-import fr.insa.clavardator.ui.UserSelectedEvent;
4
-import fr.insa.clavardator.users.PeerUser;
3
+import fr.insa.clavardator.client.ui.UserSelectedEvent;
4
+import fr.insa.clavardator.client.users.PeerUser;
5 5
 import javafx.fxml.FXMLLoader;
6 6
 import javafx.scene.Node;
7 7
 import javafx.scene.control.ListCell;

src/main/java/fr/insa/clavardator/ui/users/UserListItemController.java → client/src/main/java/fr/insa/clavardator/client/ui/users/UserListItemController.java View File

@@ -1,8 +1,8 @@
1
-package fr.insa.clavardator.ui.users;
1
+package fr.insa.clavardator.client.ui.users;
2 2
 
3 3
 import com.jfoenix.controls.JFXButton;
4
-import fr.insa.clavardator.ui.ButtonPressEvent;
5
-import fr.insa.clavardator.users.PeerUser;
4
+import fr.insa.clavardator.client.ui.ButtonPressEvent;
5
+import fr.insa.clavardator.client.users.PeerUser;
6 6
 import javafx.application.Platform;
7 7
 import javafx.fxml.FXML;
8 8
 import javafx.fxml.Initializable;

src/main/java/fr/insa/clavardator/users/CurrentUser.java → client/src/main/java/fr/insa/clavardator/client/users/CurrentUser.java View File

@@ -1,8 +1,10 @@
1
-package fr.insa.clavardator.users;
1
+package fr.insa.clavardator.client.users;
2 2
 
3
-import fr.insa.clavardator.db.DatabaseController;
4
-import fr.insa.clavardator.util.ErrorCallback;
5
-import fr.insa.clavardator.util.Log;
3
+import fr.insa.clavardator.client.db.DatabaseController;
4
+import fr.insa.clavardator.lib.users.User;
5
+import fr.insa.clavardator.lib.users.UserInformation;
6
+import fr.insa.clavardator.lib.util.ErrorCallback;
7
+import fr.insa.clavardator.lib.util.Log;
6 8
 
7 9
 import java.util.UUID;
8 10
 
@@ -33,8 +35,8 @@ public class CurrentUser extends User {
33 35
 		final DatabaseController db = new DatabaseController();
34 36
 		db.getCurrentUser((user) -> {
35 37
 			if (user == null) {
36
-				id = generateUniqueId();
37
-				Log.v(getClass().getSimpleName(), "No previous user found, generating id: " + id);
38
+				setId(generateUniqueId());
39
+				Log.v(getClass().getSimpleName(), "No previous user found, generating id: " + getId());
38 40
 				db.addCurrentUser(
39 41
 						new UserInformation(this),
40 42
 						() -> {
@@ -43,9 +45,9 @@ public class CurrentUser extends User {
43 45
 						},
44 46
 						errorCallback);
45 47
 			} else {
46
-				id = user.id;
48
+				setId(user.id);
47 49
 				if (user.getUsername() != null) {
48
-					Log.v(getClass().getSimpleName(), "Last user found : " + id + " / " + getUsername());
50
+					Log.v(getClass().getSimpleName(), "Last user found : " + getId() + " / " + getUsername());
49 51
 					setUsername(user.getUsername());
50 52
 				} else {
51 53
 					Log.v(getClass().getSimpleName(), "No username found, asking user");
@@ -75,7 +77,7 @@ public class CurrentUser extends User {
75 77
 	public void setState(State state) {
76 78
 		Log.v(this.getClass().getSimpleName(),
77 79
 				"State changed from " + this.state.toString() + " to " + state.toString());
78
-		instance.pcs.firePropertyChange("state", this.state, state);
80
+		instance.getPcs().firePropertyChange("state", this.state, state);
79 81
 		this.state = state;
80 82
 	}
81 83
 

src/main/java/fr/insa/clavardator/users/PeerUser.java → client/src/main/java/fr/insa/clavardator/client/users/PeerUser.java View File

@@ -1,13 +1,15 @@
1
-package fr.insa.clavardator.users;
2
-
3
-import fr.insa.clavardator.chat.ChatHistory;
4
-import fr.insa.clavardator.chat.FileMessage;
5
-import fr.insa.clavardator.chat.Message;
6
-import fr.insa.clavardator.db.DatabaseController;
7
-import fr.insa.clavardator.errors.UsernameTakenException;
8
-import fr.insa.clavardator.network.TcpConnection;
9
-import fr.insa.clavardator.util.ErrorCallback;
10
-import fr.insa.clavardator.util.Log;
1
+package fr.insa.clavardator.client.users;
2
+
3
+import fr.insa.clavardator.client.chat.ChatHistory;
4
+import fr.insa.clavardator.lib.message.FileMessage;
5
+import fr.insa.clavardator.lib.message.Message;
6
+import fr.insa.clavardator.client.db.DatabaseController;
7
+import fr.insa.clavardator.client.errors.UsernameTakenException;
8
+import fr.insa.clavardator.lib.network.TcpConnection;
9
+import fr.insa.clavardator.lib.users.User;
10
+import fr.insa.clavardator.lib.users.UserInformation;
11
+import fr.insa.clavardator.lib.util.ErrorCallback;
12
+import fr.insa.clavardator.lib.util.Log;
11 13
 import org.jetbrains.annotations.NotNull;
12 14
 import org.jetbrains.annotations.Nullable;
13 15
 
@@ -105,7 +107,7 @@ public class PeerUser extends User implements Comparable<PeerUser> {
105 107
 
106 108
 	public void init(TcpConnection connection, String id, String username, ErrorCallback errorCallback) {
107 109
 		this.connection = connection;
108
-		this.id = id;
110
+		this.setId(id);
109 111
 		setUsername(username);
110 112
 		setState(State.CONNECTED);
111 113
 		subscribeToMessages((e) -> {
@@ -124,7 +126,7 @@ public class PeerUser extends User implements Comparable<PeerUser> {
124 126
 	private void subscribeToMessages(ErrorCallback errorCallback) {
125 127
 		connection.receive(
126 128
 				msg -> {
127
-					Log.v(this.getClass().getSimpleName(), "Received message from " + id);
129
+					Log.v(this.getClass().getSimpleName(), "Received message from " + getId());
128 130
 					if (msg instanceof UserInformation) {
129 131
 						assert ((UserInformation) msg).id.equals(getId());
130 132
 						final String receivedUsername = ((UserInformation) msg).getUsername();
@@ -135,7 +137,7 @@ public class PeerUser extends User implements Comparable<PeerUser> {
135 137
 							setUsername(receivedUsername);
136 138
 						}
137 139
 					} else if (msg instanceof Message) {
138
-						assert !((Message) msg).getRecipient().id.equals(id);
140
+						assert !((Message) msg).getRecipient().id.equals(getId());
139 141
 
140 142
 						Log.v(this.getClass().getSimpleName(), "Message text: " + ((Message) msg).getText());
141 143
 						if (msg instanceof FileMessage) {
@@ -151,7 +153,7 @@ public class PeerUser extends User implements Comparable<PeerUser> {
151 153
 					if (e instanceof EOFException) {
152 154
 						disconnect();
153 155
 					} else {
154
-						Log.e(this.getClass().getSimpleName(), "Error receiving message from " + id, e);
156
+						Log.e(this.getClass().getSimpleName(), "Error receiving message from " + getId(), e);
155 157
 						errorCallback.onError(e);
156 158
 					}
157 159
 				});
@@ -161,7 +163,7 @@ public class PeerUser extends User implements Comparable<PeerUser> {
161 163
 	 * Close the connection and set state to disconnected
162 164
 	 */
163 165
 	public void disconnect() {
164
-		Log.v(this.getClass().getSimpleName(), "Disconnecting from user: " + id);
166
+		Log.v(this.getClass().getSimpleName(), "Disconnecting from user: " + getId());
165 167
 		closeConnection();
166 168
 		setState(State.DISCONNECTED);
167 169
 	}
@@ -201,7 +203,7 @@ public class PeerUser extends User implements Comparable<PeerUser> {
201 203
 	 * @param state The new state
202 204
 	 */
203 205
 	protected void setState(State state) {
204
-		pcs.firePropertyChange("state", this.state, state);
206
+		getPcs().firePropertyChange("state", this.state, state);
205 207
 		this.state = state;
206 208
 	}
207 209
 

src/main/java/fr/insa/clavardator/users/UserList.java → client/src/main/java/fr/insa/clavardator/client/users/UserList.java View File

@@ -1,12 +1,14 @@
1
-package fr.insa.clavardator.users;
2
-
3
-import fr.insa.clavardator.db.DatabaseController;
4
-import fr.insa.clavardator.network.NetDiscoverer;
5
-import fr.insa.clavardator.network.PeerHandshake;
6
-import fr.insa.clavardator.network.TcpConnection;
7
-import fr.insa.clavardator.network.TcpListener;
8
-import fr.insa.clavardator.util.ErrorCallback;
9
-import fr.insa.clavardator.util.Log;
1
+package fr.insa.clavardator.client.users;
2
+
3
+import fr.insa.clavardator.client.db.DatabaseController;
4
+import fr.insa.clavardator.client.network.NetDiscoverer;
5
+import fr.insa.clavardator.client.network.PeerHandshake;
6
+import fr.insa.clavardator.lib.network.TcpConnection;
7
+import fr.insa.clavardator.lib.network.TcpListener;
8
+import fr.insa.clavardator.lib.users.User;
9
+import fr.insa.clavardator.lib.users.UserInformation;
10
+import fr.insa.clavardator.lib.util.ErrorCallback;
11
+import fr.insa.clavardator.lib.util.Log;
10 12
 import javafx.application.Platform;
11 13
 import javafx.collections.FXCollections;
12 14
 import javafx.collections.ObservableList;
@@ -59,7 +61,7 @@ public class UserList {
59 61
 				Log.v(getClass().getSimpleName(), "Received new user from presence server");
60 62
 				final PeerUser user = new PeerUser();
61 63
 				user.init(proxyConnection, userInfo.id, userInfo.getUsername(), null);
62
-				userHashmap.put(user.id, user);
64
+				userHashmap.put(user.getId(), user);
63 65
 				Platform.runLater(() -> userObservableList.add(user));
64 66
 			}
65 67
 		}));
@@ -78,7 +80,7 @@ public class UserList {
78 80
 
79 81
 	public void retrievedPreviousUsers(UserListLoadedCallback onFinish, ErrorCallback errorCallback) {
80 82
 		db.getAllUsers(users -> {
81
-			users.forEach(user -> createNewInactiveUser(user.id, user.getUsername()));
83
+			users.forEach(user -> createNewInactiveUser(user.getId(), user.getUsername()));
82 84
 			onFinish.onLoaded();
83 85
 		}, errorCallback);
84 86
 	}
@@ -110,7 +112,7 @@ public class UserList {
110 112
 		} else {
111 113
 			final PeerUser user = new PeerUser();
112 114
 			user.init(handshake.getConnection(), userInfo.id, userInfo.getUsername(), null);
113
-			userHashmap.put(user.id, user);
115
+			userHashmap.put(user.getId(), user);
114 116
 			Platform.runLater(() -> userObservableList.add(user));
115 117
 		}
116 118
 	}

src/main/resources/fr/insa/clavardator/ui/chat/chat.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/chat/chat.fxml View File

@@ -7,7 +7,7 @@
7 7
 <?import com.jfoenix.controls.JFXSpinner?>
8 8
 <?import javafx.geometry.Insets?>
9 9
 <AnchorPane xmlns="http://javafx.com/javafx/11.0.1"
10
-            xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.insa.clavardator.ui.chat.ChatController"
10
+            xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.insa.clavardator.client.ui.chat.ChatController"
11 11
             stylesheets="@../styles.css" styleClass="container">
12 12
   <StackPane AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
13 13
              AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">

src/main/resources/fr/insa/clavardator/ui/chat/chatFooter.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/chat/chatFooter.fxml View File

@@ -7,7 +7,7 @@
7 7
 <?import org.kordamp.ikonli.javafx.FontIcon?>
8 8
 <HBox xmlns="http://javafx.com/javafx"
9 9
       xmlns:fx="http://javafx.com/fxml"
10
-      fx:controller="fr.insa.clavardator.ui.chat.ChatFooterController"
10
+      fx:controller="fr.insa.clavardator.client.ui.chat.ChatFooterController"
11 11
       stylesheets="@../styles.css" styleClass="container" alignment="CENTER" spacing="10.0" fx:id="container">
12 12
   <padding>
13 13
     <Insets bottom="20.0" left="20.0" right="20.0" top="20.0"/>

src/main/resources/fr/insa/clavardator/ui/chat/chatHeader.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/chat/chatHeader.fxml View File

@@ -6,7 +6,7 @@
6 6
 <?import javafx.scene.layout.VBox?>
7 7
 <VBox xmlns:fx="http://javafx.com/fxml"
8 8
       xmlns="http://javafx.com/javafx"
9
-      fx:controller="fr.insa.clavardator.ui.chat.ChatHeaderController"
9
+      fx:controller="fr.insa.clavardator.client.ui.chat.ChatHeaderController"
10 10
       stylesheets="@../styles.css" styleClass="container">
11 11
   <HBox alignment="CENTER_LEFT" spacing="5" prefHeight="64">
12 12
     <padding>

src/main/resources/fr/insa/clavardator/ui/chat/messageListItem.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/chat/messageListItem.fxml View File

@@ -7,7 +7,7 @@
7 7
 <?import org.kordamp.ikonli.javafx.FontIcon?>
8 8
 <VBox xmlns="http://javafx.com/javafx/11.0.1"
9 9
       xmlns:fx="http://javafx.com/fxml/1"
10
-      fx:controller="fr.insa.clavardator.ui.chat.MessageListItemController"
10
+      fx:controller="fr.insa.clavardator.client.ui.chat.MessageListItemController"
11 11
       stylesheets="@../styles.css"
12 12
       styleClass="inner"
13 13
       fx:id="container"

src/main/resources/fr/insa/clavardator/ui/dialogs/aboutDialog.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/dialogs/aboutDialog.fxml View File

@@ -9,7 +9,7 @@
9 9
 <?import org.kordamp.ikonli.javafx.FontIcon?>
10 10
 <JFXDialog xmlns:fx="http://javafx.com/fxml"
11 11
            xmlns="http://javafx.com/javafx"
12
-           fx:controller="fr.insa.clavardator.ui.dialogs.AboutDialogController"
12
+           fx:controller="fr.insa.clavardator.client.ui.dialogs.AboutDialogController"
13 13
            stylesheets="@../styles.css" fx:id="dialog">
14 14
   <AnchorPane
15 15
       prefWidth="600"

src/main/resources/fr/insa/clavardator/ui/dialogs/editUsernameDialog.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/dialogs/editUsernameDialog.fxml View File

@@ -9,7 +9,7 @@
9 9
 <?import org.kordamp.ikonli.javafx.FontIcon?>
10 10
 <JFXDialog xmlns:fx="http://javafx.com/fxml"
11 11
            xmlns="http://javafx.com/javafx"
12
-           fx:controller="fr.insa.clavardator.ui.dialogs.EditUsernameDialogController"
12
+           fx:controller="fr.insa.clavardator.client.ui.dialogs.EditUsernameDialogController"
13 13
            stylesheets="@../styles.css" fx:id="dialog">
14 14
   <AnchorPane
15 15
       prefWidth="600"

src/main/resources/fr/insa/clavardator/ui/dialogs/snackbar.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/dialogs/snackbar.fxml View File

@@ -7,7 +7,7 @@
7 7
 <?import javafx.geometry.Insets?>
8 8
 <AnchorPane xmlns:fx="http://javafx.com/fxml"
9 9
             xmlns="http://javafx.com/javafx"
10
-            fx:controller="fr.insa.clavardator.ui.dialogs.SnackbarController"
10
+            fx:controller="fr.insa.clavardator.client.ui.dialogs.SnackbarController"
11 11
             stylesheets="@../styles.css">
12 12
   <HBox fx:id="container" alignment="CENTER_LEFT" prefHeight="50.0" prefWidth="400" AnchorPane.rightAnchor="0"
13 13
         AnchorPane.leftAnchor="0" AnchorPane.topAnchor="0" AnchorPane.bottomAnchor="100"

src/main/resources/fr/insa/clavardator/ui/errorScreen.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/errorScreen.fxml View File

@@ -6,7 +6,7 @@
6 6
 <?import org.kordamp.ikonli.javafx.FontIcon?>
7 7
 <VBox xmlns:fx="http://javafx.com/fxml"
8 8
       xmlns="http://javafx.com/javafx"
9
-      fx:controller="fr.insa.clavardator.ui.ErrorScreenController"
9
+      fx:controller="fr.insa.clavardator.client.ui.ErrorScreenController"
10 10
       stylesheets="@styles.css"
11 11
       styleClass="container"
12 12
       alignment="CENTER"

src/main/resources/fr/insa/clavardator/ui/loadingScreen.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/loadingScreen.fxml View File

@@ -6,7 +6,7 @@
6 6
 <?import javafx.scene.layout.VBox?>
7 7
 <StackPane xmlns:fx="http://javafx.com/fxml"
8 8
            xmlns="http://javafx.com/javafx"
9
-           fx:controller="fr.insa.clavardator.ui.LoadingScreenController"
9
+           fx:controller="fr.insa.clavardator.client.ui.LoadingScreenController"
10 10
            stylesheets="@styles.css"
11 11
            styleClass="container"
12 12
            fx:id="container">

src/main/resources/fr/insa/clavardator/ui/scene.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/scene.fxml View File

@@ -5,7 +5,7 @@
5 5
 <?import javafx.scene.layout.*?>
6 6
 <StackPane xmlns:fx="http://javafx.com/fxml/1"
7 7
            xmlns="http://javafx.com/javafx/11.0.1"
8
-           fx:controller="fr.insa.clavardator.ui.MainController"
8
+           fx:controller="fr.insa.clavardator.client.ui.MainController"
9 9
            stylesheets="@styles.css"
10 10
            styleClass="container"
11 11
            fx:id="root">

src/main/resources/fr/insa/clavardator/ui/styles.css → client/src/main/resources/fr/insa/clavardator/client/ui/styles.css View File


src/main/resources/fr/insa/clavardator/ui/toolbar.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/toolbar.fxml View File

@@ -6,9 +6,9 @@
6 6
 <?import javafx.scene.layout.*?>
7 7
 <?import org.kordamp.ikonli.javafx.FontIcon?>
8 8
 <VBox xmlns="http://javafx.com/javafx"
9
-            xmlns:fx="http://javafx.com/fxml"
10
-            fx:controller="fr.insa.clavardator.ui.ToolbarController"
11
-            stylesheets="@styles.css" styleClass="container">
9
+      xmlns:fx="http://javafx.com/fxml"
10
+      fx:controller="fr.insa.clavardator.client.ui.ToolbarController"
11
+      stylesheets="@styles.css" styleClass="container">
12 12
   <HBox alignment="CENTER_LEFT" prefHeight="64.0" spacing="10">
13 13
     <padding>
14 14
       <Insets left="20" right="20"/>

src/main/resources/fr/insa/clavardator/ui/users/userActiveIndicator.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/users/userActiveIndicator.fxml View File

@@ -4,8 +4,8 @@
4 4
 
5 5
 <?import javafx.scene.shape.Circle?>
6 6
 <HBox xmlns="http://javafx.com/javafx"
7
-            xmlns:fx="http://javafx.com/fxml"
8
-            fx:controller="fr.insa.clavardator.ui.users.UserActiveIndicatorController"
9
-            stylesheets="@../styles.css" alignment="CENTER">
7
+      xmlns:fx="http://javafx.com/fxml"
8
+      fx:controller="fr.insa.clavardator.client.ui.users.UserActiveIndicatorController"
9
+      stylesheets="@../styles.css" alignment="CENTER">
10 10
   <Circle fx:id="circle" radius="5.0" styleClass="active-user-dot"/>
11 11
 </HBox>

src/main/resources/fr/insa/clavardator/ui/users/userList.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/users/userList.fxml View File

@@ -5,7 +5,7 @@
5 5
 <?import javafx.scene.layout.*?>
6 6
 <?import org.kordamp.ikonli.javafx.FontIcon?>
7 7
 <AnchorPane xmlns="http://javafx.com/javafx/11.0.1"
8
-            xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.insa.clavardator.ui.users.UserListController"
8
+            xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.insa.clavardator.client.ui.users.UserListController"
9 9
             stylesheets="@../styles.css" styleClass="container">
10 10
   <VBox AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
11 11
         AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">

src/main/resources/fr/insa/clavardator/ui/users/userListItem.fxml → client/src/main/resources/fr/insa/clavardator/client/ui/users/userListItem.fxml View File

@@ -4,7 +4,7 @@
4 4
 <?import javafx.scene.layout.*?>
5 5
 <!--suppress JavaFxUnresolvedFxIdReference -->
6 6
 <AnchorPane prefHeight="40.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"
7
-            fx:controller="fr.insa.clavardator.ui.users.UserListItemController" stylesheets="@../styles.css"
7
+            fx:controller="fr.insa.clavardator.client.ui.users.UserListItemController" stylesheets="@../styles.css"
8 8
             styleClass="inner">
9 9
   <JFXButton fx:id="button" alignment="CENTER_LEFT" AnchorPane.bottomAnchor="0" AnchorPane.leftAnchor="0"
10 10
              AnchorPane.rightAnchor="0" AnchorPane.topAnchor="0" onAction="#onPress">

src/test/java/fr/insa/clavardator/DatabaseTest.java → client/src/test/java/fr/insa/clavardator/DatabaseTest.java View File

@@ -1,8 +1,8 @@
1 1
 package fr.insa.clavardator;
2 2
 
3
-import fr.insa.clavardator.chat.Message;
4
-import fr.insa.clavardator.db.DatabaseController;
5
-import fr.insa.clavardator.users.UserInformation;
3
+import fr.insa.clavardator.lib.message.Message;
4
+import fr.insa.clavardator.client.db.DatabaseController;
5
+import fr.insa.clavardator.lib.users.UserInformation;
6 6
 import org.junit.jupiter.api.Assertions;
7 7
 import org.junit.jupiter.api.Test;
8 8
 

+ 14
- 0
lib/build.gradle View File

@@ -0,0 +1,14 @@
1
+plugins {
2
+    id 'java'
3
+}
4
+
5
+group 'fr.insa.clavardator.lib'
6
+version '0.0.1'
7
+
8
+repositories {
9
+    mavenCentral()
10
+}
11
+
12
+dependencies {
13
+    implementation 'org.jetbrains:annotations:20.1.0'
14
+}

src/main/java/fr/insa/clavardator/chat/FileMessage.java → lib/src/main/java/fr/insa/clavardator/lib/message/FileMessage.java View File

@@ -1,7 +1,7 @@
1
-package fr.insa.clavardator.chat;
1
+package fr.insa.clavardator.lib.message;
2 2
 
3
-import fr.insa.clavardator.users.User;
4
-import fr.insa.clavardator.users.UserInformation;
3
+import fr.insa.clavardator.lib.users.User;
4
+import fr.insa.clavardator.lib.users.UserInformation;
5 5
 
6 6
 import java.io.File;
7 7
 import java.io.FileInputStream;

src/main/java/fr/insa/clavardator/chat/ImageMessage.java → lib/src/main/java/fr/insa/clavardator/lib/message/ImageMessage.java View File

@@ -1,6 +1,6 @@
1
-package fr.insa.clavardator.chat;
1
+package fr.insa.clavardator.lib.message;
2 2
 
3
-import fr.insa.clavardator.users.UserInformation;
3
+import fr.insa.clavardator.lib.users.UserInformation;
4 4
 
5 5
 import java.io.IOException;
6 6
 import java.util.Date;

src/main/java/fr/insa/clavardator/chat/Message.java → lib/src/main/java/fr/insa/clavardator/lib/message/Message.java View File

@@ -1,8 +1,7 @@
1
-package fr.insa.clavardator.chat;
1
+package fr.insa.clavardator.lib.message;
2 2
 
3
-import fr.insa.clavardator.users.CurrentUser;
4
-import fr.insa.clavardator.users.User;
5
-import fr.insa.clavardator.users.UserInformation;
3
+import fr.insa.clavardator.lib.users.User;
4
+import fr.insa.clavardator.lib.users.UserInformation;
6 5
 
7 6
 import java.io.Serializable;
8 7
 import java.util.Date;
@@ -47,14 +46,6 @@ public class Message implements Serializable {
47 46
 		return recipient;
48 47
 	}
49 48
 
50
-	public UserInformation getCorrespondent() {
51
-		if (CurrentUser.getInstance().getId() != null && CurrentUser.getInstance().getId().equals(sender.id)) {
52
-			return recipient;
53
-		} else {
54
-			return sender;
55
-		}
56
-	}
57
-
58 49
 	public Date getDate() {
59 50
 		return date;
60 51
 	}

src/main/java/fr/insa/clavardator/network/TcpConnection.java → lib/src/main/java/fr/insa/clavardator/lib/network/TcpConnection.java View File

@@ -1,6 +1,6 @@
1
-package fr.insa.clavardator.network;
1
+package fr.insa.clavardator.lib.network;
2 2
 
3
-import fr.insa.clavardator.util.ErrorCallback;
3
+import fr.insa.clavardator.lib.util.ErrorCallback;
4 4
 import org.jetbrains.annotations.NotNull;
5 5
 import org.jetbrains.annotations.Nullable;
6 6
 

src/main/java/fr/insa/clavardator/network/TcpListener.java → lib/src/main/java/fr/insa/clavardator/lib/network/TcpListener.java View File

@@ -1,12 +1,12 @@
1
-package fr.insa.clavardator.network;
1
+package fr.insa.clavardator.lib.network;
2 2
 
3
-import fr.insa.clavardator.util.ErrorCallback;
3
+import fr.insa.clavardator.lib.util.ErrorCallback;
4 4
 
5 5
 import java.io.IOException;
6 6
 import java.net.ServerSocket;
7 7
 import java.net.Socket;
8 8
 
9
-import static fr.insa.clavardator.network.TcpConnection.TCP_PORT;
9
+import static fr.insa.clavardator.lib.network.TcpConnection.TCP_PORT;
10 10
 
11 11
 public class TcpListener {
12 12
 	Acceptor acceptor = null;

src/main/java/fr/insa/clavardator/users/User.java → lib/src/main/java/fr/insa/clavardator/lib/users/User.java View File

@@ -1,7 +1,4 @@
1
-package fr.insa.clavardator.users;
2
-
3
-import fr.insa.clavardator.db.DatabaseController;
4
-import fr.insa.clavardator.util.Log;
1
+package fr.insa.clavardator.lib.users;
5 2
 
6 3
 import java.beans.PropertyChangeListener;
7 4
 import java.beans.PropertyChangeSupport;
@@ -9,10 +6,10 @@ import java.io.Serializable;
9 6
 
10 7
 public class User implements Serializable {
11 8
 	private String username;
12
-	protected String id;
9
+	private String id;
13 10
 
14 11
 	// Make this class observable
15
-	protected final transient PropertyChangeSupport pcs = new PropertyChangeSupport(this);
12
+	private final transient PropertyChangeSupport pcs = new PropertyChangeSupport(this);
16 13
 	public void addObserver(PropertyChangeListener listener) {
17 14
 		pcs.addPropertyChangeListener(listener);
18 15
 	}
@@ -32,6 +29,9 @@ public class User implements Serializable {
32 29
 		this.username = username;
33 30
 	}
34 31
 
32
+	public PropertyChangeSupport getPcs() {
33
+		return pcs;
34
+	}
35 35
 
36 36
 	public String getId() {
37 37
 		return id;

src/main/java/fr/insa/clavardator/users/UserInformation.java → lib/src/main/java/fr/insa/clavardator/lib/users/UserInformation.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.users;
1
+package fr.insa.clavardator.lib.users;
2 2
 
3 3
 import java.io.Serializable;
4 4
 

src/main/java/fr/insa/clavardator/util/ErrorCallback.java → lib/src/main/java/fr/insa/clavardator/lib/util/ErrorCallback.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.util;
1
+package fr.insa.clavardator.lib.util;
2 2
 
3 3
 public interface ErrorCallback {
4 4
 	void onError(Exception e);

src/main/java/fr/insa/clavardator/util/Log.java → lib/src/main/java/fr/insa/clavardator/lib/util/Log.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.util;
1
+package fr.insa.clavardator.lib.util;
2 2
 
3 3
 import org.jetbrains.annotations.Nullable;
4 4
 

src/main/java/fr/insa/clavardator/util/ParametrizedCallback.java → lib/src/main/java/fr/insa/clavardator/lib/util/ParametrizedCallback.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.util;
1
+package fr.insa.clavardator.lib.util;
2 2
 
3 3
 public interface ParametrizedCallback<T> {
4 4
 	void call(T param);

src/main/java/fr/insa/clavardator/util/SimpleCallback.java → lib/src/main/java/fr/insa/clavardator/lib/util/SimpleCallback.java View File

@@ -1,4 +1,4 @@
1
-package fr.insa.clavardator.util;
1
+package fr.insa.clavardator.lib.util;
2 2
 
3 3
 public interface SimpleCallback {
4 4
 	void call();

+ 2
- 1
settings.gradle View File

@@ -1,2 +1,3 @@
1 1
 rootProject.name = 'clavardator'
2
-
2
+include 'client'
3
+include 'lib'

+ 0
- 7
src/main/java/fr/insa/clavardator/ui/UserSelectedEvent.java View File

@@ -1,7 +0,0 @@
1
-package fr.insa.clavardator.ui;
2
-
3
-import fr.insa.clavardator.users.PeerUser;
4
-
5
-public interface UserSelectedEvent {
6
-	void onSelected(PeerUser user);
7
-}

Loading…
Cancel
Save