Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67cf12b48f |
3
.idea/.gitignore
vendored
|
|
@ -1,3 +0,0 @@
|
||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
||||||
<exclude-output />
|
|
||||||
<content url="file://$MODULE_DIR$" />
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="13" project-jdk-type="JavaSDK" />
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/ChatApp-AL-NM.iml" filepath="$PROJECT_DIR$/.idea/ChatApp-AL-NM.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"BaseDeDonnesURL" : "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/tp_servlet_006?",
|
|
||||||
"BaseDeDonnesLogin" : "tp_servlet_006",
|
|
||||||
"BaseDeDonneesMDP" : "baePh9ei",
|
|
||||||
"ServeurURL" : "https://srv-gei-tomcat.insa-toulouse.fr/Server_AL_NM/"
|
|
||||||
|
|
||||||
}
|
|
||||||
BIN
Conception/Class diagram/Class Diagram.png
Normal file
|
After Width: | Height: | Size: 187 KiB |
BIN
Conception/Class diagram/MVC Class Diagram.png
Normal file
|
After Width: | Height: | Size: 196 KiB |
|
After Width: | Height: | Size: 44 KiB |
BIN
Conception/Sequence diagram/Déconnexion.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
Conception/Sequence diagram/Main.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
Conception/Sequence diagram/Modification Pseudonyme.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
Conception/Sequence diagram/Réduction de l'agent.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
Conception/Sequence diagram/Session de clavardage .png
Normal file
|
After Width: | Height: | Size: 149 KiB |
BIN
Conception/State Machine Diagram/Machine a etat Chatapp.png
Normal file
|
After Width: | Height: | Size: 199 KiB |
|
Before Width: | Height: | Size: 563 KiB After Width: | Height: | Size: 563 KiB |
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<classpath>
|
|
||||||
<classpathentry kind="src" path=""/>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="module" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="lib" path="mysql-connector-java-8.0.22.jar"/>
|
|
||||||
<classpathentry kind="output" path="bin"/>
|
|
||||||
</classpath>
|
|
||||||
1
Implementation/bin/.gitignore
vendored
|
|
@ -1 +0,0 @@
|
||||||
/bin/
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>Implementation</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
eclipse.preferences.version=1
|
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=13
|
|
||||||
org.eclipse.jdt.core.compiler.compliance=13
|
|
||||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
|
||||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
|
||||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
|
||||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
|
||||||
org.eclipse.jdt.core.compiler.release=enabled
|
|
||||||
org.eclipse.jdt.core.compiler.source=13
|
|
||||||
|
Before Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<classpath>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
|
||||||
<classpathentry kind="src" path="src/main/java"/>
|
|
||||||
<classpathentry kind="lib" path="gradle/wrapper/gradle-wrapper.jar"/>
|
|
||||||
<classpathentry kind="output" path="build/classes/java/main"/>
|
|
||||||
</classpath>
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
<component name="ArtifactManager">
|
<component name="ArtifactManager">
|
||||||
<artifact type="jar" name="chatapp">
|
<artifact type="jar" name="chatapp">
|
||||||
<output-path>$PROJECT_DIR$/out/artifacts/chatapp</output-path>
|
<output-path>$PROJECT_DIR$/out/artifacts/chatapp</output-path>
|
||||||
<root id="archive" name="chatapp.jar">
|
<root id="archive" name="chatapp.jar" />
|
||||||
<element id="directory" name="META-INF">
|
|
||||||
<element id="file-copy" path="$PROJECT_DIR$/src/main/resources/META-INF/MANIFEST.MF" />
|
|
||||||
</element>
|
|
||||||
</root>
|
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
<component name="ArtifactManager">
|
|
||||||
<artifact type="jar" name="chatapp:jar">
|
|
||||||
<output-path>$PROJECT_DIR$/out/artifacts/chatapp_jar</output-path>
|
|
||||||
<root id="archive" name="chatapp.jar">
|
|
||||||
<element id="directory" name="META-INF">
|
|
||||||
<element id="file-copy" path="$PROJECT_DIR$/src/resources/META-INF/MANIFEST.MF" />
|
|
||||||
</element>
|
|
||||||
<element id="library" level="project" name="Gradle: com.google.protobuf:protobuf-java:3.11.4" />
|
|
||||||
<element id="library" level="project" name="Gradle: mysql:mysql-connector-java:8.0.22" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.apiguardian:apiguardian-api:1.1.0" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.junit.jupiter:junit-jupiter-api:5.6.0" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.junit.jupiter:junit-jupiter-engine:5.6.0" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.junit.platform:junit-platform-commons:1.6.0" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.junit.platform:junit-platform-engine:1.6.0" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-base:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-base:win:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-controls:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-controls:win:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-fxml:win:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-graphics:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-graphics:linux:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-graphics:mac:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.openjfx:javafx-graphics:win:11.0.2" />
|
|
||||||
<element id="library" level="project" name="Gradle: org.opentest4j:opentest4j:1.2.0" />
|
|
||||||
<element id="library" level="project" name="lib" />
|
|
||||||
<element id="library" level="project" name="mysql-connector-java-8.0.22" />
|
|
||||||
</root>
|
|
||||||
</artifact>
|
|
||||||
</component>
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
<component name="ArtifactManager">
|
|
||||||
<artifact type="jar" name="chatapp.main:jar">
|
|
||||||
<output-path>$PROJECT_DIR$/out/artifacts/chatapp_main_jar</output-path>
|
|
||||||
<root id="archive" name="chatapp.main.jar">
|
|
||||||
<element id="module-output" name="chatapp.main" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-controls/11.0.2/6c763707769c18adce406904c771c2ad1fcc370b/javafx-controls-11.0.2-win.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/mysql/mysql-connector-java/8.0.22/ec8bfce16c8bd18d6cb598b1147aa145be1408f/mysql-connector-java-8.0.22.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/11.0.2/ef4c34f0ca77cd99100b76c2ccf1dce383572bb1/javafx-graphics-11.0.2-linux.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/11.0.2/e522eb4ea422eceeee207b1c266ba3db19b2343a/javafx-graphics-11.0.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java/3.11.4/7ec0925cc3aef0335bbc7d57edfd42b0f86f8267/protobuf-java-3.11.4.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-controls/11.0.2/4ab633cf1eea60f76e2ae9905aedac862da88b08/javafx-controls-11.0.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-base/11.0.2/1852e57b8cf9a9b6488c33605bccd5d06ff210e1/javafx-base-11.0.2-win.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/11.0.2/c1d99ae5bc48e7173f4514a941d27d8f8c972c71/javafx-graphics-11.0.2-mac.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-fxml/11.0.2/b3242e4c031558574de2a1da685bb5fcdbb8a530/javafx-fxml-11.0.2-win.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-base/11.0.2/7fb2e4a8528ec9e434a9ac9ee98b39af79e6dcb8/javafx-base-11.0.2.jar" path-in-jar="/" />
|
|
||||||
<element id="extracted-dir" path="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.openjfx/javafx-graphics/11.0.2/20459ea2cf714942bcbeb78a7f70ba3531dc1a44/javafx-graphics-11.0.2-win.jar" path-in-jar="/" />
|
|
||||||
<element id="artifact" artifact-name="chatapp" />
|
|
||||||
</root>
|
|
||||||
</artifact>
|
|
||||||
</component>
|
|
||||||
|
|
@ -1,13 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
<component name="FrameworkDetectionExcludesConfiguration">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="13" project-jdk-type="JavaSDK">
|
||||||
<file type="web" url="file://$PROJECT_DIR$" />
|
|
||||||
</component>
|
|
||||||
<component name="JavadocGenerationManager">
|
|
||||||
<option name="OUTPUT_DIRECTORY" value="$PROJECT_DIR$/../../Javadoc" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="13" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>chatapp</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'application'
|
id 'application'
|
||||||
id 'com.github.johnrengelman.shadow' version '6.1.0'
|
|
||||||
id 'org.openjfx.javafxplugin' version '0.0.9'
|
id 'org.openjfx.javafxplugin' version '0.0.9'
|
||||||
id 'org.beryx.jlink' version '2.15.1'
|
id 'org.beryx.jlink' version '2.15.1'
|
||||||
}
|
}
|
||||||
|
|
@ -22,7 +21,6 @@ javafx {
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
|
|
||||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
|
||||||
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.22'
|
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.22'
|
||||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
|
||||||
|
|
@ -43,14 +41,4 @@ jlink {
|
||||||
|
|
||||||
test {
|
test {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
|
||||||
manifest {
|
|
||||||
attributes "Main-Class": "chatapp.Launcher"
|
|
||||||
}
|
|
||||||
|
|
||||||
from {
|
|
||||||
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: chatapp.Launcher
|
|
||||||
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<?import javafx.scene.control.Button?>
|
<?import javafx.scene.control.Button?>
|
||||||
<?import javafx.scene.control.RadioButton?>
|
|
||||||
<?import javafx.scene.control.TextField?>
|
<?import javafx.scene.control.TextField?>
|
||||||
<?import javafx.scene.control.ToggleGroup?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
<?import javafx.scene.layout.GridPane?>
|
<?import javafx.scene.layout.GridPane?>
|
||||||
|
|
@ -26,34 +24,24 @@
|
||||||
</Text>
|
</Text>
|
||||||
</children>
|
</children>
|
||||||
</HBox>
|
</HBox>
|
||||||
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="598.0" style="-fx-background-color: #3299a8;">
|
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
||||||
<children>
|
<children>
|
||||||
<GridPane alignment="CENTER" prefHeight="275.0" prefWidth="448.0">
|
<GridPane alignment="CENTER" prefHeight="302.0" prefWidth="279.0">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints maxHeight="254.19998168945312" minHeight="10.0" prefHeight="111.80001831054688" vgrow="SOMETIMES" />
|
<RowConstraints maxHeight="254.19998168945312" minHeight="10.0" prefHeight="123.19998779296876" vgrow="SOMETIMES" />
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="69.39998168945314" vgrow="SOMETIMES" />
|
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="107.20001220703125" vgrow="SOMETIMES" />
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="33.60002441406249" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="27.400000000000034" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="79.39999999999998" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<TextField fx:id="pseudonyme" prefHeight="26.0" prefWidth="447.0" promptText="Pseudonyme" GridPane.columnSpan="3" />
|
<TextField fx:id="pseudonyme" prefHeight="26.0" prefWidth="447.0" promptText="Pseudonyme" GridPane.columnSpan="2" />
|
||||||
<Button fx:id="connexionButton" alignment="CENTER" contentDisplay="CENTER" mnemonicParsing="false" onAction="#connexion" prefHeight="38.0" prefWidth="453.0" style="-fx-background-color: #b0c926;" text="Connexion" textFill="#3299a8" GridPane.columnSpan="3" GridPane.rowIndex="1">
|
<Button fx:id="connexionButton" alignment="CENTER" contentDisplay="CENTER" mnemonicParsing="false" onAction="#connexion" prefHeight="38.0" prefWidth="287.0" style="-fx-background-color: #b0c926;" text="Connexion" textFill="#3299a8" GridPane.columnSpan="2" GridPane.rowIndex="1">
|
||||||
<font>
|
<font>
|
||||||
<Font name="OCR A Extended" size="27.0" />
|
<Font name="OCR A Extended" size="27.0" />
|
||||||
</font>
|
</font>
|
||||||
</Button>
|
</Button>
|
||||||
<RadioButton fx:id="remoteButton" mnemonicParsing="false" selected="true" text="Connexion distante" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
|
||||||
<toggleGroup>
|
|
||||||
<ToggleGroup fx:id="lieu" />
|
|
||||||
</toggleGroup>
|
|
||||||
</RadioButton>
|
|
||||||
<RadioButton fx:id="localButton" mnemonicParsing="false" text="Connexion locale" toggleGroup="$lieu" GridPane.columnIndex="1" GridPane.rowIndex="2" />
|
|
||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</children>
|
</children>
|
||||||
|
|
|
||||||
|
|
@ -1,185 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copyright 2015 the original author or authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## chatapp start up script for UN*X
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
PRG="$0"
|
|
||||||
# Need this for relative symlinks.
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG=`dirname "$PRG"`"/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
SAVED="`pwd`"
|
|
||||||
cd "`dirname \"$PRG\"`/.." >/dev/null
|
|
||||||
APP_HOME="`pwd -P`"
|
|
||||||
cd "$SAVED" >/dev/null
|
|
||||||
|
|
||||||
APP_NAME="chatapp"
|
|
||||||
APP_BASE_NAME=`basename "$0"`
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and CHATAPP_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS=""
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD="maximum"
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN* )
|
|
||||||
cygwin=true
|
|
||||||
;;
|
|
||||||
Darwin* )
|
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
NONSTOP* )
|
|
||||||
nonstop=true
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/lib/chatapp-1.0-SNAPSHOT.jar:$APP_HOME/lib/json-simple-1.1.1.jar:$APP_HOME/lib/mysql-connector-java-8.0.22.jar:$APP_HOME/lib/javafx-fxml-11.0.2-win.jar:$APP_HOME/lib/javafx-controls-11.0.2-win.jar:$APP_HOME/lib/javafx-controls-11.0.2.jar:$APP_HOME/lib/javafx-graphics-11.0.2-win.jar:$APP_HOME/lib/javafx-graphics-11.0.2-linux.jar:$APP_HOME/lib/javafx-graphics-11.0.2-mac.jar:$APP_HOME/lib/javafx-graphics-11.0.2.jar:$APP_HOME/lib/javafx-base-11.0.2-win.jar:$APP_HOME/lib/javafx-base-11.0.2.jar:$APP_HOME/lib/junit-4.10.jar:$APP_HOME/lib/protobuf-java-3.11.4.jar:$APP_HOME/lib/hamcrest-core-1.1.jar
|
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="java"
|
|
||||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
|
||||||
MAX_FD="$MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
ulimit -n $MAX_FD
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Darwin, add options to specify how the application appears in the dock
|
|
||||||
if $darwin; then
|
|
||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
|
||||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
|
||||||
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
|
||||||
SEP=""
|
|
||||||
for dir in $ROOTDIRSRAW ; do
|
|
||||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
|
||||||
SEP="|"
|
|
||||||
done
|
|
||||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
|
||||||
# Add a user-defined pattern to the cygpath arguments
|
|
||||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
|
||||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
|
||||||
fi
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
i=0
|
|
||||||
for arg in "$@" ; do
|
|
||||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
|
||||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
|
||||||
|
|
||||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
|
||||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
|
||||||
else
|
|
||||||
eval `echo args$i`="\"$arg\""
|
|
||||||
fi
|
|
||||||
i=`expr $i + 1`
|
|
||||||
done
|
|
||||||
case $i in
|
|
||||||
0) set -- ;;
|
|
||||||
1) set -- "$args0" ;;
|
|
||||||
2) set -- "$args0" "$args1" ;;
|
|
||||||
3) set -- "$args0" "$args1" "$args2" ;;
|
|
||||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
|
||||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
|
||||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
|
||||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
|
||||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
|
||||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Escape application args
|
|
||||||
save () {
|
|
||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
|
||||||
echo " "
|
|
||||||
}
|
|
||||||
APP_ARGS=`save "$@"`
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $CHATAPP_OPTS -classpath "\"$CLASSPATH\"" chatapp.Launcher "$APP_ARGS"
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
||||||
|
|
@ -1,89 +0,0 @@
|
||||||
@rem
|
|
||||||
@rem Copyright 2015 the original author or authors.
|
|
||||||
@rem
|
|
||||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
@rem you may not use this file except in compliance with the License.
|
|
||||||
@rem You may obtain a copy of the License at
|
|
||||||
@rem
|
|
||||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
@rem
|
|
||||||
@rem Unless required by applicable law or agreed to in writing, software
|
|
||||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
@rem See the License for the specific language governing permissions and
|
|
||||||
@rem limitations under the License.
|
|
||||||
@rem
|
|
||||||
|
|
||||||
@if "%DEBUG%" == "" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem chatapp startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%..
|
|
||||||
|
|
||||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
||||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and CHATAPP_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS=
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if "%ERRORLEVEL%" == "0" goto execute
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\lib\chatapp-1.0-SNAPSHOT.jar;%APP_HOME%\lib\json-simple-1.1.1.jar;%APP_HOME%\lib\mysql-connector-java-8.0.22.jar;%APP_HOME%\lib\javafx-fxml-11.0.2-win.jar;%APP_HOME%\lib\javafx-controls-11.0.2-win.jar;%APP_HOME%\lib\javafx-controls-11.0.2.jar;%APP_HOME%\lib\javafx-graphics-11.0.2-win.jar;%APP_HOME%\lib\javafx-graphics-11.0.2-linux.jar;%APP_HOME%\lib\javafx-graphics-11.0.2-mac.jar;%APP_HOME%\lib\javafx-graphics-11.0.2.jar;%APP_HOME%\lib\javafx-base-11.0.2-win.jar;%APP_HOME%\lib\javafx-base-11.0.2.jar;%APP_HOME%\lib\junit-4.10.jar;%APP_HOME%\lib\protobuf-java-3.11.4.jar;%APP_HOME%\lib\hamcrest-core-1.1.jar
|
|
||||||
|
|
||||||
|
|
||||||
@rem Execute chatapp
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CHATAPP_OPTS% -classpath "%CLASSPATH%" chatapp.Launcher %*
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable CHATAPP_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
if not "" == "%CHATAPP_EXIT_CONSOLE%" exit 1
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
||||||
|
|
@ -1,183 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# Copyright 2015 the original author or authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
##
|
|
||||||
## chatapp start up script for UN*X
|
|
||||||
##
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
# Attempt to set APP_HOME
|
|
||||||
# Resolve links: $0 may be a link
|
|
||||||
PRG="$0"
|
|
||||||
# Need this for relative symlinks.
|
|
||||||
while [ -h "$PRG" ] ; do
|
|
||||||
ls=`ls -ld "$PRG"`
|
|
||||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
|
||||||
if expr "$link" : '/.*' > /dev/null; then
|
|
||||||
PRG="$link"
|
|
||||||
else
|
|
||||||
PRG=`dirname "$PRG"`"/$link"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
SAVED="`pwd`"
|
|
||||||
cd "`dirname \"$PRG\"`/.." >/dev/null
|
|
||||||
APP_HOME="`pwd -P`"
|
|
||||||
cd "$SAVED" >/dev/null
|
|
||||||
|
|
||||||
APP_NAME="chatapp"
|
|
||||||
APP_BASE_NAME=`basename "$0"`
|
|
||||||
|
|
||||||
# Add default JVM options here. You can also use JAVA_OPTS and CHATAPP_OPTS to pass JVM options to this script.
|
|
||||||
DEFAULT_JVM_OPTS=""
|
|
||||||
|
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
|
||||||
MAX_FD="maximum"
|
|
||||||
|
|
||||||
warn () {
|
|
||||||
echo "$*"
|
|
||||||
}
|
|
||||||
|
|
||||||
die () {
|
|
||||||
echo
|
|
||||||
echo "$*"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# OS specific support (must be 'true' or 'false').
|
|
||||||
cygwin=false
|
|
||||||
msys=false
|
|
||||||
darwin=false
|
|
||||||
nonstop=false
|
|
||||||
case "`uname`" in
|
|
||||||
CYGWIN* )
|
|
||||||
cygwin=true
|
|
||||||
;;
|
|
||||||
Darwin* )
|
|
||||||
darwin=true
|
|
||||||
;;
|
|
||||||
MINGW* )
|
|
||||||
msys=true
|
|
||||||
;;
|
|
||||||
NONSTOP* )
|
|
||||||
nonstop=true
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CLASSPATH=$APP_HOME/lib/chatapp-1.0-SNAPSHOT-all.jar
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
|
||||||
# IBM's JDK on AIX uses strange locations for the executables
|
|
||||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
|
||||||
else
|
|
||||||
JAVACMD="$JAVA_HOME/bin/java"
|
|
||||||
fi
|
|
||||||
if [ ! -x "$JAVACMD" ] ; then
|
|
||||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
JAVACMD="java"
|
|
||||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
|
|
||||||
Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
location of your Java installation."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Increase the maximum file descriptors if we can.
|
|
||||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
|
||||||
MAX_FD_LIMIT=`ulimit -H -n`
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
|
||||||
MAX_FD="$MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
ulimit -n $MAX_FD
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Darwin, add options to specify how the application appears in the dock
|
|
||||||
if $darwin; then
|
|
||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
|
||||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
|
||||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
|
||||||
SEP=""
|
|
||||||
for dir in $ROOTDIRSRAW ; do
|
|
||||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
|
||||||
SEP="|"
|
|
||||||
done
|
|
||||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
|
||||||
# Add a user-defined pattern to the cygpath arguments
|
|
||||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
|
||||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
|
||||||
fi
|
|
||||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
|
||||||
i=0
|
|
||||||
for arg in "$@" ; do
|
|
||||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
|
||||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
|
||||||
|
|
||||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
|
||||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
|
||||||
else
|
|
||||||
eval `echo args$i`="\"$arg\""
|
|
||||||
fi
|
|
||||||
i=`expr $i + 1`
|
|
||||||
done
|
|
||||||
case $i in
|
|
||||||
0) set -- ;;
|
|
||||||
1) set -- "$args0" ;;
|
|
||||||
2) set -- "$args0" "$args1" ;;
|
|
||||||
3) set -- "$args0" "$args1" "$args2" ;;
|
|
||||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
|
||||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
|
||||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
|
||||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
|
||||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
|
||||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Escape application args
|
|
||||||
save () {
|
|
||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
|
||||||
echo " "
|
|
||||||
}
|
|
||||||
APP_ARGS=`save "$@"`
|
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $CHATAPP_OPTS -jar "\"$CLASSPATH\"" "$APP_ARGS"
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
@if "%DEBUG%" == "" @echo off
|
|
||||||
@rem ##########################################################################
|
|
||||||
@rem
|
|
||||||
@rem chatapp startup script for Windows
|
|
||||||
@rem
|
|
||||||
@rem ##########################################################################
|
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
|
||||||
if "%DIRNAME%" == "" set DIRNAME=.
|
|
||||||
set APP_BASE_NAME=%~n0
|
|
||||||
set APP_HOME=%DIRNAME%..
|
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and CHATAPP_OPTS to pass JVM options to this script.
|
|
||||||
set DEFAULT_JVM_OPTS=
|
|
||||||
|
|
||||||
@rem Find java.exe
|
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
|
||||||
if "%ERRORLEVEL%" == "0" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto init
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
|
||||||
echo.
|
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
|
||||||
echo location of your Java installation.
|
|
||||||
|
|
||||||
goto fail
|
|
||||||
|
|
||||||
:init
|
|
||||||
@rem Get command-line arguments, handling Windows variants
|
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
|
||||||
|
|
||||||
:win9xME_args
|
|
||||||
@rem Slurp the command line arguments.
|
|
||||||
set CMD_LINE_ARGS=
|
|
||||||
set _SKIP=2
|
|
||||||
|
|
||||||
:win9xME_args_slurp
|
|
||||||
if "x%~1" == "x" goto execute
|
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
|
||||||
|
|
||||||
:execute
|
|
||||||
@rem Setup the command line
|
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\lib\chatapp-1.0-SNAPSHOT-all.jar
|
|
||||||
|
|
||||||
@rem Execute chatapp
|
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %CHATAPP_OPTS% -jar "%CLASSPATH%" %CMD_LINE_ARGS%
|
|
||||||
|
|
||||||
:end
|
|
||||||
@rem End local scope for the variables with windows NT shell
|
|
||||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
|
||||||
|
|
||||||
:fail
|
|
||||||
rem Set variable CHATAPP_EXIT_CONSOLE if you need the _script_ return code instead of
|
|
||||||
rem the _cmd.exe /c_ return code!
|
|
||||||
if not "" == "%CHATAPP_EXIT_CONSOLE%" exit 1
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:mainEnd
|
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
|
||||||
|
|
||||||
:omega
|
|
||||||
|
|
@ -1,23 +1,27 @@
|
||||||
|
chatapp/Model/MessageHorodate.java
|
||||||
|
chatapp.Model.MessageHorodate
|
||||||
|
chatapp/Model/ListUtilisateurs.java
|
||||||
|
chatapp.Model.ListUtilisateurs
|
||||||
|
chatapp/Model/Utilisateur.java
|
||||||
|
chatapp.Model.Utilisateur
|
||||||
chatapp/Protocol/RunnerEcouteTCP.java
|
chatapp/Protocol/RunnerEcouteTCP.java
|
||||||
chatapp.Protocol.RunnerEcouteTCP
|
chatapp.Protocol.RunnerEcouteTCP
|
||||||
chatapp/View/FenetreSession.java
|
chatapp/View/FenetreSession.java
|
||||||
chatapp.View.FenetreSession
|
chatapp.View.FenetreSession
|
||||||
chatapp/Protocol/HttpEchange.java
|
chatapp.View.FenetreSession$1
|
||||||
chatapp.Protocol.HttpEchange
|
chatapp/Controller/ChatApp.java
|
||||||
|
chatapp.Controller.ChatApp
|
||||||
chatapp/Model/DataBase.java
|
chatapp/Model/DataBase.java
|
||||||
chatapp.Model.DataBase
|
chatapp.Model.DataBase
|
||||||
chatapp/View/ChangementPseudo.java
|
chatapp/View/ChangementPseudo.java
|
||||||
chatapp.View.ChangementPseudo
|
chatapp.View.ChangementPseudo
|
||||||
chatapp/View/View_Menu.java
|
chatapp/Protocol/RunnerEcouteUDP.java
|
||||||
chatapp.View.View_Menu
|
chatapp.Protocol.RunnerEcouteUDP
|
||||||
chatapp/Launcher.java
|
chatapp/Launcher.java
|
||||||
chatapp.Launcher
|
chatapp.Launcher
|
||||||
chatapp/Model/ListUtilisateurs.java
|
chatapp/Protocol/UDPEchange.java
|
||||||
chatapp.Model.ListUtilisateurs
|
chatapp.Protocol.RunnerUDP
|
||||||
chatapp/View/DemarrerSession.java
|
chatapp.Protocol.UDPEchange
|
||||||
chatapp.View.DemarrerSession
|
|
||||||
chatapp/Model/MessageHorodate.java
|
|
||||||
chatapp.Model.MessageHorodate
|
|
||||||
chatapp/Main.java
|
chatapp/Main.java
|
||||||
chatapp.Main
|
chatapp.Main
|
||||||
chatapp/View/Clavardage.java
|
chatapp/View/Clavardage.java
|
||||||
|
|
@ -29,12 +33,7 @@ chatapp/View/ConnexionScreen.java
|
||||||
chatapp.View.ConnexionScreen
|
chatapp.View.ConnexionScreen
|
||||||
chatapp/View/View_Utilisateurs.java
|
chatapp/View/View_Utilisateurs.java
|
||||||
chatapp.View.View_Utilisateurs
|
chatapp.View.View_Utilisateurs
|
||||||
chatapp/Model/Utilisateur.java
|
chatapp/View/View_Menu.java
|
||||||
chatapp.Model.Utilisateur
|
chatapp.View.View_Menu
|
||||||
chatapp/Protocol/UDPEchange.java
|
chatapp/View/DemarrerSession.java
|
||||||
chatapp.Protocol.RunnerUDP
|
chatapp.View.DemarrerSession
|
||||||
chatapp.Protocol.UDPEchange
|
|
||||||
chatapp/Controller/ChatApp.java
|
|
||||||
chatapp.Controller.ChatApp
|
|
||||||
chatapp/Protocol/RunnerEcouteUDP.java
|
|
||||||
chatapp.Protocol.RunnerEcouteUDP
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: chatapp.Launcher
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: chatapp.Launcher
|
|
||||||
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
@startuml
|
|
||||||
|
|
||||||
title __CHATAPP's Component Diagram__\n
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
right footer
|
|
||||||
|
|
||||||
|
|
||||||
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
|
|
||||||
For more information about this tool, please contact philippe.mesmeur@gmail.com
|
|
||||||
endfooter
|
|
||||||
|
|
||||||
@enduml
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"BaseDeDonnesURL" : "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/tp_servlet_006?",
|
|
||||||
"BaseDeDonnesLogin" : "tp_servlet_006",
|
|
||||||
"BaseDeDonneesMDP" : "baePh9ei",
|
|
||||||
"ServeurURL" : "https://srv-gei-tomcat.insa-toulouse.fr/Server_AL_NM/"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: chatapp.Launcher
|
|
||||||
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.control.Button?>
|
|
||||||
<?import javafx.scene.control.RadioButton?>
|
|
||||||
<?import javafx.scene.control.TextField?>
|
|
||||||
<?import javafx.scene.control.ToggleGroup?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
|
||||||
<?import javafx.scene.layout.GridPane?>
|
|
||||||
<?import javafx.scene.layout.HBox?>
|
|
||||||
<?import javafx.scene.layout.RowConstraints?>
|
|
||||||
<?import javafx.scene.layout.VBox?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
|
|
||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="chatapp.View.ConnexionScreen">
|
|
||||||
<children>
|
|
||||||
<VBox prefHeight="400.0" prefWidth="600.0">
|
|
||||||
<children>
|
|
||||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="ChatApp">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="48.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="598.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<GridPane alignment="CENTER" prefHeight="275.0" prefWidth="448.0">
|
|
||||||
<columnConstraints>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
</columnConstraints>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints maxHeight="254.19998168945312" minHeight="10.0" prefHeight="111.80001831054688" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="69.39998168945314" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="33.60002441406249" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="27.400000000000034" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="79.39999999999998" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
|
||||||
<children>
|
|
||||||
<TextField fx:id="pseudonyme" prefHeight="26.0" prefWidth="447.0" promptText="Pseudonyme" GridPane.columnSpan="3" />
|
|
||||||
<Button fx:id="connexionButton" alignment="CENTER" contentDisplay="CENTER" mnemonicParsing="false" onAction="#connexion" prefHeight="38.0" prefWidth="453.0" style="-fx-background-color: #b0c926;" text="Connexion" textFill="#3299a8" GridPane.columnSpan="3" GridPane.rowIndex="1">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="27.0" />
|
|
||||||
</font>
|
|
||||||
</Button>
|
|
||||||
<RadioButton fx:id="remoteButton" mnemonicParsing="false" selected="true" text="Connexion distante" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
|
||||||
<toggleGroup>
|
|
||||||
<ToggleGroup fx:id="lieu" />
|
|
||||||
</toggleGroup>
|
|
||||||
</RadioButton>
|
|
||||||
<RadioButton fx:id="localButton" mnemonicParsing="false" text="Connexion locale" toggleGroup="$lieu" GridPane.columnIndex="1" GridPane.rowIndex="2" />
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" layoutX="10.0" layoutY="10.0" prefHeight="0.0" prefWidth="600.0" style="-fx-background-color: #3299a8;" />
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.control.Button?>
|
|
||||||
<?import javafx.scene.control.TextField?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
|
||||||
<?import javafx.scene.layout.GridPane?>
|
|
||||||
<?import javafx.scene.layout.HBox?>
|
|
||||||
<?import javafx.scene.layout.RowConstraints?>
|
|
||||||
<?import javafx.scene.layout.VBox?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
|
|
||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="chatapp.View.ChangementPseudo">
|
|
||||||
<children>
|
|
||||||
<VBox prefHeight="400.0" prefWidth="600.0">
|
|
||||||
<children>
|
|
||||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="Changement Pseudo">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="48.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<GridPane>
|
|
||||||
<columnConstraints>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
</columnConstraints>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
|
||||||
<children>
|
|
||||||
<Button fx:id="validationButton" alignment="CENTER" contentDisplay="CENTER" mnemonicParsing="false" onAction="#validerPseudo" prefHeight="38.0" prefWidth="287.0" style="-fx-background-color: #b0c926;" text="Valider" textFill="#3299a8" GridPane.columnSpan="2" GridPane.rowIndex="2">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="27.0" />
|
|
||||||
</font>
|
|
||||||
</Button>
|
|
||||||
<TextField fx:id="pseudonyme" prefHeight="26.0" prefWidth="447.0" promptText="Pseudonyme" GridPane.columnSpan="2" GridPane.rowIndex="1" />
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="Ancien :">
|
|
||||||
<font>
|
|
||||||
<Font size="19.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
<Text fx:id="pseudonyme1" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="Pseudo" GridPane.columnIndex="1">
|
|
||||||
<font>
|
|
||||||
<Font size="19.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="BOTTOM_RIGHT" prefHeight="63.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<Button fx:id="MenuButton" alignment="CENTER" mnemonicParsing="false" onAction="#retourMenu" style="-fx-background-color: #b0c926;" text="Retour au menu" textFill="WHITE">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="18.0" />
|
|
||||||
</font>
|
|
||||||
</Button>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.control.Button?>
|
|
||||||
<?import javafx.scene.control.TextArea?>
|
|
||||||
<?import javafx.scene.control.TextField?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
|
||||||
<?import javafx.scene.layout.GridPane?>
|
|
||||||
<?import javafx.scene.layout.HBox?>
|
|
||||||
<?import javafx.scene.layout.RowConstraints?>
|
|
||||||
<?import javafx.scene.layout.VBox?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
|
|
||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="chatapp.View.Clavardage">
|
|
||||||
<children>
|
|
||||||
<VBox prefHeight="400.0" prefWidth="600.0">
|
|
||||||
<children>
|
|
||||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="Session de Clavardage">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="48.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<GridPane prefHeight="282.0" prefWidth="402.0">
|
|
||||||
<columnConstraints>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
</columnConstraints>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints maxHeight="257.0" minHeight="10.0" prefHeight="44.0" vgrow="NEVER" />
|
|
||||||
<RowConstraints maxHeight="257.0" minHeight="10.0" prefHeight="228.0" vgrow="NEVER" />
|
|
||||||
<RowConstraints maxHeight="257.0" minHeight="10.0" prefHeight="42.0" vgrow="NEVER" />
|
|
||||||
</rowConstraints>
|
|
||||||
<children>
|
|
||||||
<GridPane GridPane.rowIndex="2">
|
|
||||||
<columnConstraints>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="327.0" minWidth="10.0" prefWidth="327.0" />
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" maxWidth="156.0" minWidth="10.0" prefWidth="75.0" />
|
|
||||||
</columnConstraints>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints />
|
|
||||||
<RowConstraints maxHeight="79.0" minHeight="0.0" prefHeight="60.0" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
|
||||||
<children>
|
|
||||||
<TextField fx:id="AEnvoyer" prefHeight="26.0" prefWidth="447.0" promptText="Enter Text" GridPane.rowIndex="1" />
|
|
||||||
<Button fx:id="EnvoyerButton" mnemonicParsing="false" onAction="#envoyerMessage" prefHeight="27.0" prefWidth="73.0" text="Envoyer" GridPane.columnIndex="1" GridPane.rowIndex="1" />
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
|
||||||
<GridPane prefHeight="34.0" prefWidth="345.0">
|
|
||||||
<columnConstraints>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
<ColumnConstraints halignment="RIGHT" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
</columnConstraints>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
|
||||||
<children>
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="Chat avec : ">
|
|
||||||
<font>
|
|
||||||
<Font size="19.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
<Text fx:id="pseudonyme1" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="Pseudo" textAlignment="CENTER" wrappingWidth="133.16357421875" GridPane.columnIndex="1">
|
|
||||||
<font>
|
|
||||||
<Font size="19.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
<Button fx:id="plusButton" mnemonicParsing="false" onAction="#ajouterMessagesHistorique" style="-fx-background-color: #b0c926;" text="+" textAlignment="RIGHT" textFill="WHITE" GridPane.columnIndex="2">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="16.0" />
|
|
||||||
</font>
|
|
||||||
</Button>
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
|
||||||
<TextArea fx:id="ChatText" prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1" />
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="BOTTOM_RIGHT" prefHeight="63.0" prefWidth="600.0" style="-fx-background-color: #3299a8;" />
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.control.Button?>
|
|
||||||
<?import javafx.scene.control.ComboBox?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
|
||||||
<?import javafx.scene.layout.GridPane?>
|
|
||||||
<?import javafx.scene.layout.HBox?>
|
|
||||||
<?import javafx.scene.layout.RowConstraints?>
|
|
||||||
<?import javafx.scene.layout.VBox?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
|
|
||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="chatapp.View.DemarrerSession">
|
|
||||||
<children>
|
|
||||||
<VBox prefHeight="400.0" prefWidth="600.0">
|
|
||||||
<children>
|
|
||||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="Démarrer Session">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="48.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<GridPane prefHeight="166.0" prefWidth="350.0">
|
|
||||||
<columnConstraints>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
</columnConstraints>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints maxHeight="135.60001220703126" minHeight="10.0" prefHeight="88.20001220703125" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="201.9999984741211" minHeight="10.0" prefHeight="100.79998016357423" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="201.9999984741211" minHeight="10.0" prefHeight="112.80001983642575" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
|
||||||
<children>
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="Choix d'un contact" GridPane.columnSpan="2">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="26.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
<ComboBox fx:id="choixContact" onAction="#demarrerSessionAvec" prefHeight="26.0" prefWidth="355.0" GridPane.columnSpan="2" GridPane.rowIndex="1" />
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="BOTTOM_RIGHT" prefHeight="63.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<Button fx:id="MenuButton" alignment="CENTER" mnemonicParsing="false" onAction="#retourMenu" style="-fx-background-color: #b0c926;" text="Retour au menu" textFill="WHITE">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="18.0" />
|
|
||||||
</font>
|
|
||||||
</Button>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.control.Menu?>
|
|
||||||
<?import javafx.scene.control.MenuBar?>
|
|
||||||
<?import javafx.scene.control.MenuItem?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
|
||||||
<?import javafx.scene.layout.GridPane?>
|
|
||||||
<?import javafx.scene.layout.RowConstraints?>
|
|
||||||
<?import javafx.scene.layout.VBox?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
|
|
||||||
<VBox prefHeight="400.0" prefWidth="640.0" style="-fx-background-color: #3299a8;" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="chatapp.View.View_Menu">
|
|
||||||
<children>
|
|
||||||
<MenuBar prefWidth="640.0" VBox.vgrow="NEVER">
|
|
||||||
<menus>
|
|
||||||
<Menu mnemonicParsing="false" text="Options">
|
|
||||||
<items>
|
|
||||||
<MenuItem fx:id="utilsActifsButton" onAction="#afficherUtilsActifs" mnemonicParsing="false" text="Utilisateurs actifs" />
|
|
||||||
<MenuItem fx:id="demarrerSessionButton" onAction="#demarrerSession" mnemonicParsing="false" text="Démarrer session" />
|
|
||||||
<MenuItem fx:id="changerPseudoButton" onAction="#changerPseudo" mnemonicParsing="false" text="Changer de pseudo" />
|
|
||||||
<MenuItem onAction="#deconnexion" mnemonicParsing="false" text="Déconnexion" />
|
|
||||||
</items>
|
|
||||||
</Menu>
|
|
||||||
</menus>
|
|
||||||
</MenuBar>
|
|
||||||
<AnchorPane maxHeight="-1.0" maxWidth="-1.0" prefHeight="-1.0" prefWidth="-1.0" VBox.vgrow="ALWAYS">
|
|
||||||
<children>
|
|
||||||
<GridPane layoutX="154.0" layoutY="119.0" prefHeight="82.0" prefWidth="392.0">
|
|
||||||
<columnConstraints>
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
</columnConstraints>
|
|
||||||
<rowConstraints>
|
|
||||||
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
|
||||||
<children>
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="Bienvenue">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="30.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
<Text fx:id="pseudonyme" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="Pseudo" GridPane.columnIndex="1">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="30.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
</children>
|
|
||||||
</GridPane>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<?import javafx.scene.control.Button?>
|
|
||||||
<?import javafx.scene.control.ScrollPane?>
|
|
||||||
<?import javafx.scene.control.TextArea?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
|
||||||
<?import javafx.scene.layout.HBox?>
|
|
||||||
<?import javafx.scene.layout.VBox?>
|
|
||||||
<?import javafx.scene.text.Font?>
|
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
|
|
||||||
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="chatapp.View.View_Utilisateurs">
|
|
||||||
<children>
|
|
||||||
<VBox prefHeight="400.0" prefWidth="600.0">
|
|
||||||
<children>
|
|
||||||
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<Text fill="#b0c926" strokeType="OUTSIDE" strokeWidth="0.0" text="Qui est là?">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="48.0" />
|
|
||||||
</font>
|
|
||||||
</Text>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<ScrollPane prefHeight="282.0" prefWidth="202.0">
|
|
||||||
<content>
|
|
||||||
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="267.0" prefWidth="200.0">
|
|
||||||
<children>
|
|
||||||
<TextArea fx:id="ListeUtilisateurs" layoutY="12.0" prefHeight="267.2" prefWidth="200.0" style="-fx-background-color: #3299a8;" text="Aucun utilisateur actif" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="13.0" />
|
|
||||||
</font>
|
|
||||||
</TextArea>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
</content>
|
|
||||||
</ScrollPane>
|
|
||||||
</children>
|
|
||||||
</HBox>
|
|
||||||
<HBox alignment="BOTTOM_RIGHT" layoutX="10.0" layoutY="10.0" prefHeight="63.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
|
||||||
<children>
|
|
||||||
<Button fx:id="MenuButton" alignment="CENTER" mnemonicParsing="false" style="-fx-background-color: #b0c926;" onAction="#retourMenu" text="Retour au menu" textFill="WHITE">
|
|
||||||
<font>
|
|
||||||
<Font name="OCR A Extended" size="18.0" />
|
|
||||||
</font>
|
|
||||||
</Button>
|
|
||||||
</children></HBox>
|
|
||||||
</children>
|
|
||||||
</VBox>
|
|
||||||
</children>
|
|
||||||
</AnchorPane>
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: chatapp.Launcher
|
|
||||||
|
|
||||||
|
|
@ -1,121 +1,65 @@
|
||||||
package chatapp.Controller;
|
package chatapp.Controller;
|
||||||
|
|
||||||
import chatapp.Model.DataBase;
|
import chatapp.Model.*;
|
||||||
import chatapp.Model.ListUtilisateurs;
|
|
||||||
import chatapp.Model.Utilisateur;
|
|
||||||
import chatapp.Protocol.*;
|
import chatapp.Protocol.*;
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import org.json.simple.JSONObject;
|
|
||||||
import org.json.simple.parser.JSONParser;
|
|
||||||
import org.json.simple.parser.ParseException;
|
|
||||||
|
|
||||||
import java.beans.PropertyChangeEvent;
|
import java.beans.PropertyChangeEvent;
|
||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
import java.io.FileReader;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.util.ArrayList;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
/**
|
|
||||||
* <p> Controller de l'application. C'est par cette méthode que chaque connexion et chaque session sont entamées.
|
|
||||||
* <br>Les différents attributs sont:
|
|
||||||
* <br> - actifsUsers: qui est la liste des utilisateurs actifs actuellement et connus par l'application
|
|
||||||
* <br> - me: qui est l'instance de la classe Utilisateur représentant l'utilisateur se connectant via cette instance de chatapp
|
|
||||||
* <br> - main: l'application de l'interface graphique qui s'occupe d'instancier chatapp
|
|
||||||
* <br> - runnerEcouteTCP: instance de runnerEcouteTCP, Thread permettant de recevoir des demandes de clavardage
|
|
||||||
* <br> - runnerEcouteUDP: instance de runnerEcouteUDP; Thread permettant de communiquer en UDP pour recevoir les demandes de connexion, deconnexion, changements de pseudo et leurs réponses associées
|
|
||||||
* <br> - connecte: booleen indiquant si l'on est connecté sur le reseau ou non
|
|
||||||
* <br> - db: instance permettant de se connecter à la base de donnees centralisée
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class ChatApp implements PropertyChangeListener {
|
public class ChatApp implements PropertyChangeListener {
|
||||||
|
|
||||||
/* Liste des utilisateurs actifs */
|
/* Liste des utilisateurs actifs */
|
||||||
private ListUtilisateurs actifUsers ;
|
private ListUtilisateurs actifUsers ;
|
||||||
|
|
||||||
/* TRUE si l'utilisateur est externe au reseau FALSE s'il est interne */
|
|
||||||
private boolean isExterne;
|
|
||||||
|
|
||||||
private HttpEchange externeEchange;
|
|
||||||
|
|
||||||
/* ChatApp est associe a un utilisateur */
|
/* ChatApp est associe a un utilisateur */
|
||||||
private Utilisateur me;
|
private Utilisateur me;
|
||||||
|
|
||||||
/* ChatApp est associe a une application qui le lance et que chatapp doit fermer a la fin */
|
/* ChatApp est associe a une application qui le lance et que chatapp doit fermer a la fin */
|
||||||
private Application main;
|
private Application main;
|
||||||
|
|
||||||
/* Instance de ChatApp */
|
|
||||||
private static ChatApp chatapp = null;
|
private static ChatApp chatapp = null;
|
||||||
|
|
||||||
/* Gérer les multiples connexions en TCP. */
|
|
||||||
private RunnerEcouteTCP runnerEcouteTCP;
|
private RunnerEcouteTCP runnerEcouteTCP;
|
||||||
|
|
||||||
/* Gérer les multiples connexions en UDP. */
|
|
||||||
private RunnerEcouteUDP runnerEcouteUDP;
|
private RunnerEcouteUDP runnerEcouteUDP;
|
||||||
|
|
||||||
/* TRUE si l'utilisateur est connecte au reseau FALSE sinon */
|
|
||||||
private boolean connecte;
|
private boolean connecte;
|
||||||
|
|
||||||
/* Acces a la base de donnée */
|
|
||||||
private DataBase db;
|
private DataBase db;
|
||||||
|
|
||||||
/* Variable stockant les communications grâce aux IDs des utilisateurs */
|
|
||||||
public ArrayList<String> listeCommunication = new ArrayList<>();
|
|
||||||
|
|
||||||
/* Variable stockant le backslash nécessaire pour creer l'adresse du fichier json */
|
|
||||||
public static String FILE_SEPARATOR = System.getProperty("file.separator");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private JSONObject configJSON;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p> Getter : Connecte
|
|
||||||
* <br> Permet de savoir si l'on est connecté</p>
|
|
||||||
* @return TRUE si connecté FALSE sinon
|
|
||||||
*/
|
|
||||||
public boolean isConnecte() {
|
public boolean isConnecte() {
|
||||||
return connecte;
|
return connecte;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Constructeur de l'application de chat</p>
|
* <p>Constructeur de l'application de chat</p>
|
||||||
|
*
|
||||||
* @param pseudo Pseudo de l'utilisateur
|
* @param pseudo Pseudo de l'utilisateur
|
||||||
* @param port Port de communication
|
* @param port Port de communication
|
||||||
* @param main L'Application main
|
|
||||||
*/
|
*/
|
||||||
public ChatApp(String pseudo, Integer port, Application main){
|
public ChatApp(String pseudo, Integer port, Application main){
|
||||||
this.actifUsers = new ListUtilisateurs() ;
|
this.actifUsers = new ListUtilisateurs() ;
|
||||||
InetAddress ip = UDPEchange.getCurrentIp(); // Recuperer adresse IP de l'utilisateur
|
// Recuperer adresse IP de l'utilisateur
|
||||||
|
InetAddress ip = null ;
|
||||||
|
ip = UDPEchange.getCurrentIp();
|
||||||
this.me = new Utilisateur(pseudo,port,ip);
|
this.me = new Utilisateur(pseudo,port,ip);
|
||||||
this.actifUsers.addList(getMe());
|
this.actifUsers.addList(getMe());
|
||||||
|
|
||||||
this.main = main;
|
this.main = main;
|
||||||
|
//this.db= DataBase.getInstance();
|
||||||
this.connecte=false;
|
this.connecte=false;
|
||||||
|
|
||||||
String path = System.getProperty("user.dir")+ FILE_SEPARATOR + "config.json";
|
|
||||||
System.out.println("Path is : "+path);
|
|
||||||
JSONParser jsonP = new JSONParser();
|
|
||||||
try {
|
|
||||||
this.configJSON = (JSONObject) jsonP.parse(new FileReader(path));
|
|
||||||
} catch (IOException e) {
|
|
||||||
System.out.println("Fichier JSON non trouvable");
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (ParseException e) {
|
|
||||||
System.out.println("Fichier JSON mal formé");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
this.externeEchange = new HttpEchange(this);
|
|
||||||
this.db= DataBase.getInstance(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Methode permettant de créer qu'une seule instance de chatapp</p>
|
* <p>Methode permettant de créer qu'une seule instance de chatapp</p>
|
||||||
* @param pseudo Le pseudonyme que l'on souhaite donner à l'utilisateur
|
* @param pseudo le pseudonyme que l'on souhaite donner à l'utilisateur
|
||||||
* @param port Le port auquel on souhaite réceptionner les requêtees UDP
|
* @param port le port auquel on souhaite receptionner les requêtees UDP
|
||||||
* @param main Le stage de l'interface graphique qui crée l'instance
|
* @param main le stage de l'interface graphique qui crée l'instance
|
||||||
* @return Une instance de chatapp
|
* @return une instance de chatapp
|
||||||
*/
|
*/
|
||||||
public static synchronized ChatApp getInstance(String pseudo, Integer port, Application main){
|
public static synchronized ChatApp getInstance(String pseudo, Integer port, Application main){
|
||||||
if (chatapp == null) {
|
if (chatapp == null) {
|
||||||
|
|
@ -125,66 +69,33 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Methode permettant de récupérer l'instance de chatapp qui a ete créée au préalable</p>
|
*
|
||||||
* @return L'instance de chatapp
|
* @return recupere l'instance de chatapp qui a ete creee au prealable
|
||||||
*/
|
*/
|
||||||
public static ChatApp getInstance(){
|
public static ChatApp getInstance(){
|
||||||
return chatapp;
|
return chatapp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Methode appelée pour modifier le pseudo et fait appel a la fonction adequate selon que l'on est en interne ou en externe</p>
|
/*public void majHistorique2(MessageHorodate mh, String pseudo) {
|
||||||
* @param nouveau Nouveau pseudo avec lequel on souhaite se renommer
|
Historique h = getMapHistorique().get(pseudo);
|
||||||
* @return TRUE si la modification du pseudo a réussi, FALSE sinon
|
//h.addMessage(mh);
|
||||||
* @throws IOException
|
getMapHistorique().put(h.getUser2().getPseudo(),h);
|
||||||
*/
|
}*/
|
||||||
public boolean modifierPseudo(String nouveau) throws IOException{
|
|
||||||
if(this.isExterne()){
|
|
||||||
return this.modifierPseudoExterne(nouveau);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return modifierPseudoInterne(nouveau);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Modification du pseudo de l'utilisateur en EXTERNE.
|
* <p>Modification du pseudo de l'utilisateur
|
||||||
* <br>Envoie ses informations utilisateurs et son nouveau pseudo au serveur de présence.</p>
|
* Envoie en broadcast ses informations utilisateurs et son nouveau pseudo</p>
|
||||||
* @param nouveau Le nouveau pseudo
|
*
|
||||||
* @return False si modiferPseudo a échoué, True sinon
|
* @param nouveau correspond au nouveau pseudo
|
||||||
|
* @return False si modiferPseudo a echoue, True sinon
|
||||||
*/
|
*/
|
||||||
private boolean modifierPseudoExterne(String nouveau) {
|
public Boolean modifierPseudo(String nouveau) throws IOException {
|
||||||
boolean reussi = false;
|
// Message que l'on envoie à tous les utilisateurs actifs
|
||||||
try {
|
|
||||||
if(externeEchange.sendPost("Pseudo " + nouveau)){
|
|
||||||
reussi = true ;
|
|
||||||
this.getMe().setPseudo(nouveau);
|
|
||||||
db.majPseudo(this.me.getId(),nouveau);
|
|
||||||
System.out.println("Changement pseudo accepte, nouvelle liste des utilisateurs actifs:");
|
|
||||||
this.getActifUsers().afficherListeUtilisateurs();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
System.out.println("Echec changement de pseudo");
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return reussi;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Modification du pseudo de l'utilisateur en INTERNE
|
|
||||||
* <br> Envoie en broadcast ses informations utilisateurs et son nouveau pseudo</p>
|
|
||||||
* @param nouveau Le Nouveau pseudo
|
|
||||||
* @return False si modiferPseudo a échoué, True sinon
|
|
||||||
*/
|
|
||||||
public Boolean modifierPseudoInterne(String nouveau) throws IOException {
|
|
||||||
// Message que l'on envoie à tous les utilisateurs actifs
|
|
||||||
String broadcastMessage = "Demande Modification Pseudo\n" + this.getMe().toString() + "\n" + nouveau + "\n";
|
String broadcastMessage = "Demande Modification Pseudo\n" + this.getMe().toString() + "\n" + nouveau + "\n";
|
||||||
UDPEchange.envoiBroadcast(broadcastMessage);
|
UDPEchange.EnvoiBroadcast(broadcastMessage);
|
||||||
try {
|
try {
|
||||||
Thread.sleep(2000);
|
Thread.sleep(2000);
|
||||||
/* L'utilisateur doit attendre la reponse de tous les utilisateurs connectes
|
/* L'utilisateur doit attendre la reponse de tous les utilisateurs connectes
|
||||||
|
|
@ -194,14 +105,14 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
if (UDPEchange.getPseudoValide()) {
|
if (UDPEchange.getPseudoValide()) {
|
||||||
System.out.println("Modification pseudo reussi");
|
System.out.println("Modification pseudo reussie");
|
||||||
//Envoi un msg en broadcast a tout les utilisateurs pour les prevenir de son nouveau pseudo//
|
//Envoi un msg en broadcast a tout les utilisateurs pour les prevenir de son nouveau pseudo//
|
||||||
broadcastMessage = "Modification pseudo reussi\n" + this.getMe().toString() + "\n" + nouveau + "\n";
|
broadcastMessage = "Modification pseudo reussie\n" + this.getMe().toString() + "\n" + nouveau + "\n";
|
||||||
UDPEchange.envoiBroadcast(broadcastMessage);
|
UDPEchange.EnvoiBroadcast(broadcastMessage);
|
||||||
//-------Change son propre nom d'utilisateur-------//
|
//-------Change son propre nom d'utilisateur-------//
|
||||||
this.getActifUsers().modifierList(this.getMe().getPseudo(), nouveau);
|
this.getActifUsers().modifierList(this.getMe().getPseudo(), nouveau);
|
||||||
this.getMe().setPseudo(nouveau);
|
this.getMe().setPseudo(nouveau);
|
||||||
db.majPseudo(this.me.getId(),nouveau);
|
//db.majPseudo(this.me.getId(),nouveau);
|
||||||
System.out.println("Changement pseudo accepte, nouvelle liste des utilisateurs actifs:");
|
System.out.println("Changement pseudo accepte, nouvelle liste des utilisateurs actifs:");
|
||||||
this.getActifUsers().afficherListeUtilisateurs();
|
this.getActifUsers().afficherListeUtilisateurs();
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -209,66 +120,20 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
System.out.println("Echec Modification pseudo");
|
System.out.println("Echec Modification pseudo");
|
||||||
UDPEchange.setPseudoValide(true);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Méthode permettant d'appeler la fonction de connexion adequate selon que l'on est en externe ou en interne</p>
|
|
||||||
* @param pseudo Le pseudo avec lequel l'on souhaite se connecter
|
|
||||||
* @return True si la connexion a ete autorisée, false sinon
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
public boolean connexion(String pseudo) throws IOException{
|
|
||||||
if(this.isExterne()){
|
|
||||||
try {
|
|
||||||
System.out.println("Demande de connexion distante");
|
|
||||||
return this.connexionExterne(pseudo);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return connexionInterne(pseudo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Méthode appelée lors de la connexion de l'utilisateur en EXTERNE.
|
|
||||||
* <br> Va prévenir le serveur de présence de l'arrivée de l'utilisateur </p>
|
|
||||||
* @param pseudo Le pseudonyme avec lequel l'utilisateur souhaite se connecter
|
|
||||||
* @return False si Connexion a échoué, True sinon
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
private boolean connexionExterne(String pseudo) throws IOException, InterruptedException{
|
|
||||||
this.me.setPseudo(pseudo);
|
|
||||||
if(externeEchange.sendPost("Connexion")){
|
|
||||||
this.connecte=true;
|
|
||||||
this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
|
|
||||||
this.db.majUtilisateursActifs(true,this.me.getId());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Méthode appelée lors de la connexion de l'utilisateur en INTERNE,
|
* <p>Methode appelee lors de la connexion d'un nouvel utilisateur.
|
||||||
* <br> Va prevenir les autres utlisateurs du réseau de l'arrivée de l'utilisateur sur celui-ci</p>
|
* Il va prevenir les utilisateurs du reseau de son arrivee.</p>
|
||||||
* @param pseudo Le pseudonyme avec lequel l'utilisateur souhaite se connecter
|
* @return False si Connexion a echoue, True sinon
|
||||||
* @return False si Connexion a échoué, True sinon
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
*/
|
||||||
public Boolean connexionInterne(String pseudo) throws IOException {
|
public Boolean connexion() throws IOException {
|
||||||
// Message que l'on envoie à tous les utilisateurs actifs
|
// Message que l'on envoie à tous les utilisateurs actifs
|
||||||
this.me.setPseudo(pseudo);
|
|
||||||
String broadcastMessage = "Connexion\n" + this.getMe().toString() ;
|
String broadcastMessage = "Connexion\n" + this.getMe().toString() ;
|
||||||
UDPEchange.envoiBroadcast(broadcastMessage);
|
UDPEchange.EnvoiBroadcast(broadcastMessage);
|
||||||
try {
|
try {
|
||||||
Thread.sleep(2000); // L'utilisateur doit attendre la reponse de tous les utilisateurs connectes
|
Thread.sleep(2000); // L'utilisateur doit attendre la reponse de tous les utilisateurs connectes
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
|
@ -276,9 +141,6 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
}
|
}
|
||||||
if (UDPEchange.getConnecte()) {
|
if (UDPEchange.getConnecte()) {
|
||||||
System.out.println("Connexion reussie");
|
System.out.println("Connexion reussie");
|
||||||
this.connecte=true;
|
|
||||||
this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
|
|
||||||
this.db.majUtilisateursActifs(true,this.me.getId());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -290,8 +152,40 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Lance un thread pour écouter les requêtes TCP
|
* <p>Methode appelee lors de la connexion de l'utilisateur, va prevenir les autres
|
||||||
* <br> Informe le pcs que chatapp écoute les notifications qu'il envoie</p>
|
* utlisateurs du reseau de l'arrivee de l'utilisateur sur celui-ci</p>
|
||||||
|
* @param pseudo le pseudonyme avec lequel l'utilisateur souhaite se connecter
|
||||||
|
* @return False si Connexion a echoue, True sinon
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public Boolean connexion(String pseudo) throws IOException {
|
||||||
|
// Message que l'on envoie à tous les utilisateurs actifs
|
||||||
|
this.me.setPseudo(pseudo);
|
||||||
|
String broadcastMessage = "Connexion\n" + this.getMe().toString() ;
|
||||||
|
UDPEchange.EnvoiBroadcast(broadcastMessage);
|
||||||
|
try {
|
||||||
|
Thread.sleep(2000); // L'utilisateur doit attendre la reponse de tous les utilisateurs connectes
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
if (UDPEchange.getConnecte()) {
|
||||||
|
System.out.println("Connexion reussie");
|
||||||
|
this.connecte=true;
|
||||||
|
//this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
|
||||||
|
//this.db.majUtilisateursActifs(true,this.me.getId());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
System.out.println("Connexion echoue");
|
||||||
|
UDPEchange.setConnecte(true);
|
||||||
|
return false ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Lance un thread pour ecouter les requetes TCP
|
||||||
|
* Informe le pcs que chatapp ecoute les notifications qu'il envoie</p>
|
||||||
*/
|
*/
|
||||||
public void activerEcouteTCP(){
|
public void activerEcouteTCP(){
|
||||||
this.runnerEcouteTCP = new RunnerEcouteTCP(this);
|
this.runnerEcouteTCP = new RunnerEcouteTCP(this);
|
||||||
|
|
@ -299,8 +193,8 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Démarre une session de clavardage avec l'utilisateur dont le pseudo est entré en parametre</p>
|
* <p>Demarre une session de clavardage avec l'utilisateur dont le pseudo est entre en parametre</p>
|
||||||
* @param pseudo Le pseudo de l'utilisateur avec lequel on souhaite communiquer
|
* @param pseudo le pseudo de l'utilisateur avec lequel on souhaite communiquer
|
||||||
*/
|
*/
|
||||||
public void demarrerSession(String pseudo){
|
public void demarrerSession(String pseudo){
|
||||||
Utilisateur u2 = this.actifUsers.getPseudoList(pseudo);
|
Utilisateur u2 = this.actifUsers.getPseudoList(pseudo);
|
||||||
|
|
@ -309,68 +203,22 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Lance le thread pour réceptionner les requetes UDP</p>
|
* <p>Lance le thread pour receptionner les requetes UDP</p>
|
||||||
*/
|
*/
|
||||||
public void activerEcouteUDP(){
|
public void activerEcouteUDP(){
|
||||||
this.runnerEcouteUDP = new RunnerEcouteUDP(this);
|
this.runnerEcouteUDP = new RunnerEcouteUDP(this);
|
||||||
this.runnerEcouteUDP.start();
|
this.runnerEcouteUDP.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Méthode appelée lors de la déconnexion de l'utilisateur.
|
* <p>Methode appelee lors de la deconnexion de l'utilisateur.
|
||||||
* <br>La methode va appeler la fonction adequate selon que l'on est en interne ou en externe</p>
|
* Il va prevenir les utilisateurs du reseau de son depart.</p>
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
public void deconnexion() throws IOException{
|
|
||||||
if(this.isExterne()){
|
|
||||||
this.deconnexionExterne();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
deconnexionInterne();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Methode appelee lors de la deconnexion en EXTERNE de l'utilisateur.
|
|
||||||
* <br>Il va prévenir le serveur de présence de son depart.</p>
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private void deconnexionExterne() throws IOException{
|
public void deconnexion() throws IOException {
|
||||||
System.out.println("Deconnexion lancee");
|
// Message que l'on envoie à tous les utilisateurs actifs
|
||||||
boolean deco = false;
|
|
||||||
try {
|
|
||||||
deco = externeEchange.sendPost("Deconnexion");
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
if(deco){
|
|
||||||
System.out.print("Deconnexion reussie");
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
System.out.println("Deconnexion echouee");
|
|
||||||
}
|
|
||||||
db.majUtilisateursActifs(false,this.me.getId());
|
|
||||||
this.connecte=false;
|
|
||||||
try {
|
|
||||||
main.stop();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
Platform.exit();
|
|
||||||
System.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Methode appelee lors de la deconnexion en INTERNE de l'utilisateur.
|
|
||||||
* <br>Il va prevenir les utilisateurs du reseau de son depart.</p>
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
public void deconnexionInterne() throws IOException {
|
|
||||||
// Message que l'on envoie à tous les utilisateurs actifs
|
|
||||||
String broadcastMessage = "Deconnexion\n" + this.getMe().toString() ;
|
String broadcastMessage = "Deconnexion\n" + this.getMe().toString() ;
|
||||||
UDPEchange.envoiBroadcast(broadcastMessage);
|
UDPEchange.EnvoiBroadcast(broadcastMessage);
|
||||||
db.majUtilisateursActifs(false,this.me.getId());
|
//db.majUtilisateursActifs(false,this.me.getId());
|
||||||
this.connecte=false;
|
this.connecte=false;
|
||||||
try {
|
try {
|
||||||
main.stop();
|
main.stop();
|
||||||
|
|
@ -382,25 +230,58 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter : Chatapp
|
* Getter
|
||||||
* @return Utilisateur associée a ChatApp
|
* @return Utilisateur associee a ChatApp
|
||||||
*/
|
*/
|
||||||
public Utilisateur getMe() {
|
public Utilisateur getMe() {
|
||||||
return me;
|
return me;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter : actifUsers (Liste des utilisateurs actifs)
|
* Getter
|
||||||
* @return Liste des utilisateurs actifs associée a ChatApp
|
* @return Liste des utilisateurs actifs associee a ChatApp
|
||||||
*/
|
*/
|
||||||
public ListUtilisateurs getActifUsers() {
|
public ListUtilisateurs getActifUsers() {
|
||||||
return actifUsers;
|
return actifUsers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*public static void main (String[] args) throws IOException {
|
||||||
|
ChatApp app = new ChatApp(args[0],Integer.parseInt(args[1]),this.app) ;
|
||||||
|
System.out.println("On lance le chatapp");
|
||||||
|
|
||||||
|
|
||||||
|
ExecutorService execUDP = Executors.newFixedThreadPool(1000);
|
||||||
|
execUDP.submit(new RunnerEcouteUDP(app));
|
||||||
|
try {
|
||||||
|
app.connexion();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
ExecutorService execTCP = Executors.newFixedThreadPool(1000);
|
||||||
|
System.out.println("On lance l'écoute TCP de chatapp");
|
||||||
|
execTCP.submit(new RunnerEcouteTCP(app));
|
||||||
|
try {
|
||||||
|
Thread.sleep(5000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(app.getMe().getPseudo().equals("Marvel")) {
|
||||||
|
app.getHist("Doudou").afficher10derniers();
|
||||||
|
System.out.println("Tentative de connexion avec Doudou");
|
||||||
|
TCPEchange.demarrerSession(app, app.actifUsers.getPseudoList("Doudou"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Handler des différents évenements que chatapp écoute</p>
|
* <p>Handler des differents evenements que chatapp ecoute</p>
|
||||||
* @param evt L'évenement qui a ete indiqué par le pcs
|
* @param evt l'evenement qui a ete indique par le pcs
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void propertyChange(PropertyChangeEvent evt) {
|
public void propertyChange(PropertyChangeEvent evt) {
|
||||||
|
|
@ -413,62 +294,16 @@ public class ChatApp implements PropertyChangeListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Getter : Main
|
* <p>Permet de recuperer stage de l'interface graphique qui a cree l'instance</p>
|
||||||
* Permet de récuperer stage de l'interface graphique qui a crée l'instance
|
* @return le stage de l'interface graphique qui a cree l'instance
|
||||||
* </p>
|
|
||||||
* @return Le stage de l'interface graphique qui a crée l'instance
|
|
||||||
*/
|
*/
|
||||||
public Application getMain() {
|
public Application getMain() {
|
||||||
return main;
|
return main;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Getter : BDD
|
* <p>Permet de recuperer la base de donnee associee</p>
|
||||||
* <br> Permet de récuperer la base de donnee associée
|
* @return la base de donnee associee
|
||||||
* </p>
|
|
||||||
* @return La base de donnee associée
|
|
||||||
*/
|
*/
|
||||||
public DataBase getDb(){return this.db;}
|
public DataBase getDb(){return this.db;}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p> Getter : Externe
|
|
||||||
* <br> Permet de savoir si on est en externe ou en interne</p>
|
|
||||||
* @return TRUE si Externe FALSE sinon
|
|
||||||
*/
|
|
||||||
public boolean isExterne() {
|
|
||||||
return isExterne;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p> Setter : Externe
|
|
||||||
* <br> Permet de définir si on est un utilisateur externe ou non</p>
|
|
||||||
* @param externe TRUE si Externe FALSE sinon
|
|
||||||
*/
|
|
||||||
public void setExterne(boolean externe) {
|
|
||||||
isExterne = externe;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Un utilisateur ne peut pas ouvrir plusieurs sessions de clavardage avec le même utilisateur.
|
|
||||||
* <br> Cette methode compare les communications en cours pour retourner une liste d'utilisateurs avec
|
|
||||||
* lesquels les communications sont possibles
|
|
||||||
* </p>
|
|
||||||
* @return Une liste d'utilisateurs avec lesquels il peut communiquer
|
|
||||||
*/
|
|
||||||
public ArrayList<Utilisateur> createListeCommunicationPossible(){
|
|
||||||
ArrayList<Utilisateur> communication = new ArrayList<>();
|
|
||||||
for ( Utilisateur element : this.actifUsers.getActifUsers()){
|
|
||||||
if ( ! this.listeCommunication.contains(element.getId())){
|
|
||||||
communication.add(element);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return communication;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public JSONObject getConfigJSON() {
|
|
||||||
return configJSON;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
@startuml
|
|
||||||
|
|
||||||
title __CONTROLLER's Class Diagram__\n
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Controller {
|
|
||||||
class chatapp.Controller.ChatApp {
|
|
||||||
+ listeCommunication : ArrayList<String>
|
|
||||||
{static} - chatapp : ChatApp
|
|
||||||
- connecte : boolean
|
|
||||||
- isExterne : boolean
|
|
||||||
- main : Application
|
|
||||||
+ ChatApp()
|
|
||||||
+ activerEcouteTCP()
|
|
||||||
+ activerEcouteUDP()
|
|
||||||
+ connexion()
|
|
||||||
+ connexionInterne()
|
|
||||||
+ createListeCommunicationPossible()
|
|
||||||
+ deconnexion()
|
|
||||||
+ deconnexionInterne()
|
|
||||||
+ demarrerSession()
|
|
||||||
+ getActifUsers()
|
|
||||||
+ getDb()
|
|
||||||
{static} + getInstance()
|
|
||||||
{static} + getInstance()
|
|
||||||
+ getMain()
|
|
||||||
+ getMe()
|
|
||||||
+ isConnecte()
|
|
||||||
+ isExterne()
|
|
||||||
+ modifierPseudo()
|
|
||||||
+ modifierPseudoInterne()
|
|
||||||
+ propertyChange()
|
|
||||||
+ setExterne()
|
|
||||||
- connexionExterne()
|
|
||||||
- deconnexionExterne()
|
|
||||||
- modifierPseudoExterne()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
chatapp.Controller.ChatApp .up.|> java.beans.PropertyChangeListener
|
|
||||||
chatapp.Controller.ChatApp o-- chatapp.Model.ListUtilisateurs : actifUsers
|
|
||||||
chatapp.Controller.ChatApp o-- chatapp.Model.DataBase : db
|
|
||||||
chatapp.Controller.ChatApp o-- chatapp.Protocol.HttpEchange : externeEchange
|
|
||||||
chatapp.Controller.ChatApp o-- chatapp.Model.Utilisateur : me
|
|
||||||
chatapp.Controller.ChatApp o-- chatapp.Protocol.RunnerEcouteTCP : runnerEcouteTCP
|
|
||||||
chatapp.Controller.ChatApp o-- chatapp.Protocol.RunnerEcouteUDP : runnerEcouteUDP
|
|
||||||
|
|
||||||
|
|
||||||
right footer
|
|
||||||
|
|
||||||
|
|
||||||
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
|
|
||||||
For more information about this tool, please contact philippe.mesmeur@gmail.com
|
|
||||||
endfooter
|
|
||||||
|
|
||||||
@enduml
|
|
||||||
|
|
@ -4,16 +4,14 @@ import chatapp.Controller.ChatApp;
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
|
import javafx.geometry.Rectangle2D;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
|
import javafx.stage.Screen;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
/**
|
import java.io.IOException;
|
||||||
* Cette classe extends Application.
|
|
||||||
* <br> Elle va permettre de faire le lien avec JavaFX.
|
|
||||||
*/
|
|
||||||
public class Main extends Application {
|
|
||||||
|
|
||||||
/* Instance de ChatApp */
|
public class Main extends Application {
|
||||||
ChatApp chatapp;
|
ChatApp chatapp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -23,6 +21,7 @@ public class Main extends Application {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void start(Stage primaryStage) throws Exception {
|
public void start(Stage primaryStage) throws Exception {
|
||||||
|
Rectangle2D tailleEcran = Screen.getPrimary().getBounds();
|
||||||
this.chatapp = ChatApp.getInstance("Null",1234,this);
|
this.chatapp = ChatApp.getInstance("Null",1234,this);
|
||||||
FXMLLoader fichier = new FXMLLoader(getClass().getResource("/fenetres/ConnexionScreen.fxml"));
|
FXMLLoader fichier = new FXMLLoader(getClass().getResource("/fenetres/ConnexionScreen.fxml"));
|
||||||
Scene scene1 = new Scene(fichier.load(),600,400);
|
Scene scene1 = new Scene(fichier.load(),600,400);
|
||||||
|
|
@ -30,10 +29,15 @@ public class Main extends Application {
|
||||||
primaryStage.setTitle("ChatApp");
|
primaryStage.setTitle("ChatApp");
|
||||||
primaryStage.setMinWidth(600);
|
primaryStage.setMinWidth(600);
|
||||||
primaryStage.setMinHeight(400);
|
primaryStage.setMinHeight(400);
|
||||||
|
//primaryStage.setMaxWidth(600);
|
||||||
|
//primaryStage.setMaxHeight(400);
|
||||||
|
/*primaryStage.setMaxWidth(tailleEcran.getWidth());
|
||||||
|
primaryStage.setMaxHeight(tailleEcran.getHeight());*/
|
||||||
primaryStage.show();
|
primaryStage.show();
|
||||||
primaryStage.centerOnScreen();
|
primaryStage.centerOnScreen();
|
||||||
chatapp.activerEcouteTCP();
|
chatapp.activerEcouteTCP();
|
||||||
chatapp.activerEcouteUDP();
|
chatapp.activerEcouteUDP();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -44,7 +48,8 @@ public class Main extends Application {
|
||||||
public void stop() throws Exception {
|
public void stop() throws Exception {
|
||||||
if(chatapp.isConnecte()){
|
if(chatapp.isConnecte()){
|
||||||
chatapp.deconnexion();
|
chatapp.deconnexion();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
super.stop();
|
super.stop();
|
||||||
Platform.exit();
|
Platform.exit();
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
|
|
|
||||||
|
|
@ -1,60 +1,46 @@
|
||||||
package chatapp.Model;
|
package chatapp.Model;
|
||||||
|
|
||||||
import chatapp.Controller.ChatApp;
|
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Classe représentant la Base de données.
|
* Classe representant la Base de données.
|
||||||
* Celle-ci stocke la liste des utilisateurs ainsi que les échanges entre eux
|
* Celle-ci stocke la liste des utilisateurs ainsi que les échanges entre eux
|
||||||
* </p>
|
* </p>
|
||||||
* Format de la table Utilisateurs
|
|
||||||
* <br> +--------+-------------+---------+---------------------+
|
|
||||||
* <br> | ID | Pseudo | Actif | Date d'inscription |
|
|
||||||
* <br> +--------+-------------+---------+---------------------+
|
|
||||||
* <br> - Id : Correspond à l'ID de l'utilisateur
|
|
||||||
* <br> - Pseudo : Dernier Pseudo utilisé pour cet ID, va etre remplacé par le pseudo actuel avec majPseudo
|
|
||||||
* <br> - Date d'inscription : Comme son nom l'indique le jour de l'inscription de cet utilisateur
|
|
||||||
* <br> - Actif : Boolean indiquant si l'utilisateur est actif
|
|
||||||
* <br>
|
|
||||||
* <br> Chaque communication entres utilisateurs sera stockée dans une table de la forme
|
|
||||||
* <br> +--------------+--------+---------+--------------+
|
|
||||||
* <br> | Destinataire | Source | Message | Date d'envoi |
|
|
||||||
* <br> +--------------+--------+---------+--------------+
|
|
||||||
* <br> - Destinataire : Id du destinataire du message
|
|
||||||
* <br> - Source : Id de celui qui envoie le message
|
|
||||||
* <br> - Message : Msg envoyé
|
|
||||||
* <br> - Date d'envoi : Date a laquelle Source a envoyé le message à destinataire
|
|
||||||
*/
|
*/
|
||||||
public class DataBase {
|
public class DataBase {
|
||||||
|
private final String DBurl = "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306" ;
|
||||||
/* URL pour accéder à la BDD */
|
|
||||||
private String dBurl = "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/tp_servlet_006?" ;
|
|
||||||
|
|
||||||
/* Connection avec la BDD */
|
|
||||||
private Connection connection = null;
|
private Connection connection = null;
|
||||||
|
private final String login = "tp_servlet_006";
|
||||||
|
private final String pswd = "baePh9ei";
|
||||||
|
|
||||||
/* Login pour se connecter à la BDD */
|
|
||||||
private String login = "tp_servlet_006";
|
|
||||||
|
|
||||||
/* Mdp pour se connecter à la BDD */
|
/*Format de la table Utilisateurs
|
||||||
private String pswd = "baePh9ei";
|
+--------+-------------+---------+---------------------+
|
||||||
|
| ID | Pseudo | Actif | Date d'inscription |
|
||||||
|
+--------+-------------+---------+---------------------+
|
||||||
|
Id correspond à l'addresse IP
|
||||||
|
Pseudo : Dernier Pseudo utilisé pour cette adresse IP, va etre remplacé par le pseudo actuel avec majPseudo
|
||||||
|
Date d'inscription comme son nom l'indique le jour de l'inscription de cette utilisateur
|
||||||
|
Actif est un boolean indicant si l'utilisateur est actif
|
||||||
|
|
||||||
private ChatApp chatapp;
|
Chaque communication entres utilisateurs sera stocké dans une table de la forme
|
||||||
|
+------------------+-----------+---------------+---------------+
|
||||||
|
| Destinataire | Source | Message | Date d'envoi |
|
||||||
|
+--------+---------------------+---------------+---------------+
|
||||||
|
Destinataire -> Id du destinataire du message
|
||||||
|
Source -> Id de celui qui envoie le message
|
||||||
|
Message -> Msg envoye
|
||||||
|
Date d'envoie -> Date a laquelle Source a envoye le message a destinataire
|
||||||
|
*/
|
||||||
|
|
||||||
/* Singleton */
|
private static final DataBase instance = null; // Singleton
|
||||||
private static final DataBase instance = null;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur de la database
|
* Constructeur de la database
|
||||||
* <br> On installe le driver et on établit la connection.
|
* On installe le driver et on établit la connection.
|
||||||
*/
|
*/
|
||||||
public DataBase(ChatApp chatapp) {
|
public DataBase() {
|
||||||
this.chatapp = chatapp;
|
|
||||||
this.login = (String) chatapp.getConfigJSON().get("BaseDeDonnesLogin");
|
|
||||||
this.pswd = (String) chatapp.getConfigJSON().get("BaseDeDonneesMDP");
|
|
||||||
this.dBurl = (String) chatapp.getConfigJSON().get("BaseDeDonnesURL");
|
|
||||||
try {
|
try {
|
||||||
//Besoin d'installer le driver JDBC entre java IDE et le system DBMS pour faire un pont entre les deux
|
//Besoin d'installer le driver JDBC entre java IDE et le system DBMS pour faire un pont entre les deux
|
||||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||||
|
|
@ -68,11 +54,8 @@ public class DataBase {
|
||||||
// Nabil : DECOMMENTER CETTE LIGNE
|
// Nabil : DECOMMENTER CETTE LIGNE
|
||||||
//this.connection = DriverManager.getConnection("jdbc:mysql://localhost/POO_AL_NM?allowPublicKeyRetrieval=true&useSSL=false", "root", "1234");
|
//this.connection = DriverManager.getConnection("jdbc:mysql://localhost/POO_AL_NM?allowPublicKeyRetrieval=true&useSSL=false", "root", "1234");
|
||||||
// Auriane : DECOMMENTER CETTE LIGNE
|
// Auriane : DECOMMENTER CETTE LIGNE
|
||||||
//this.connection = DriverManager.getConnection("jdbc:mysql://localhost:8889/POO_AL_NM?allowPublicKeyRetrieval=true&useSSL=false", "root", "root");
|
this.connection = DriverManager.getConnection("jdbc:mysql://localhost:8889/POO_AL_NM?allowPublicKeyRetrieval=true&useSSL=false", "root", "root");
|
||||||
System.out.println(this.dBurl);
|
//this.connection = DriverManager.getConnection(this.DBurl,login,pswd);
|
||||||
System.out.println(this.pswd);
|
|
||||||
System.out.println(this.login);
|
|
||||||
this.connection = DriverManager.getConnection(this.dBurl,this.login,this.pswd);
|
|
||||||
System.out.println("Connexion Etablie");
|
System.out.println("Connexion Etablie");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
@ -82,39 +65,39 @@ public class DataBase {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de renvoyer une instance de la classe DataBase
|
* Méthode permettant de renvoyer une instance de la classe DataBase
|
||||||
* @return L'instance du singleton DataBase.
|
* @return Retourne l'instance du singleton DataBase.
|
||||||
*/
|
*/
|
||||||
public static DataBase getInstance(ChatApp chatapp) {
|
public static DataBase getInstance() {
|
||||||
synchronized (DataBase.class) {
|
synchronized (DataBase.class) {
|
||||||
return new DataBase(chatapp);
|
return new DataBase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Methode permettant de créer une table pour stocker les messages entre deux utilisateurs
|
* Methode permettant de creer une table pour stocker les messages entre deux utilisateurs
|
||||||
* @param iD1 Id du premier utilisateur
|
* @param ID1 Id du premier utilisateur
|
||||||
* @param iD2 Id du second utilisateur
|
* @param ID2 Id du second utilisateur
|
||||||
*/
|
*/
|
||||||
public void creationTableHistorique(String iD1 , String iD2) {
|
public void CreationTableHistorique(String ID1 , String ID2) {
|
||||||
// Pour eviter d'avoir les tables en double
|
// Pour eviter d'avoir les tables en double
|
||||||
String petit;
|
String petit;
|
||||||
String grand;
|
String grand;
|
||||||
int comparaison = iD1.compareTo(iD2);
|
int comparaison = ID1.compareTo(ID2);
|
||||||
if (comparaison < 0) {
|
if (comparaison < 0) {
|
||||||
petit = iD1;
|
petit = ID1;
|
||||||
grand = iD2 ;
|
grand = ID2 ;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
petit = iD2;
|
petit = ID2;
|
||||||
grand = iD1 ;
|
grand = ID1 ;
|
||||||
}
|
}
|
||||||
String nomTable = "Chat_" + petit + "_" + grand ;
|
String nomTable = "Chat_" + petit + "_" + grand ;
|
||||||
String requete = "CREATE TABLE IF NOT EXISTS`" + nomTable +"` (\n" + "`Destinataire` varchar(100) NOT NULL,\n" + " `Source` varchar(100) NOT NULL,\n" + " `Envoi` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n" + " `Message` text NOT NULL\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ;";
|
String Requete = "CREATE TABLE IF NOT EXISTS`" + nomTable +"` (\n" + "`Destinataire` varchar(100) NOT NULL,\n" + " `Source` varchar(100) NOT NULL,\n" + " `Envoi` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n" + " `Message` text NOT NULL\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ;";
|
||||||
System.out.println(requete);
|
System.out.println(Requete);
|
||||||
PreparedStatement ps = null ;
|
PreparedStatement Ps = null ;
|
||||||
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
|
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
|
||||||
try {
|
try {
|
||||||
ps = connection.prepareStatement(requete);
|
Ps = connection.prepareStatement(Requete);
|
||||||
System.out.println("Statement cree");
|
System.out.println("Statement cree");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
@ -122,8 +105,8 @@ public class DataBase {
|
||||||
}
|
}
|
||||||
//Execute la donnée SQL statement passe en parametre
|
//Execute la donnée SQL statement passe en parametre
|
||||||
try {
|
try {
|
||||||
assert ps != null;
|
assert Ps != null;
|
||||||
ps.executeUpdate();
|
Ps.executeUpdate();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
System.out.println(" Echec executeUpdate ");
|
System.out.println(" Echec executeUpdate ");
|
||||||
|
|
@ -131,18 +114,18 @@ public class DataBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee
|
* Methode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee
|
||||||
* @param iD Id de l'utilisateur qui vient de changer de pseudo
|
* @param ID Id de l'utilisateur qui vient de changer de pseudo
|
||||||
* @param pseudo Nouveau Pseudo de l'utilisateur
|
* @param Pseudo Nouveau Pseudo de l'utilisateur
|
||||||
*/
|
*/
|
||||||
public void majPseudo( String iD , String pseudo) {
|
public void majPseudo( String ID , String Pseudo) {
|
||||||
String requete= "UPDATE `Utilisateurs` SET `Pseudo`=? WHERE id=?";
|
String requete= "UPDATE `Utilisateurs` SET `Pseudo`=? WHERE id=?";
|
||||||
PreparedStatement ps = null ;
|
PreparedStatement Ps = null ;
|
||||||
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
|
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
|
||||||
try {
|
try {
|
||||||
ps = connection.prepareStatement(requete);
|
Ps = connection.prepareStatement(requete);
|
||||||
ps.setString(1, pseudo); // ? n°1 devient la valeur contenu dans Pseudo
|
Ps.setString(1, Pseudo); // ? n°1 devient la valeur contenu dans Pseudo
|
||||||
ps.setString(2, iD); // ? n°2 devient la valeur contenu dans ID
|
Ps.setString(2, ID); // ? n°2 devient la valeur contenu dans ID
|
||||||
System.out.println("Statement cree");
|
System.out.println("Statement cree");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
@ -150,8 +133,8 @@ public class DataBase {
|
||||||
}
|
}
|
||||||
//Execute la donnée SQL statement passe en parametre
|
//Execute la donnée SQL statement passe en parametre
|
||||||
try {
|
try {
|
||||||
assert ps != null;
|
assert Ps != null;
|
||||||
ps.executeUpdate();
|
Ps.executeUpdate();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
System.out.println(" Echec executeUpdate ");
|
System.out.println(" Echec executeUpdate ");
|
||||||
|
|
@ -161,32 +144,32 @@ public class DataBase {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnée
|
* Methode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee
|
||||||
* @param iDdest Id de l'utilisateur Destinataire du message
|
* @param IDdest Id de l'utilisateur Destinataire du message
|
||||||
* @param iDsrc Id de celui qui envoi le message
|
* @param IDsrc Id de celui qui envoi le message
|
||||||
* @param msg Message envoye entre les deux utilisateurs
|
* @param Msg Message envoye entre les deux utilisateurs
|
||||||
*/
|
*/
|
||||||
public void ajoutHistorique(String iDdest , String iDsrc, String msg) {
|
public void ajoutHistorique(String IDdest , String IDsrc, String Msg) {
|
||||||
String petit;
|
String petit;
|
||||||
String grand;
|
String grand;
|
||||||
int comparaison = iDdest.compareTo(iDsrc);
|
int comparaison = IDdest.compareTo(IDsrc);
|
||||||
if (comparaison < 0) {
|
if (comparaison < 0) {
|
||||||
petit = iDdest;
|
petit = IDdest;
|
||||||
grand = iDsrc ;
|
grand = IDsrc ;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
petit = iDsrc;
|
petit = IDsrc;
|
||||||
grand = iDdest ;
|
grand = IDdest ;
|
||||||
}
|
}
|
||||||
String nomTable = "Chat_" + petit + "_" + grand ;
|
String nomTable = "Chat_" + petit + "_" + grand ;
|
||||||
String requete= "INSERT INTO `"+ nomTable +"`(`Destinataire`, `Source`, `Message`) VALUES ( ? , ? , ?)";
|
String requete= "INSERT INTO `"+ nomTable +"`(`Destinataire`, `Source`, `Message`) VALUES ( ? , ? , ?)";
|
||||||
PreparedStatement ps = null ;
|
PreparedStatement Ps = null ;
|
||||||
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
|
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
|
||||||
try {
|
try {
|
||||||
ps = connection.prepareStatement(requete);
|
Ps = connection.prepareStatement(requete);
|
||||||
ps.setString(1, iDdest); // ? n°1 devient la valeur contenu dans IDdest
|
Ps.setString(1, IDdest); // ? n°1 devient la valeur contenu dans IDdest
|
||||||
ps.setString(2, iDsrc); // ? n°2 devient la valeur contenu dans IDsrc
|
Ps.setString(2, IDsrc); // ? n°2 devient la valeur contenu dans IDsrc
|
||||||
ps.setString(3, msg); // ? n°3 devient la valeur contenu dans Msg
|
Ps.setString(3, Msg); // ? n°3 devient la valeur contenu dans Msg
|
||||||
//La date de l'envoi n'a pas besoin d'être renseigné, elle est automatique
|
//La date de l'envoi n'a pas besoin d'être renseigné, elle est automatique
|
||||||
System.out.println("Statement cree");
|
System.out.println("Statement cree");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
|
@ -195,8 +178,8 @@ public class DataBase {
|
||||||
}
|
}
|
||||||
//Execute la donnée SQL statement passe en parametre
|
//Execute la donnée SQL statement passe en parametre
|
||||||
try {
|
try {
|
||||||
assert ps != null;
|
assert Ps != null;
|
||||||
ps.executeUpdate();
|
Ps.executeUpdate();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
System.out.println(" Echec executeUpdate ");
|
System.out.println(" Echec executeUpdate ");
|
||||||
|
|
@ -205,24 +188,24 @@ public class DataBase {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant d'ajouter un utilisateur dans la base de donnée si celui-ci n'existe pas déjà
|
* Methode permettant d'ajouter un utilisateur dans la base de donnée si celui-ci n'existe pas deja
|
||||||
* @param iD Id de l'utilisateur que l'on veut rajouter
|
* @param ID Id de l'utilisateur que l'on veut rajouter
|
||||||
* @param pseudo Pseudo actuelle de l'utilisateur
|
* @param Pseudo pseudo actuelle de l'utilisateur
|
||||||
*/
|
*/
|
||||||
public void ajoutUtilisateurs(String iD , String pseudo ) {
|
public void ajoutUtilisateurs(String ID , String Pseudo ) {
|
||||||
if(this.idExiste(iD)){
|
if(this.idExiste(ID)){
|
||||||
this.majPseudo(iD, pseudo);
|
this.majPseudo(ID, Pseudo);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// L'utilisateur n'existe pas , on va le rajouter.
|
// L'utilisateur n'existe pas , on va le rajouter.
|
||||||
System.out.println("On rajoute l'utilisateur " + pseudo);
|
System.out.println("On rajoute l'utilisateur " + Pseudo);
|
||||||
String requete = "INSERT INTO `Utilisateurs` (`ID`, `Pseudo`, `Actif`) VALUES ( ? , ? , '1')";
|
String requete = "INSERT INTO `Utilisateurs` (`ID`, `Pseudo`, `Actif`) VALUES ( ? , ? , '1')";
|
||||||
PreparedStatement ps = null;
|
PreparedStatement Ps = null;
|
||||||
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
|
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
|
||||||
try {
|
try {
|
||||||
ps = connection.prepareStatement(requete);
|
Ps = connection.prepareStatement(requete);
|
||||||
ps.setString(1, iD); // ? n°1 devient la valeur contenu dans ID
|
Ps.setString(1, ID); // ? n°1 devient la valeur contenu dans ID
|
||||||
ps.setString(2, pseudo); // ? n°2 devient la valeur contenu dans Pseudo
|
Ps.setString(2, Pseudo); // ? n°2 devient la valeur contenu dans Pseudo
|
||||||
System.out.println("Statement cree");
|
System.out.println("Statement cree");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
@ -230,8 +213,8 @@ public class DataBase {
|
||||||
}
|
}
|
||||||
//Execute la donnée SQL statement passe en parametre
|
//Execute la donnée SQL statement passe en parametre
|
||||||
try {
|
try {
|
||||||
assert ps != null;
|
assert Ps != null;
|
||||||
ps.executeUpdate();
|
Ps.executeUpdate();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
System.out.println(" Echec executeUpdate ");
|
System.out.println(" Echec executeUpdate ");
|
||||||
|
|
@ -240,9 +223,9 @@ public class DataBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de mettre a jour les utilisateurs actuellement actif
|
* Methode permettant de mettre a jour les utilisateurs actuellement actif
|
||||||
* @param Id Id de l'utilisateur qui vient de se connecter ou déconnecter
|
* @param Id Id de l'utilisateur qui vient de se connecter ou deconnecter
|
||||||
* @param Connecte Boolean true si il est connecté , false sinon
|
* @param Connecte Boolean true si il est connecte , false sinon
|
||||||
*/
|
*/
|
||||||
public void majUtilisateursActifs(Boolean Connecte, String Id) {
|
public void majUtilisateursActifs(Boolean Connecte, String Id) {
|
||||||
String requete= "UPDATE `Utilisateurs` SET `Actif`=? WHERE id=?";
|
String requete= "UPDATE `Utilisateurs` SET `Actif`=? WHERE id=?";
|
||||||
|
|
@ -269,24 +252,24 @@ public class DataBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de récupérer les N derniers messages envoyés entre 2 utilisateurs
|
* Methode permettant de recuperer les N derniers messages envoyés entre 2 utilisateurs
|
||||||
* @param iD Utilisateur associé a ChatApp
|
* @param ID Utilisateur associé a ChatApp
|
||||||
* @param iDdestinataire Celui avec qui correspond ID
|
* @param IDdestinataire Celui avec qui correspond ID
|
||||||
* @param n Le nombre de messages souhaités
|
* @param N le nombre de messages souhaités
|
||||||
* @return Les N derniers Messages
|
* @return Les N derniers Messages
|
||||||
*/
|
*/
|
||||||
public String recupNMsg(String iD, String iDdestinataire, int n) {
|
public String recupNMsg(String ID, String IDdestinataire, int N) {
|
||||||
StringBuilder msg = new StringBuilder();
|
StringBuilder Msg = new StringBuilder();
|
||||||
String petit;
|
String petit;
|
||||||
String grand;
|
String grand;
|
||||||
int comparaison = iD.compareTo(iDdestinataire);
|
int comparaison = ID.compareTo(IDdestinataire);
|
||||||
if (comparaison < 0) {
|
if (comparaison < 0) {
|
||||||
petit = iD;
|
petit = ID;
|
||||||
grand = iDdestinataire;
|
grand = IDdestinataire;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
petit = iDdestinataire;
|
petit = IDdestinataire;
|
||||||
grand = iD ;
|
grand = ID ;
|
||||||
}
|
}
|
||||||
String nomTable = "Chat_" + petit + "_" + grand ;
|
String nomTable = "Chat_" + petit + "_" + grand ;
|
||||||
String requete = "SELECT * FROM `"+ nomTable +"`";
|
String requete = "SELECT * FROM `"+ nomTable +"`";
|
||||||
|
|
@ -303,23 +286,23 @@ public class DataBase {
|
||||||
} catch (SQLException throwables) {
|
} catch (SQLException throwables) {
|
||||||
throwables.printStackTrace();
|
throwables.printStackTrace();
|
||||||
}
|
}
|
||||||
Integer taille = tailleBDD(nomTable);
|
Integer Taille = tailleBDD(nomTable);
|
||||||
if(taille < n ){
|
if(Taille < N ){
|
||||||
n = taille ;
|
N = Taille ;
|
||||||
}
|
}
|
||||||
for(int i = 0 ; i < n; i++){
|
for(int i = 0 ; i < N; i++){
|
||||||
try {
|
try {
|
||||||
assert rs != null;
|
assert rs != null;
|
||||||
if( rs.next()){
|
if( rs.next()){
|
||||||
String iDSource = rs.getString("Source");
|
String IDSource = rs.getString("Source");
|
||||||
String envoi = rs.getTimestamp("Envoi").toString();
|
String Envoi = rs.getTimestamp("Envoi").toString();
|
||||||
String message = rs.getString("Message");
|
String Message = rs.getString("Message");
|
||||||
if (iDSource.equals(iD)) msg.append("Moi (").append(envoi).append(") : ").append(message);
|
if (IDSource.equals(ID)) Msg.append("Moi (").append(Envoi).append(") : ").append(Message);
|
||||||
else {
|
else {
|
||||||
String pseudoSource = getPseudo(iDSource) ;
|
String PseudoSource = getPseudo(IDSource) ;
|
||||||
msg.append(pseudoSource).append(" (").append(envoi).append(") : ").append(message);
|
Msg.append(PseudoSource).append(" (").append(Envoi).append(") : ").append(Message);
|
||||||
}
|
}
|
||||||
msg.append('\n');
|
Msg.append('\n');
|
||||||
}
|
}
|
||||||
// MSG de la forme :
|
// MSG de la forme :
|
||||||
// Source (Date) : Texte
|
// Source (Date) : Texte
|
||||||
|
|
@ -327,16 +310,16 @@ public class DataBase {
|
||||||
throwables.printStackTrace();
|
throwables.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return msg.toString();
|
return Msg.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de récupérer le pseudo actuel d'un utilisateur en fonction de son ID
|
* Methode permettant de recuperer le pseudo actuel d'un utilisateur en fonction de son ID
|
||||||
* @param idSource Id de l'utilsateur dont on veut connaitre le pseudo
|
* @param idSource Id de l'utilsateur dont on veut connaitre le pseudo
|
||||||
* @return Pseudo actuel
|
* @return Pseudo
|
||||||
*/
|
*/
|
||||||
private String getPseudo(String idSource) {
|
private String getPseudo(String idSource) {
|
||||||
String pseudo = "" ;
|
String Pseudo = "" ;
|
||||||
String requete= "SELECT * FROM `Utilisateurs` WHERE `ID` LIKE '" + idSource + "'";
|
String requete= "SELECT * FROM `Utilisateurs` WHERE `ID` LIKE '" + idSource + "'";
|
||||||
Statement stmt = null;
|
Statement stmt = null;
|
||||||
ResultSet rs = null ;
|
ResultSet rs = null ;
|
||||||
|
|
@ -354,34 +337,34 @@ public class DataBase {
|
||||||
try {
|
try {
|
||||||
assert rs != null;
|
assert rs != null;
|
||||||
if (rs.next()){
|
if (rs.next()){
|
||||||
pseudo = rs.getString("Pseudo") ;
|
Pseudo = rs.getString("Pseudo") ;
|
||||||
}
|
}
|
||||||
} catch (SQLException throwables) {
|
} catch (SQLException throwables) {
|
||||||
throwables.printStackTrace();
|
throwables.printStackTrace();
|
||||||
}
|
}
|
||||||
return pseudo ;
|
return Pseudo ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de récupérer les messages d'une plage de donnée [deb,fin] envoyés entre 2 utilisateurs
|
* Methode permettant de recuperer les messages d'une plage de donnée [deb,fin] envoyés entre 2 utilisateurs
|
||||||
* @param iD Utilisateur associé a ChatApp
|
* @param ID Utilisateur associé a ChatApp
|
||||||
* @param iDdestinataire Celui avec qui correspond ID
|
* @param IDdestinataire Celui avec qui correspond ID
|
||||||
* @param deb On veut les messages à partir de l'indice deb
|
* @param deb On veut les messages à partir de l'indice deb
|
||||||
* @param fin On veut les messages jusqu'a l'indice fin
|
* @param fin On veut les messages jusqu'a l'indice fin
|
||||||
* @return Les messages d'une plage de donnée [deb,fin]
|
* @return Les messages d'une plage de donnée [deb,fin]
|
||||||
*/
|
*/
|
||||||
public String recupMsg(String iD, String iDdestinataire, int deb , int fin) {
|
public String recupMsg(String ID, String IDdestinataire, int deb , int fin) {
|
||||||
StringBuilder msg = new StringBuilder();
|
StringBuilder Msg = new StringBuilder();
|
||||||
String petit;
|
String petit;
|
||||||
String grand;
|
String grand;
|
||||||
int comparaison = iD.compareTo(iDdestinataire);
|
int comparaison = ID.compareTo(IDdestinataire);
|
||||||
if (comparaison < 0) {
|
if (comparaison < 0) {
|
||||||
petit = iD;
|
petit = ID;
|
||||||
grand = iDdestinataire;
|
grand = IDdestinataire;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
petit = iDdestinataire;
|
petit = IDdestinataire;
|
||||||
grand = iD ;
|
grand = ID ;
|
||||||
}
|
}
|
||||||
String nomTable = "Chat_" + petit + "_" + grand ;
|
String nomTable = "Chat_" + petit + "_" + grand ;
|
||||||
String requete = "SELECT * FROM `"+ nomTable+"`";
|
String requete = "SELECT * FROM `"+ nomTable+"`";
|
||||||
|
|
@ -398,25 +381,25 @@ public class DataBase {
|
||||||
} catch (SQLException throwables) {
|
} catch (SQLException throwables) {
|
||||||
throwables.printStackTrace();
|
throwables.printStackTrace();
|
||||||
}
|
}
|
||||||
Integer taille = tailleBDD(nomTable);
|
Integer Taille = tailleBDD(nomTable);
|
||||||
if(taille < fin ){
|
if(Taille < fin ){
|
||||||
fin = taille ;
|
fin = Taille ;
|
||||||
}
|
}
|
||||||
for(int i = 0 ; i < fin; i++){
|
for(int i = 0 ; i < fin; i++){
|
||||||
try {
|
try {
|
||||||
assert rs != null;
|
assert rs != null;
|
||||||
if( rs.next()){
|
if( rs.next()){
|
||||||
String iDSource = rs.getString("Source");
|
String IDSource = rs.getString("Source");
|
||||||
String envoi = rs.getTimestamp("Envoi").toString();
|
String Envoi = rs.getTimestamp("Envoi").toString();
|
||||||
String message = rs.getString("Message");
|
String Message = rs.getString("Message");
|
||||||
if (i >= deb) {
|
if (i >= deb) {
|
||||||
if (iDSource.equals(iD)) {
|
if (IDSource.equals(ID)) {
|
||||||
msg.append("Moi (").append(envoi).append(") : ").append(message);
|
Msg.append("Moi (").append(Envoi).append(") : ").append(Message);
|
||||||
} else {
|
} else {
|
||||||
String PseudoSource = getPseudo(iDSource);
|
String PseudoSource = getPseudo(IDSource);
|
||||||
msg.append(PseudoSource).append(" (").append(envoi).append(") : ").append(message);
|
Msg.append(PseudoSource).append(" (").append(Envoi).append(") : ").append(Message);
|
||||||
}
|
}
|
||||||
msg.append('\n');
|
Msg.append('\n');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (SQLException throwables) {
|
} catch (SQLException throwables) {
|
||||||
|
|
@ -424,16 +407,16 @@ public class DataBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return msg.toString();
|
return Msg.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cette méthode sert à récupérer la taille d'un base de donnée
|
* Cette méthode sert à recuperer la taille d'un base de donnée
|
||||||
* @param nomTable Nom de la table de donnée dont on veut récuperer le nom
|
* @param nomTable Nom de la table de donnée dont on veut récuperer le nom
|
||||||
* @return Taille de la BDD
|
* @return Taille de la BDD
|
||||||
*/
|
*/
|
||||||
public Integer tailleBDD(String nomTable) {
|
public Integer tailleBDD(String nomTable) {
|
||||||
Integer taille = 0 ;
|
Integer Taille = 0 ;
|
||||||
String requete = "SELECT * FROM `"+nomTable+ "`";
|
String requete = "SELECT * FROM `"+nomTable+ "`";
|
||||||
Statement stmt = null;
|
Statement stmt = null;
|
||||||
ResultSet rs = null ;
|
ResultSet rs = null ;
|
||||||
|
|
@ -455,20 +438,20 @@ public class DataBase {
|
||||||
} catch (SQLException throwables) {
|
} catch (SQLException throwables) {
|
||||||
throwables.printStackTrace();
|
throwables.printStackTrace();
|
||||||
}
|
}
|
||||||
taille++; // on incremente Taille pour chaque solution trouvée
|
Taille++; // on incremente Taille pour chaque solution trouvée
|
||||||
}
|
}
|
||||||
return taille;
|
return Taille;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Methode permettant de savoir si un utilisateur existe dans la base de donnée 'Utilisateurs'
|
* Methode permettant de savoir si un utilisateur existe dans la base de donnée 'Utilisateurs'
|
||||||
* @param iD On recherche l'utilisateur dont l'ID est ID
|
* @param ID On recherche l'utilisateur dont l'ID est ID
|
||||||
* @return True si l'utilisateur existe , False sinon
|
* @return True si l'utilisateur existe , False sinon
|
||||||
*/
|
*/
|
||||||
public boolean idExiste(String iD){
|
public boolean idExiste(String ID){
|
||||||
boolean existe = false ;
|
boolean existe = false ;
|
||||||
// Verification que l'utilisateur n'existe pas
|
// Verification que l'utilisateur n'existe pas
|
||||||
String requete = "SELECT * FROM `Utilisateurs` WHERE `ID` LIKE '" + iD +"'";
|
String requete = "SELECT * FROM `Utilisateurs` WHERE `ID` LIKE '" + ID +"'";
|
||||||
Statement stmt;
|
Statement stmt;
|
||||||
ResultSet rs = null ;
|
ResultSet rs = null ;
|
||||||
try {
|
try {
|
||||||
|
|
@ -477,34 +460,22 @@ public class DataBase {
|
||||||
} catch (SQLException throwables) {
|
} catch (SQLException throwables) {
|
||||||
throwables.printStackTrace();
|
throwables.printStackTrace();
|
||||||
}
|
}
|
||||||
try {
|
existe = (!rs.equals(null));
|
||||||
if(rs.next()){
|
|
||||||
existe = (!rs.equals(null));
|
|
||||||
}
|
|
||||||
} catch (SQLException throwables) {
|
|
||||||
throwables.printStackTrace();
|
|
||||||
}
|
|
||||||
return existe;
|
return existe;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public String getNomTable(Utilisateur U1, Utilisateur U2){
|
||||||
* Méthode permettant de récupérer le nom de la table où sont stockés les messages de 2 utilisateurs.
|
|
||||||
* @param u1 Un des 2 utilisateurs
|
|
||||||
* @param u2 Le second utilisateur
|
|
||||||
* @return Le nom de la table des historiques
|
|
||||||
*/
|
|
||||||
public String getNomTable(Utilisateur u1, Utilisateur u2){
|
|
||||||
String petit;
|
String petit;
|
||||||
String grand;
|
String grand;
|
||||||
int comparaison;
|
int comparaison;
|
||||||
comparaison = u1.getId().compareTo(u2.getId());
|
comparaison = U1.getId().compareTo(U2.getId());
|
||||||
if (comparaison < 0) {
|
if (comparaison < 0) {
|
||||||
petit = u1.getId();
|
petit = U1.getId();
|
||||||
grand = u2.getId();
|
grand = U2.getId();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
petit = u2.getId() ;
|
petit = U2.getId() ;
|
||||||
grand = u1.getId() ;
|
grand = U1.getId() ;
|
||||||
}
|
}
|
||||||
return "Chat_" + petit + "_" + grand ;
|
return "Chat_" + petit + "_" + grand ;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,16 @@
|
||||||
package chatapp.Model;
|
package chatapp.Model;
|
||||||
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Classe représentant la liste des utilisateurs actifs, stockée localement.
|
* Classe representant La liste des utilisateurs actifs, stockée localement
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public class ListUtilisateurs {
|
public class ListUtilisateurs {
|
||||||
|
|
||||||
/* On conserve dans cette liste tout les utilisateurs actuellement actifs */
|
// On conserve dans cette liste tout les utilisateurs actuellement actifs
|
||||||
private ArrayList<Utilisateur> actifUsers ;
|
private ArrayList<Utilisateur> actifUsers ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -23,18 +22,17 @@ public class ListUtilisateurs {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers'
|
* Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers'
|
||||||
* @param u On va rajouter cet utilisateur dans la liste
|
* @param u on va rajouter cet utilisateur dans la liste
|
||||||
*/
|
*/
|
||||||
public synchronized void addList(Utilisateur u) {
|
public void addList(Utilisateur u) {
|
||||||
if (! this.appartient(u)){
|
if((verifierUnicite(u.getPseudo()))) {
|
||||||
this.actifUsers.add(u);
|
this.actifUsers.add(u);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Récupérer un utilisateur à partir de son pseudo.
|
* Recuperer un utilisateur a partir de son pseudo
|
||||||
* @param pseudo Pseudo de l'utilisateur que l'on souhaite retrouver
|
* @param pseudo Pseudo de l'utilisateur que l'on souhaite retrouver
|
||||||
* @return L'utilisateur associé à ce pseudo
|
|
||||||
*/
|
*/
|
||||||
public Utilisateur getPseudoList(String pseudo) {
|
public Utilisateur getPseudoList(String pseudo) {
|
||||||
for(Utilisateur elem: this.actifUsers)
|
for(Utilisateur elem: this.actifUsers)
|
||||||
|
|
@ -47,10 +45,8 @@ public class ListUtilisateurs {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Récupérer un utilisateur à partir de son addresse IP
|
* Recuperer un utilisateur a partir de son addresse IP
|
||||||
* @param ip Adresse IP de l'utilisateur que l'on souhaite retrouver
|
* @param ip @IP de l'utilisateur que l'on souhaite retrouver
|
||||||
* @return L'utilisateur associé à l'adresse IP
|
|
||||||
* @throws Exception No such user with this IP address
|
|
||||||
*/
|
*/
|
||||||
public Utilisateur getIPList(InetAddress ip) throws Exception {
|
public Utilisateur getIPList(InetAddress ip) throws Exception {
|
||||||
for(Utilisateur elem: this.actifUsers)
|
for(Utilisateur elem: this.actifUsers)
|
||||||
|
|
@ -62,27 +58,11 @@ public class ListUtilisateurs {
|
||||||
throw new Exception("No such user with this IP address") ;
|
throw new Exception("No such user with this IP address") ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Récupérer un utilisateur à partir de son ID
|
|
||||||
* @param iD L'ID de l'utilisateur que l'on souhaite retrouver
|
|
||||||
* @return L'utilisateur associé à l'adresse ID
|
|
||||||
* @throws Exception No such user with this ID
|
|
||||||
*/
|
|
||||||
public Utilisateur getIDList(String iD) throws Exception {
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
if (elem.getId().equals(iD) ) {
|
|
||||||
return elem ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
throw new Exception("No such user with this ID") ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur
|
* Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur
|
||||||
* @param u On va supprimer cet utilisateur dans la liste
|
* @param u on va supprimer cet utilisateur dans la liste
|
||||||
*/
|
*/
|
||||||
public synchronized void supprimerList(Utilisateur u) {
|
public void supprimerList(Utilisateur u) {
|
||||||
boolean Sup = false ;
|
boolean Sup = false ;
|
||||||
for(Utilisateur elem: this.actifUsers)
|
for(Utilisateur elem: this.actifUsers)
|
||||||
{
|
{
|
||||||
|
|
@ -90,7 +70,6 @@ public class ListUtilisateurs {
|
||||||
this.actifUsers.remove(elem);
|
this.actifUsers.remove(elem);
|
||||||
Sup = true ;
|
Sup = true ;
|
||||||
this.afficherListeUtilisateurs();
|
this.afficherListeUtilisateurs();
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!Sup) {
|
if (!Sup) {
|
||||||
|
|
@ -100,45 +79,35 @@ public class ListUtilisateurs {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modifier le pseudo d'un utilisateur dans la liste des utilisateurs actifs 'actifUsers'
|
* Modifier le pseudo d'un utilisateur dans la liste des utilisateurs actifs 'actifUsers'
|
||||||
* @param ancien Pseudo à remplacer
|
* @param ancien correspond au pseudo remplacer
|
||||||
* @param nouveau Nouveau pseudo
|
* @param nouveau correspond au nouveau pseudo
|
||||||
*/
|
*/
|
||||||
public synchronized void modifierList(String ancien , String nouveau) {
|
public void modifierList(String ancien , String nouveau) {
|
||||||
for(Utilisateur elem: this.actifUsers)
|
for(Utilisateur elem: this.actifUsers)
|
||||||
{
|
{
|
||||||
if (ancien.equals( elem.getPseudo() ) ) {
|
if (ancien.equals( elem.getPseudo() ) ) {
|
||||||
this.actifUsers.remove(elem);
|
this.actifUsers.remove(elem);
|
||||||
elem.setPseudo(nouveau);
|
elem.setPseudo(nouveau);
|
||||||
this.addList(elem);
|
this.addList(elem);
|
||||||
break ;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.afficherListeUtilisateurs();
|
this.afficherListeUtilisateurs();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de savoir si un utilisateur est contenu dans la liste 'actifUsers'
|
* Methode permettant de savoir si un utilisateur est contenu dans la liste 'actifUsers'
|
||||||
* @param u On souhaite savoir si cet utilisateur appartient a la liste
|
* @param u on souhait savoir si cette utilisateur appartient a la liste
|
||||||
* @return True si il appartient, False sinon
|
* @return True si il appartient, false sinon
|
||||||
*/
|
*/
|
||||||
public Boolean appartient(Utilisateur u) {
|
public Boolean appartient(Utilisateur u) {
|
||||||
boolean appartient = false ;
|
return this.actifUsers.contains(u);
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
if (elem.getId().equals(u.getId())) {
|
|
||||||
appartient = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println("Test appartient : " + appartient);
|
|
||||||
return appartient;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Vérifie qu'aucun autre utilisateur ne posséde le meme pseudo
|
* Verifie qu'aucun autre utilisateur ne possede le meme pseudo
|
||||||
* @param pseudo Pseudo dont on veut vérifier l'unicité
|
* @param pseudo on va supprimer cet utilisateur dans la liste
|
||||||
* @return True si aucun utilisateur de la liste possède ce pseudo, False sinon
|
* @return True si aucun utilisateur de la liste possede ce pseudo, false sinon
|
||||||
*/
|
*/
|
||||||
public Boolean verifierUnicite(String pseudo) {
|
public Boolean verifierUnicite(String pseudo) {
|
||||||
for(Utilisateur elem: this.actifUsers)
|
for(Utilisateur elem: this.actifUsers)
|
||||||
|
|
@ -151,7 +120,7 @@ public class ListUtilisateurs {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode affichant la liste des utilisateurs actifs
|
* Methode affichant la liste des utilisateurs actifs
|
||||||
*/
|
*/
|
||||||
public void afficherListeUtilisateurs() {
|
public void afficherListeUtilisateurs() {
|
||||||
System.out.println ("Liste des utilisateurs actifs : ");
|
System.out.println ("Liste des utilisateurs actifs : ");
|
||||||
|
|
@ -164,7 +133,7 @@ public class ListUtilisateurs {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter : ActifUsers (liste des utilisateurs actifs)
|
* Getter
|
||||||
* @return La liste des utilisateurs actifs
|
* @return La liste des utilisateurs actifs
|
||||||
*/
|
*/
|
||||||
public ArrayList<Utilisateur> getActifUsers(){
|
public ArrayList<Utilisateur> getActifUsers(){
|
||||||
|
|
|
||||||
|
|
@ -7,51 +7,36 @@ import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Classe représentant les messages envoyés en TCP lors d'une session de clavardage.
|
* Classe representant les messages envoyes en TCP lors d'une session de clavardage.
|
||||||
* <br> Un message Horodaté est composé :
|
* Un message Horodate est compose d'un destintaire, d'une source , d'un message et d'une date d'envoie.
|
||||||
* <br> - d'un destintaire,
|
|
||||||
* <br> - d'une source,
|
|
||||||
* <br> - d'un message,
|
|
||||||
* <br> - d'une date d'envoi.
|
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public class MessageHorodate implements Serializable {
|
public class MessageHorodate implements Serializable {
|
||||||
/* Un message est toujours adressé à un destinataire */
|
|
||||||
private Utilisateur destinataire ;
|
private Utilisateur destinataire ;
|
||||||
|
|
||||||
/* Un message est toujours associé à un utilisateur source */
|
|
||||||
private Utilisateur source ;
|
private Utilisateur source ;
|
||||||
|
|
||||||
/* La date d'horodatage du message */
|
|
||||||
private Date dateHorodatage ;
|
private Date dateHorodatage ;
|
||||||
|
private int type; // 0 = debut de la communication, 1= message de communication, 2 = fin de la communicataion
|
||||||
/* Le type d'un messge : 0 = debut de la communication, 1= message de communication, 2 = fin de la communicataion */
|
|
||||||
private int type;
|
|
||||||
|
|
||||||
/* Le corps du message */
|
|
||||||
private String Message;
|
private String Message;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Constructeur , le message va etre horodaté
|
* Constructeur , le message va etre horodate
|
||||||
* @param destinataire - Destinataire du message
|
* @param destinataire - Destinataire du message
|
||||||
* @param source - Source du message
|
* @param source - Source du message
|
||||||
* @param message - Message envoyé
|
* @param Message - Message envoye
|
||||||
* @param type - Le type du message
|
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public MessageHorodate(Utilisateur destinataire, Utilisateur source, String message, int type) {
|
public MessageHorodate(Utilisateur destinataire, Utilisateur source, String Message, int type) {
|
||||||
this.setDestinataire(destinataire) ;
|
this.setDestinataire(destinataire) ;
|
||||||
this.setSource(source) ;
|
this.setSource(source) ;
|
||||||
this.setMessage(message) ;
|
this.setMessage(Message) ;
|
||||||
this.setDateHorodatage(new Date());
|
this.setDateHorodatage(new Date());
|
||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter: Date d'horodatage
|
* Setter: Date d'horodatage
|
||||||
* <br> On modifie le date d'horodatage
|
* On modifie le date d'horodatage
|
||||||
* @param d La nouvelle date d'horodatage
|
|
||||||
*/
|
*/
|
||||||
public void setDate(Date d) {
|
public void setDate(Date d) {
|
||||||
this.setDateHorodatage(d);
|
this.setDateHorodatage(d);
|
||||||
|
|
@ -59,24 +44,24 @@ public class MessageHorodate implements Serializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Permet de créer une représentation string du message
|
* Permet de creer une representation string du message
|
||||||
* @return Les différents attributs de la classe sous forme de string
|
* @return Les differents attributs de la classe sous forme de string
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
String msg = "";
|
String Msg = "";
|
||||||
msg += ("Destinataire::" + this.getDestinataire() + "\n") ;
|
Msg += ("Destinataire::" + this.getDestinataire() + "\n") ;
|
||||||
msg += ("Source::" + this.getSource()+ "\n") ;
|
Msg += ("Source::" + this.getSource()+ "\n") ;
|
||||||
msg += ("Type::"+ this.type+ "\n");
|
Msg += ("Type::"+ this.type+ "\n");
|
||||||
msg += ("Date::" + this.dateToString() + "\n") ;
|
Msg += ("Date::" + this.dateToString() + "\n") ;
|
||||||
msg += ("Message::" + this.getMessage() + "\n" );
|
Msg += ("Message::" + this.getMessage() + "\n" );
|
||||||
return msg ;
|
return Msg ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Permet de créer une représentation string de la date d'horodatage
|
* Permet de creer une representation string de la date d'horodatage
|
||||||
* @return La date d'horodatage du message en format yyyy/MM/dd HH:mm:ss
|
* @return La date d'horodatage du message en format yyyy/MM/dd HH:mm:ss
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
|
|
@ -88,8 +73,7 @@ public class MessageHorodate implements Serializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Permet de re créer un message horodaté à partir d'un string
|
* Permet de re creer un message horodate a partir d'un string
|
||||||
* @param s Le message permettant de re créer un msg horodaté
|
|
||||||
* @return un messageHorodate
|
* @return un messageHorodate
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
|
|
@ -118,8 +102,7 @@ public class MessageHorodate implements Serializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter: Utilisateur Source
|
* Setter: Utilisateur Source
|
||||||
* <br> On modifie l'utilisateur source
|
* On modifie l'utilisateur source
|
||||||
* @param source Le nouvel utilisateur source
|
|
||||||
*/
|
*/
|
||||||
public void setSource(Utilisateur source) {
|
public void setSource(Utilisateur source) {
|
||||||
this.source = source;
|
this.source = source;
|
||||||
|
|
@ -135,8 +118,7 @@ public class MessageHorodate implements Serializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter: Utilisateur Destinataire
|
* Setter: Utilisateur Destinataire
|
||||||
* <br> On modifie l'utilisateur Destinataire
|
* On modifie l'utilisateur Destinataire
|
||||||
* @param destinataire Le nouveau destinataire
|
|
||||||
*/
|
*/
|
||||||
public void setDestinataire(Utilisateur destinataire) {
|
public void setDestinataire(Utilisateur destinataire) {
|
||||||
this.destinataire = destinataire;
|
this.destinataire = destinataire;
|
||||||
|
|
@ -152,8 +134,7 @@ public class MessageHorodate implements Serializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter: Message envoye
|
* Setter: Message envoye
|
||||||
* <br> On modifie le message envoyé
|
* On modifie le message envoye
|
||||||
* @param message Nouveau message
|
|
||||||
*/
|
*/
|
||||||
public void setMessage(String message) {
|
public void setMessage(String message) {
|
||||||
Message = message;
|
Message = message;
|
||||||
|
|
@ -168,8 +149,7 @@ public class MessageHorodate implements Serializable {
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Setter: 'Type' du message horodate
|
* Setter: 'Type' du message horodate
|
||||||
* <br> On modifie l'integer 'Type'
|
* On modifie l'integer 'Type'
|
||||||
* @param Type Nouveau type
|
|
||||||
*/
|
*/
|
||||||
public void setType(int Type) {
|
public void setType(int Type) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
|
|
@ -185,8 +165,7 @@ public class MessageHorodate implements Serializable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter: Date d'horodatage
|
* Setter: Date d'horodatage
|
||||||
* <br> On modifie le date.
|
* On modifie le date.
|
||||||
* @param dateHorodatage Nouvelle date d'horodatage
|
|
||||||
*/
|
*/
|
||||||
public void setDateHorodatage(Date dateHorodatage) {
|
public void setDateHorodatage(Date dateHorodatage) {
|
||||||
this.dateHorodatage = dateHorodatage;
|
this.dateHorodatage = dateHorodatage;
|
||||||
|
|
|
||||||
|
|
@ -1,113 +0,0 @@
|
||||||
@startuml
|
|
||||||
|
|
||||||
title __MODEL's Class Diagram__\n
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Model {
|
|
||||||
class chatapp.Model.DataBase {
|
|
||||||
- connection : Connection
|
|
||||||
- dBurl : String
|
|
||||||
{static} - instance : DataBase
|
|
||||||
- login : String
|
|
||||||
- pswd : String
|
|
||||||
+ DataBase()
|
|
||||||
+ ajoutHistorique()
|
|
||||||
+ ajoutUtilisateurs()
|
|
||||||
+ creationTableHistorique()
|
|
||||||
{static} + getInstance()
|
|
||||||
+ getNomTable()
|
|
||||||
+ idExiste()
|
|
||||||
+ majPseudo()
|
|
||||||
+ majUtilisateursActifs()
|
|
||||||
+ recupMsg()
|
|
||||||
+ recupNMsg()
|
|
||||||
+ tailleBDD()
|
|
||||||
- getPseudo()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Model {
|
|
||||||
class chatapp.Model.ListUtilisateurs {
|
|
||||||
- actifUsers : ArrayList<Utilisateur>
|
|
||||||
+ ListUtilisateurs()
|
|
||||||
+ addList()
|
|
||||||
+ afficherListeUtilisateurs()
|
|
||||||
+ appartient()
|
|
||||||
+ getActifUsers()
|
|
||||||
+ getIDList()
|
|
||||||
+ getIPList()
|
|
||||||
+ getPseudoList()
|
|
||||||
+ modifierList()
|
|
||||||
+ supprimerList()
|
|
||||||
+ verifierUnicite()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Model {
|
|
||||||
class chatapp.Model.MessageHorodate {
|
|
||||||
- Message : String
|
|
||||||
- dateHorodatage : Date
|
|
||||||
- type : int
|
|
||||||
+ MessageHorodate()
|
|
||||||
+ dateToString()
|
|
||||||
+ getDateHorodatage()
|
|
||||||
+ getDestinataire()
|
|
||||||
+ getMessage()
|
|
||||||
+ getSource()
|
|
||||||
+ getType()
|
|
||||||
+ setDate()
|
|
||||||
+ setDateHorodatage()
|
|
||||||
+ setDestinataire()
|
|
||||||
+ setMessage()
|
|
||||||
+ setSource()
|
|
||||||
+ setType()
|
|
||||||
{static} + stringToMessageHorodate()
|
|
||||||
+ toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Model {
|
|
||||||
class chatapp.Model.Utilisateur {
|
|
||||||
~ TAILLE_MAX : Integer
|
|
||||||
- id : String
|
|
||||||
- ip : InetAddress
|
|
||||||
- port : Integer
|
|
||||||
- pseudo : String
|
|
||||||
+ Utilisateur()
|
|
||||||
+ Utilisateur()
|
|
||||||
+ equals()
|
|
||||||
+ getId()
|
|
||||||
+ getIp()
|
|
||||||
+ getPort()
|
|
||||||
+ getPseudo()
|
|
||||||
+ setPort()
|
|
||||||
+ setPseudo()
|
|
||||||
{static} + stringToUtilisateur()
|
|
||||||
+ toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
chatapp.Model.MessageHorodate .up.|> java.io.Serializable
|
|
||||||
chatapp.Model.MessageHorodate o-- chatapp.Model.Utilisateur : destinataire
|
|
||||||
chatapp.Model.MessageHorodate o-- chatapp.Model.Utilisateur : source
|
|
||||||
|
|
||||||
|
|
||||||
right footer
|
|
||||||
|
|
||||||
|
|
||||||
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
|
|
||||||
For more information about this tool, please contact philippe.mesmeur@gmail.com
|
|
||||||
endfooter
|
|
||||||
|
|
||||||
@enduml
|
|
||||||
|
|
@ -6,115 +6,53 @@ import java.net.UnknownHostException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Classe representant un Utilisateur.
|
* Classe representant un Utilisateur
|
||||||
* <br> Un Utilisateur est associé avec :
|
* Un Utilisateur est associe avec un pseudo, un numero de port, une addresse IP ainsi qu'un ID.
|
||||||
* <br> - un pseudo,
|
|
||||||
* <br> - un numéro de port,
|
|
||||||
* <br> - une addresse IP
|
|
||||||
* <br> - un ID.
|
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public class Utilisateur {
|
public class Utilisateur {
|
||||||
|
|
||||||
/* Un utilisateur possede un pseudo unique */
|
|
||||||
private String pseudo ;
|
private String pseudo ;
|
||||||
|
|
||||||
/* Un port (utilisé lors de nos premiers tests pour tester le broadcast) */
|
|
||||||
private Integer port;
|
private Integer port;
|
||||||
|
|
||||||
/* Un utilisateur est associé à une adresse IP */
|
|
||||||
private final InetAddress ip ;
|
private final InetAddress ip ;
|
||||||
|
|
||||||
/* Chaque utilisateur possede un ID unique */
|
|
||||||
private final String id ;
|
private final String id ;
|
||||||
|
|
||||||
/* La taille maximum d'un ID */
|
|
||||||
Integer TAILLE_MAX = 10;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur : Utilisateur (3 paramètres)
|
* Constructeur : Utilisateur
|
||||||
* @param pseudo Le pseudo associé
|
* @param pseudo Le pseudo associe
|
||||||
* @param port Le port
|
* @param port
|
||||||
* @param ip L'adresse IP
|
* @param ip
|
||||||
*/
|
*/
|
||||||
public Utilisateur(String pseudo,Integer port, InetAddress ip ){
|
public Utilisateur(String pseudo,Integer port, InetAddress ip ){
|
||||||
this.setPseudo(pseudo) ;
|
this.setPseudo(pseudo) ;
|
||||||
this.setPort(port);
|
this.setPort(port);
|
||||||
this.ip = ip ;
|
this.ip = ip ;
|
||||||
String aux= ip.getHostName() ;
|
this.id = ip.getHostName() ;
|
||||||
if(aux.length() > TAILLE_MAX)
|
|
||||||
aux = aux.substring(0, TAILLE_MAX);
|
|
||||||
this.id = aux ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructeur : Utilisateur (4 paramètres)
|
|
||||||
* @param pseudo Le pseudo associé
|
|
||||||
* @param port Le port
|
|
||||||
* @param ip L'adresse IP
|
|
||||||
* @param id L'id
|
|
||||||
*/
|
|
||||||
public Utilisateur(String pseudo,Integer port, InetAddress ip , String id){
|
|
||||||
this.setPseudo(pseudo) ;
|
|
||||||
this.setPort(port);
|
|
||||||
this.ip = ip ;
|
|
||||||
this.id = id ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Getter Pseudo
|
|
||||||
* @return Le pseudo de l'utilisateur
|
|
||||||
*/
|
|
||||||
public String getPseudo() {
|
public String getPseudo() {
|
||||||
return pseudo;
|
return pseudo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Setter Pseudo
|
|
||||||
* @param pseudo Le nouveau pseudo que l'on souhaite
|
|
||||||
*/
|
|
||||||
public void setPseudo(String pseudo) {
|
public void setPseudo(String pseudo) {
|
||||||
this.pseudo = pseudo;
|
this.pseudo = pseudo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Getter Port
|
|
||||||
* @return Le numéro de port de l'utilisateur
|
|
||||||
*/
|
|
||||||
public Integer getPort() {
|
public Integer getPort() {
|
||||||
return port;
|
return port;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Setter Port
|
|
||||||
* @param port Le nouveau numéro de port
|
|
||||||
*/
|
|
||||||
public void setPort(Integer port) {
|
public void setPort(Integer port) {
|
||||||
this.port = port;
|
this.port = port;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Getter IP
|
|
||||||
* @return L'adresse IP de l'utilisateur
|
|
||||||
*/
|
|
||||||
public InetAddress getIp() {
|
public InetAddress getIp() {
|
||||||
return ip;
|
return ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Getter ID
|
|
||||||
* @return L'ID de l'utilisateur
|
|
||||||
*/
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Méthode permettant de convertir un objet Utilisateur en String
|
|
||||||
* <br> Format du string :
|
|
||||||
* <br> pseudo ___ | port ___ | ip ___ | id ___ | ( '___' sont à remplacer par les valeurs réels)
|
|
||||||
* @return L'utilisateur sous forme de String
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public String toString(){
|
public String toString(){
|
||||||
String s = "";
|
String s = "";
|
||||||
|
|
@ -125,11 +63,6 @@ public class Utilisateur {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Méthode permettant de convertir un string en Utilisateur
|
|
||||||
* @param s Le paramètre String a transformé
|
|
||||||
* @return Un utilisateur
|
|
||||||
*/
|
|
||||||
public static Utilisateur stringToUtilisateur(String s) {
|
public static Utilisateur stringToUtilisateur(String s) {
|
||||||
String name;
|
String name;
|
||||||
Integer port = 0;
|
Integer port = 0;
|
||||||
|
|
@ -142,18 +75,14 @@ public class Utilisateur {
|
||||||
id=mots[10];
|
id=mots[10];
|
||||||
Utilisateur user = null;
|
Utilisateur user = null;
|
||||||
try {
|
try {
|
||||||
user = new Utilisateur(name,port,InetAddress.getByName(ip.split("/")[1]), id);
|
user = new Utilisateur(name,port,InetAddress.getByName(ip.split("/")[1]));
|
||||||
} catch (UnknownHostException e) {
|
} catch (UnknownHostException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Méthode permettant de comparer deux utilisateurs entre eux grace à leur ID.
|
|
||||||
* @param u L'utilisateur avec lequel on veut être comparer.
|
|
||||||
* @return True si ils ont le même ID, False sinon.
|
|
||||||
*/
|
|
||||||
public Boolean equals(Utilisateur u) {
|
public Boolean equals(Utilisateur u) {
|
||||||
return this.getId().equals( u.getId() ) ;
|
return this.getId().equals( u.getId() ) ;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,165 +0,0 @@
|
||||||
package chatapp.Protocol;
|
|
||||||
|
|
||||||
import chatapp.Controller.ChatApp;
|
|
||||||
import chatapp.Model.Utilisateur;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.URI;
|
|
||||||
import java.net.http.HttpClient;
|
|
||||||
import java.net.http.HttpRequest;
|
|
||||||
import java.net.http.HttpResponse;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe representant les échanges HTTP entre un utilisateur distant et le servlet.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class HttpEchange {
|
|
||||||
|
|
||||||
/* URL de notre serveur de presence */
|
|
||||||
private String url = "http://192.168.1.72:8080/Server_AL_NM/";
|
|
||||||
// private String url = "https://srv-gei-tomcat.insa-toulouse.fr/Server_AL_NM/";
|
|
||||||
//private String url = "https://srv-gei-tomcat.insa-toulouse.fr/Server_AL_NM/";
|
|
||||||
/* True si l'utilisateur peut se connecter avec ce nom d'utilisateur , False sinon */
|
|
||||||
private static boolean connecte = false;
|
|
||||||
|
|
||||||
/* Une instance de chatapp */
|
|
||||||
private ChatApp chatapp;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p> Constructeur de la classe HttpEchange</p>
|
|
||||||
* @param chatapp La methode prend toujours en argument un paramètre chatApp associé à un utilisateur.
|
|
||||||
*/
|
|
||||||
public HttpEchange(ChatApp chatapp){
|
|
||||||
this.chatapp = chatapp;
|
|
||||||
this.url = (String) chatapp.getConfigJSON().get("ServeurURL");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p> Cette méthode permet de communiquer avec le servlet grâce à des requetes http de type Post.</p>
|
|
||||||
* @param type Le type de message ("Connexion", "Changement de pseudo" , "Deconnexion") ainsi que les parametres associés
|
|
||||||
* @return True ou False selon la réponse a chaque type de message envoyé.
|
|
||||||
* @throws IOException
|
|
||||||
* @throws InterruptedException
|
|
||||||
*/
|
|
||||||
public boolean sendPost(String type) throws IOException, InterruptedException{
|
|
||||||
boolean reussi = false ;
|
|
||||||
/*---------------------------------CONNEXION---------------------------------*/
|
|
||||||
if (type.equals("Connexion")){
|
|
||||||
System.out.println("Tentative de connexion distante");
|
|
||||||
HttpClient client = HttpClient.newHttpClient();
|
|
||||||
String requestBody = "Connexion\n" + this.chatapp.getMe().toString() ;
|
|
||||||
HttpRequest request = HttpRequest.newBuilder()
|
|
||||||
.uri(URI.create(url))
|
|
||||||
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
HttpResponse<String> response = client.send(request,
|
|
||||||
HttpResponse.BodyHandlers.ofString());
|
|
||||||
|
|
||||||
/* Partie réponse du servlet */
|
|
||||||
if(response.body().equals("")){
|
|
||||||
System.out.println("Reponse recue vide");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
switch (response.body().split("\n")[0]){
|
|
||||||
case "Reponse Connexion":
|
|
||||||
reussi = Boolean.parseBoolean(response.body().split("\n")[1]);
|
|
||||||
System.out.println("Connexion acceptee");
|
|
||||||
int max = response.body().split("\n").length ;
|
|
||||||
if (max > 2 ){
|
|
||||||
for (int i = 2 ; i < max ; i++){
|
|
||||||
String suite = response.body().split("\n")[i];
|
|
||||||
// Le server nous envoie les utilisateurs connectés en local ou à distance
|
|
||||||
if (!suite.equals("")){
|
|
||||||
System.out.println(suite);
|
|
||||||
this.chatapp.getActifUsers().addList(Utilisateur.stringToUtilisateur(suite));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
System.out.println("Erreur dans le format de la réponse reçue");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*---------------------------------DECONNEXION---------------------------------*/
|
|
||||||
else if(type.equals("Deconnexion")){
|
|
||||||
System.out.println("Tentative de deconnexion distante");
|
|
||||||
HttpClient client = HttpClient.newHttpClient();
|
|
||||||
String requestBody = "Deconnexion\n" + this.chatapp.getMe().toString() ;
|
|
||||||
HttpRequest request = HttpRequest.newBuilder()
|
|
||||||
.uri(URI.create(url))
|
|
||||||
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
HttpResponse<String> response = client.send(request,
|
|
||||||
HttpResponse.BodyHandlers.ofString());
|
|
||||||
|
|
||||||
/* Partie réponse du servlet */
|
|
||||||
if(response.body().equals("")){
|
|
||||||
System.out.println("Reponse recue vide");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
System.out.println(response.body());
|
|
||||||
if(response.body().contains("Deconnexion")){
|
|
||||||
reussi = true;
|
|
||||||
System.out.println("Deconnexion acceptee");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*---------------------------------PSEUDO---------------------------------*/
|
|
||||||
/*---------------------------Le nouveau pseudo----------------------------*/
|
|
||||||
else if(type.contains("Pseudo")){
|
|
||||||
String nouveau = type.split(" ")[1];
|
|
||||||
System.out.println("Tentative de modification de pseudo d'un hote distant");
|
|
||||||
HttpClient client = HttpClient.newHttpClient();
|
|
||||||
String requestBody = "Pseudo\n" + this.chatapp.getMe().toString() + "\n" + nouveau;
|
|
||||||
HttpRequest request = HttpRequest.newBuilder()
|
|
||||||
.uri(URI.create(url))
|
|
||||||
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
HttpResponse<String> response = client.send(request,
|
|
||||||
HttpResponse.BodyHandlers.ofString());
|
|
||||||
|
|
||||||
/* Partie réponse du servlet */
|
|
||||||
if(response.body().equals("")){
|
|
||||||
System.out.println("Reponse recue vide");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
System.out.println(response.body());
|
|
||||||
switch (response.body().split("\n")[0]) {
|
|
||||||
case "Reponse Pseudo":
|
|
||||||
reussi = Boolean.parseBoolean(response.body().split("\n")[1]);
|
|
||||||
System.out.println("Connexion acceptee");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
System.out.println("Erreur dans le format de la réponse reçue");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
System.out.println("Erreur de type");
|
|
||||||
}
|
|
||||||
return reussi;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Getter : Connecte
|
|
||||||
* @return Le boolean connecté (True s'il peut se connecter avec ce nom d'utilisateur , False sinon)
|
|
||||||
*/
|
|
||||||
public static Boolean getConnecte() {
|
|
||||||
return connecte;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Setter : Connecte
|
|
||||||
* @param value La nouvelle valeur du boolean de connexion
|
|
||||||
*/
|
|
||||||
public static void setConnecte(Boolean value) {
|
|
||||||
connecte = value ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,121 +0,0 @@
|
||||||
@startuml
|
|
||||||
|
|
||||||
title __PROTOCOL's Class Diagram__\n
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Protocol {
|
|
||||||
class chatapp.Protocol.HttpEchange {
|
|
||||||
{static} - connecte : boolean
|
|
||||||
- url : String
|
|
||||||
+ HttpEchange()
|
|
||||||
{static} + getConnecte()
|
|
||||||
+ sendPost()
|
|
||||||
{static} + setConnecte()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Protocol {
|
|
||||||
class chatapp.Protocol.RunnerEcouteTCP {
|
|
||||||
- listeSessions : ArrayList<SessionClavardage>
|
|
||||||
- pcs : PropertyChangeSupport
|
|
||||||
+ RunnerEcouteTCP()
|
|
||||||
+ addPropertyChangeListener()
|
|
||||||
+ addSession()
|
|
||||||
+ ecouteTCP()
|
|
||||||
+ getSessionClavardage()
|
|
||||||
+ run()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Protocol {
|
|
||||||
class chatapp.Protocol.RunnerEcouteUDP {
|
|
||||||
+ RunnerEcouteUDP()
|
|
||||||
+ run()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Protocol {
|
|
||||||
class chatapp.Protocol.RunnerUDP {
|
|
||||||
~ data : DatagramPacket
|
|
||||||
+ RunnerUDP()
|
|
||||||
+ run()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Protocol {
|
|
||||||
class chatapp.Protocol.SessionClavardage {
|
|
||||||
- derniersMsg : ArrayList<MessageHorodate>
|
|
||||||
- in : ObjectInputStream
|
|
||||||
- link : Socket
|
|
||||||
- out : ObjectOutputStream
|
|
||||||
- pcs : PropertyChangeSupport
|
|
||||||
+ SessionClavardage()
|
|
||||||
+ SessionClavardage()
|
|
||||||
+ addPropertyChangeListener()
|
|
||||||
+ arretSession()
|
|
||||||
+ envoiMsg()
|
|
||||||
+ getApp()
|
|
||||||
+ getDernierMsg()
|
|
||||||
+ getIn()
|
|
||||||
+ getOut()
|
|
||||||
+ getU2()
|
|
||||||
+ initierSession()
|
|
||||||
+ run()
|
|
||||||
+ setApp()
|
|
||||||
+ setIn()
|
|
||||||
+ setLink()
|
|
||||||
+ setOut()
|
|
||||||
+ setU2()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace Protocol {
|
|
||||||
class chatapp.Protocol.UDPEchange {
|
|
||||||
{static} - Connecte : Boolean
|
|
||||||
{static} - PseudoValide : Boolean
|
|
||||||
{static} + ecouteUDP()
|
|
||||||
{static} + envoiBroadcast()
|
|
||||||
{static} + envoiUnicast()
|
|
||||||
{static} + getConnecte()
|
|
||||||
{static} + getCurrentIp()
|
|
||||||
{static} + getPseudoValide()
|
|
||||||
{static} + setConnecte()
|
|
||||||
{static} + setPseudoValide()
|
|
||||||
{static} ~ listAllBroadcastAddresses()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
chatapp.Protocol.HttpEchange o-- chatapp.Controller.ChatApp : chatapp
|
|
||||||
chatapp.Protocol.RunnerEcouteTCP o-- chatapp.Controller.ChatApp : app
|
|
||||||
chatapp.Protocol.RunnerEcouteUDP o-- chatapp.Controller.ChatApp : app
|
|
||||||
chatapp.Protocol.RunnerUDP .up.|> java.lang.Runnable
|
|
||||||
chatapp.Protocol.RunnerUDP o-- chatapp.Controller.ChatApp : app
|
|
||||||
chatapp.Protocol.SessionClavardage o-- chatapp.Controller.ChatApp : app
|
|
||||||
chatapp.Protocol.SessionClavardage o-- chatapp.Model.Utilisateur : u2
|
|
||||||
|
|
||||||
|
|
||||||
right footer
|
|
||||||
|
|
||||||
|
|
||||||
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
|
|
||||||
For more information about this tool, please contact philippe.mesmeur@gmail.com
|
|
||||||
endfooter
|
|
||||||
|
|
||||||
@enduml
|
|
||||||
|
|
@ -11,17 +11,14 @@ import java.util.ArrayList;
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Classe permettant de gérer les multiples connexions en TCP.
|
* Classe permettant de gérer les multiples connexions en TCP.
|
||||||
* <br> Extend la classe Thread.
|
* Extend la classe Thread.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public class RunnerEcouteTCP extends Thread {
|
public class RunnerEcouteTCP extends Thread {
|
||||||
/* Une instance de ChaAapp */
|
|
||||||
public ChatApp app ;
|
public ChatApp app ;
|
||||||
|
|
||||||
private PropertyChangeSupport pcs;
|
private PropertyChangeSupport pcs;
|
||||||
|
// on conserve les sessions actives dans un attribut liste
|
||||||
/* on conserve les sessions actives dans un attribut liste */
|
private ArrayList<SessionClavardage> ListeSessions = new ArrayList<>();
|
||||||
private ArrayList<SessionClavardage> listeSessions = new ArrayList<>();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur
|
* Constructeur
|
||||||
|
|
@ -34,8 +31,8 @@ public class RunnerEcouteTCP extends Thread {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permet aux classes qui appellent cette methode de connecter un PropertyChangeListener au PropertyChangeSupport
|
* Permet aux classes qui appelle cette methode de connecter un PropertyChangeListener au PropertyChangeSupport
|
||||||
* @param pcl Le propertyChangeListener qui va ecouter les evenements du propertyChangeSupport associe
|
* @param pcl le propertyChangeListener qui va ecouter les evenements du propertyChangeSupport associe
|
||||||
*/
|
*/
|
||||||
public void addPropertyChangeListener(PropertyChangeListener pcl) {
|
public void addPropertyChangeListener(PropertyChangeListener pcl) {
|
||||||
this.pcs.addPropertyChangeListener("NouvelleSession",pcl);
|
this.pcs.addPropertyChangeListener("NouvelleSession",pcl);
|
||||||
|
|
@ -43,7 +40,7 @@ public class RunnerEcouteTCP extends Thread {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Methode pour qu'un objet de la classe ChatApp soit constamment en a l'écoute de potentielles connexions
|
* Methode pour qu'un objet de la classe ChatApp soit constamment en a l'ecoute de potentielles connexions
|
||||||
* @param app L'utilisateur en ecoute de potentielles communications
|
* @param app L'utilisateur en ecoute de potentielles communications
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
|
|
@ -57,7 +54,7 @@ public class RunnerEcouteTCP extends Thread {
|
||||||
System.out.println("Attente Session de clavardage");
|
System.out.println("Attente Session de clavardage");
|
||||||
Socket link = ss.accept(); // Blocante
|
Socket link = ss.accept(); // Blocante
|
||||||
SessionClavardage session = new SessionClavardage(link,app);
|
SessionClavardage session = new SessionClavardage(link,app);
|
||||||
this.listeSessions.add(session);
|
this.ListeSessions.add(session);
|
||||||
pcs.firePropertyChange("NouvelleSession",false,true);
|
pcs.firePropertyChange("NouvelleSession",false,true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -67,25 +64,25 @@ public class RunnerEcouteTCP extends Thread {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant d'ajouter une session active dans la liste 'ListeSessions'
|
* Methode permettant d'ajouter une session active dans la liste 'ListeSessions'
|
||||||
* @param session Session Active que l'on souhaite rajouter
|
* @param session Session Active que l'on souhaite rajouter
|
||||||
*/
|
*/
|
||||||
public void addSession(SessionClavardage session){
|
public void addSession(SessionClavardage session){
|
||||||
this.listeSessions.add(session);
|
this.ListeSessions.add(session);
|
||||||
pcs.firePropertyChange("NouvelleSession",false,true);
|
pcs.firePropertyChange("NouvelleSession",false,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode permettant de recupérer la derniere session de clavardage créée dans 'ListeSessions'
|
* Methode permettant de recupere la derniere session de clavardage creee dans 'ListeSessions'
|
||||||
* @return Premiere Session Active
|
* @return Premiere Session Active
|
||||||
*/
|
*/
|
||||||
public SessionClavardage getSessionClavardage() {
|
public SessionClavardage getSessionClavardage() {
|
||||||
return(this.listeSessions.remove(0));
|
return(this.ListeSessions.remove(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Méthode qui vient écraser la méthode run de la classe Thread.
|
* Methode qui vient ecraser la méthode run de la classe Thread.
|
||||||
* La méthode 'ecouteTCP' est appelé.
|
* La méthode 'ecouteTCP' est appele.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
|
||||||
|
|
@ -2,28 +2,15 @@ package chatapp.Protocol;
|
||||||
|
|
||||||
import chatapp.Controller.ChatApp;
|
import chatapp.Controller.ChatApp;
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe permettant de gérer les multiples connexions en UDP.
|
|
||||||
* <br> Extend la classe Thread.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class RunnerEcouteUDP extends Thread {
|
public class RunnerEcouteUDP extends Thread {
|
||||||
ChatApp app ;
|
ChatApp app ;
|
||||||
/**
|
|
||||||
* Constructeur
|
|
||||||
* @param app Un RunnerEcouteUDP est toujours associé à une application de Chat
|
|
||||||
*/
|
|
||||||
public RunnerEcouteUDP(ChatApp app) {
|
public RunnerEcouteUDP(ChatApp app) {
|
||||||
this.app = app ;
|
this.app = app ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Méthode qui vient ecraser la méthode run de la classe Thread.
|
|
||||||
* <br> La méthode 'ecouteUDP' est appelé.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
||||||
UDPEchange.ecouteUDP(app);
|
UDPEchange.ecouteUDP(app);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,79 +1,59 @@
|
||||||
package chatapp.Protocol;
|
package chatapp.Protocol;
|
||||||
|
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.beans.PropertyChangeSupport;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.ObjectInputStream;
|
||||||
|
import java.io.ObjectOutputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.Socket;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import chatapp.Controller.ChatApp;
|
import chatapp.Controller.ChatApp;
|
||||||
|
import chatapp.Model.DataBase;
|
||||||
import chatapp.Model.MessageHorodate;
|
import chatapp.Model.MessageHorodate;
|
||||||
import chatapp.Model.Utilisateur;
|
import chatapp.Model.Utilisateur;
|
||||||
import chatapp.View.FenetreSession;
|
import chatapp.View.FenetreSession;
|
||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
|
|
||||||
import java.beans.PropertyChangeListener;
|
|
||||||
import java.beans.PropertyChangeSupport;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.ObjectInputStream;
|
|
||||||
import java.io.ObjectOutputStream;
|
|
||||||
import java.net.Socket;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe représentant une session de clavardage.
|
|
||||||
* <br> La classe hérite de la classe Thread et dispose de 2 constructeurs selon que l'on initie une demande de session ou que l'on recoit une demande.
|
|
||||||
* <br> Elle possède en attribut:
|
|
||||||
* <br> - link : la socket associée à la session de clavardage
|
|
||||||
* <br> - app : L'instance de chatapp
|
|
||||||
* <br> - u2: l'utilisateur avec lequel on communique
|
|
||||||
* <br> - out: le flux de donnees sortant
|
|
||||||
* <br> - in: le flux de donnees entrant
|
|
||||||
* <br> - pcs: Le PropertyChangeSupport permettant d'envoyer les notifications de MessageRecu et de FindeSession
|
|
||||||
* <br> - derniersMsg: la liste temporaire des derniers messages recus
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class SessionClavardage extends Thread {
|
public class SessionClavardage extends Thread {
|
||||||
|
|
||||||
/* la socket associée à la session de clavardage */
|
|
||||||
private Socket link;
|
private Socket link;
|
||||||
|
|
||||||
/* L'instance de chatapp */
|
|
||||||
private ChatApp app;
|
private ChatApp app;
|
||||||
|
|
||||||
/* l'utilisateur avec lequel on communique */
|
|
||||||
private Utilisateur u2;
|
private Utilisateur u2;
|
||||||
|
|
||||||
/* le flux de donnees sortant */
|
|
||||||
private ObjectOutputStream out;
|
private ObjectOutputStream out;
|
||||||
|
|
||||||
/* le flux de donnees entrant */
|
|
||||||
private ObjectInputStream in;
|
private ObjectInputStream in;
|
||||||
|
|
||||||
/* Le PropertyChangeSupport permettant d'envoyer les notifications de MessageRecu et de FindeSession */
|
|
||||||
private PropertyChangeSupport pcs;
|
private PropertyChangeSupport pcs;
|
||||||
|
private ArrayList<MessageHorodate> derniersMsg; // on met temporairement les derniers msgs pour éviter les pb de synchro inter-threads
|
||||||
/* On met temporairement les derniers msgs pour éviter les pb de synchro inter-threads */
|
|
||||||
private ArrayList<MessageHorodate> derniersMsg;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Ce constructeur crée une session de clavardage quand on recoit une requete</p>
|
* <p> Ce constructeur crée une session de clavardage quand on recoit une requete</p>
|
||||||
* @param link La socket associee a la requete TCP que l'on a recu
|
* @param link la socket associee a la requete TCP que l'on a recu
|
||||||
* @param app L'instance de chatapp
|
* @param app l'instance de chatapp
|
||||||
*/
|
*/
|
||||||
public SessionClavardage(Socket link, ChatApp app) {
|
public SessionClavardage(Socket link, ChatApp app) {
|
||||||
this.setLink(link);
|
this.setLink(link);
|
||||||
this.setApp(app);
|
this.setApp(app);
|
||||||
try {
|
try {
|
||||||
|
this.setU2(app.getActifUsers().getIPList(link.getInetAddress()));
|
||||||
this.setOut(new ObjectOutputStream(link.getOutputStream()));
|
this.setOut(new ObjectOutputStream(link.getOutputStream()));
|
||||||
this.setIn(new ObjectInputStream(link.getInputStream()));
|
this.setIn(new ObjectInputStream(link.getInputStream()));
|
||||||
}catch(Exception e) {
|
}catch(Exception e) {
|
||||||
e.getStackTrace();
|
e.getStackTrace();
|
||||||
}
|
}
|
||||||
this.derniersMsg = new ArrayList<>();
|
this.derniersMsg = new ArrayList<MessageHorodate>();
|
||||||
|
Platform.runLater( () ->
|
||||||
|
new FenetreSession(this)
|
||||||
|
);
|
||||||
this.pcs = new PropertyChangeSupport(this);
|
this.pcs = new PropertyChangeSupport(this);
|
||||||
this.start();
|
this.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Le constructeur associe a l'envoi d'une requete TCP, lorsque que l'on veut initier une session de clavardage avec un utilisateur connecte</p>
|
* <p> Le constructeur associe a l'envoi d'une requete TCP, lorsque que l'on veut initier une session de clavardage avec un utilisateur connecte</p>
|
||||||
* @param u2 L'utilisateur avec qui l'on souhaite démarrer une session de clavardage
|
* @param u2 l'utilisateur avec qui l'on souhaite démarrer une session de clavardage
|
||||||
* @param app L'instance de chataap associee
|
* @param app l'instance de chataap associee
|
||||||
*/
|
*/
|
||||||
public SessionClavardage(Utilisateur u2, ChatApp app) {
|
public SessionClavardage(Utilisateur u2, ChatApp app) {
|
||||||
this.setU2(u2);
|
this.setU2(u2);
|
||||||
|
|
@ -87,10 +67,10 @@ public class SessionClavardage extends Thread {
|
||||||
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
this.derniersMsg = new ArrayList<>();
|
this.derniersMsg = new ArrayList<MessageHorodate>();
|
||||||
this.pcs = new PropertyChangeSupport(this);
|
this.pcs = new PropertyChangeSupport(this);
|
||||||
|
this.app.getDb().CreationTableHistorique("Doudou","Marvel");
|
||||||
this.start();
|
this.start();
|
||||||
this.initierSession();
|
|
||||||
Platform.runLater( () ->
|
Platform.runLater( () ->
|
||||||
new FenetreSession(this)
|
new FenetreSession(this)
|
||||||
);
|
);
|
||||||
|
|
@ -98,7 +78,7 @@ public class SessionClavardage extends Thread {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permet aux PropertyChangeListener de s'abonner aux notifications des evenements
|
* Permet aux PropertyChangeListener de s'abonner aux notifications des evenements
|
||||||
* @param pcl Le PropertyListener qui souhaite s'abonner sur ce PropertyChangeSupport
|
* @param pcl le PropertyListener qui souhaite s'abonner sur ce PropertyChangeSupport
|
||||||
*/
|
*/
|
||||||
public void addPropertyChangeListener(PropertyChangeListener pcl){
|
public void addPropertyChangeListener(PropertyChangeListener pcl){
|
||||||
this.pcs.addPropertyChangeListener("MessageRecu",pcl);
|
this.pcs.addPropertyChangeListener("MessageRecu",pcl);
|
||||||
|
|
@ -113,40 +93,21 @@ public class SessionClavardage extends Thread {
|
||||||
try {
|
try {
|
||||||
getOut().writeObject(msgh.toString());
|
getOut().writeObject(msgh.toString());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
//e.printStackTrace();
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
try {
|
try {
|
||||||
link.close();
|
link.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Methode permettant d'initier une session de clavardage et de prevenir l'autre utilisateur du debut de la session</p>
|
* Methode transformant prenant un string pour le transmettre sous la forme d'un message horodate a l'utilisateur distant
|
||||||
|
* @param msg le texte du message a envoyer
|
||||||
*/
|
*/
|
||||||
public void initierSession(){
|
|
||||||
String isExterne = "false";
|
|
||||||
if(this.app.isExterne()){
|
|
||||||
isExterne="true"; // on indiquera dans le message si l'on est externe ou interne
|
|
||||||
}
|
|
||||||
System.out.println("Ajout d'un utilisateur dans communication");
|
|
||||||
app.listeCommunication.add(getU2().getId());
|
|
||||||
System.out.println(app.listeCommunication.size());
|
|
||||||
MessageHorodate msgh = new MessageHorodate(getU2(),getApp().getMe(),isExterne,3);
|
|
||||||
try {
|
|
||||||
getOut().writeObject(msgh.toString());
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Methode transformant prenant un string pour le transmettre sous la forme d'un message horodate a l'utilisateur distant
|
|
||||||
* @param msg Le texte du message à envoyer
|
|
||||||
*/
|
|
||||||
public void envoiMsg(String msg) {
|
public void envoiMsg(String msg) {
|
||||||
MessageHorodate msgh = new MessageHorodate(getU2(),getApp().getMe(),msg,1);
|
MessageHorodate msgh = new MessageHorodate(getU2(),getApp().getMe(),msg,1);
|
||||||
try {
|
try {
|
||||||
|
|
@ -160,8 +121,8 @@ public class SessionClavardage extends Thread {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Methode permettant de recuperer le dernier message recu qui a ete mis dans la liste des messages recus.
|
* <p> Methode permettant de recuperer le dernier message recu qui a ete mis dans la liste des messages recus.
|
||||||
* <br> Utilisée par l'interface graphique qui a ete avertie grace au PropertyChangeSupport</p>
|
* Utilisee par l'interface graphique qui a ete avertie grace au PropertyChangeSupport</p>
|
||||||
* @return Le dernier message horodate recu
|
* @return le dernier message horodate recu
|
||||||
*/
|
*/
|
||||||
public MessageHorodate getDernierMsg() {
|
public MessageHorodate getDernierMsg() {
|
||||||
return this.derniersMsg.remove(0);
|
return this.derniersMsg.remove(0);
|
||||||
|
|
@ -172,21 +133,19 @@ public class SessionClavardage extends Thread {
|
||||||
* <p> Methode lancee par le thread, permet de receptionner les messages horodates recus et d'agir en conséquence selon le type de message recu</p>
|
* <p> Methode lancee par le thread, permet de receptionner les messages horodates recus et d'agir en conséquence selon le type de message recu</p>
|
||||||
*/
|
*/
|
||||||
public void run() {
|
public void run() {
|
||||||
String plaintext;
|
String plaintext = null;
|
||||||
MessageHorodate msg = null;
|
MessageHorodate msg = null;
|
||||||
System.out.println("Session demarre");
|
System.out.println("Session demarre");
|
||||||
app.getDb().creationTableHistorique(app.getMe().getId(), u2.getId());
|
app.getDb().CreationTableHistorique(app.getMe().getId(), u2.getId());
|
||||||
while(true) {
|
while(true) {
|
||||||
try {
|
try {
|
||||||
plaintext = (String) getIn().readObject();
|
plaintext = (String) getIn().readObject();
|
||||||
System.out.println("Message reçu");
|
|
||||||
msg = MessageHorodate.stringToMessageHorodate(plaintext);
|
msg = MessageHorodate.stringToMessageHorodate(plaintext);
|
||||||
System.out.println(msg.getMessage());
|
|
||||||
} catch (ClassNotFoundException e) {
|
} catch (ClassNotFoundException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
pcs.firePropertyChange("FinDeLaSession", false, true);
|
pcs.firePropertyChange("FinDeLaSession", false, true);
|
||||||
app.listeCommunication.remove(u2.getId());
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(msg.getType() == 2) {
|
if(msg.getType() == 2) {
|
||||||
|
|
@ -196,93 +155,89 @@ public class SessionClavardage extends Thread {
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
app.listeCommunication.remove(u2.getId());
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if(msg.getType() == 3) {
|
|
||||||
System.out.println("Session Initiee");
|
|
||||||
this.u2 = msg.getSource() ;
|
|
||||||
app.listeCommunication.add(u2.getId());
|
|
||||||
Platform.runLater( () ->
|
|
||||||
new FenetreSession(this)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
derniersMsg.add(msg);
|
derniersMsg.add(msg);
|
||||||
pcs.firePropertyChange("MessageRecu",false,true);}
|
pcs.firePropertyChange("MessageRecu",false,true);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter : Out
|
* Getter
|
||||||
* @return Le flux d'ecriture des messages sortant
|
* @return le flux d'ecriture des messages sortant
|
||||||
*/
|
*/
|
||||||
public ObjectOutputStream getOut() {
|
public ObjectOutputStream getOut() {
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter : Out
|
* Setter
|
||||||
* @param out Le flux d'ecriture des messages sortant
|
* @param out le flux d'ecriture des messages sortant
|
||||||
*/
|
*/
|
||||||
public void setOut(ObjectOutputStream out) {
|
public void setOut(ObjectOutputStream out) {
|
||||||
this.out = out;
|
this.out = out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter : In
|
* Getter
|
||||||
* @return Le flux de lecture des messages entrant
|
* @return le flux de lecture des messages entrant
|
||||||
*/
|
*/
|
||||||
public ObjectInputStream getIn() {
|
public ObjectInputStream getIn() {
|
||||||
return in;
|
return in;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter : In
|
* Setter
|
||||||
* @param in Le flux de lecture des messages entrant
|
* @param in le flux de lecture des messages entrant
|
||||||
*/
|
*/
|
||||||
public void setIn(ObjectInputStream in) {
|
public void setIn(ObjectInputStream in) {
|
||||||
this.in = in;
|
this.in = in;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Socket getLink() {
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter : Link
|
* Setter
|
||||||
* @param link La Socket asscciee a la connexion TCP et donc a la session
|
* @param link la Socket asscciee a la connexion TCP et donc a la session
|
||||||
*/
|
*/
|
||||||
public void setLink(Socket link) {
|
public void setLink(Socket link) {
|
||||||
this.link = link;
|
this.link = link;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter : chatApp
|
* Getter
|
||||||
* @return L'instance de chatApp
|
* @return l'instance de chatApp
|
||||||
*/
|
*/
|
||||||
public ChatApp getApp() {
|
public ChatApp getApp() {
|
||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter : chatApp
|
* Setter
|
||||||
* @param app L'instance de chatApp
|
* @param app l'instance de chatApp
|
||||||
*/
|
*/
|
||||||
public void setApp(ChatApp app) {
|
public void setApp(ChatApp app) {
|
||||||
this.app = app;
|
this.app = app;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter : Utilisateur 2
|
* Getter
|
||||||
* @return L'utilisateur avec lequel on communique
|
* @return l'utilisateur avec lequel on communique
|
||||||
*/
|
*/
|
||||||
public Utilisateur getU2() {
|
public Utilisateur getU2() {
|
||||||
return u2;
|
return u2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter : Utilisateur 2
|
* Setter
|
||||||
* @param u2 L'utilisateur avec lequel on communique
|
* @param u2 l'utilisateur avec lequel on communique
|
||||||
*/
|
*/
|
||||||
public void setU2(Utilisateur u2) {
|
public void setU2(Utilisateur u2) {
|
||||||
this.u2 = u2;
|
this.u2 = u2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,24 +19,26 @@ import chatapp.Controller.*;
|
||||||
import chatapp.Model.*;
|
import chatapp.Model.*;
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Classe representant les échanges UDP entre utilisateurs.
|
* Classe representant les echanges UDP entre utilisateurs.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class UDPEchange {
|
public class UDPEchange {
|
||||||
|
|
||||||
/* True si l'utilisateur peut se connecter avec ce nom d'utilisateur , False sinon */
|
|
||||||
private static Boolean Connecte = true;
|
private static Boolean Connecte = true;
|
||||||
|
// True si l'utilisateur peut se connecter avec ce nom d'utilisateur , False sinon
|
||||||
|
|
||||||
|
private static Boolean EcouteEnCours = false;
|
||||||
/**
|
/**
|
||||||
* Getter : Connecte
|
* Getter
|
||||||
* @return Le boolean connecte (True s'il peut se connecter avec ce nom d'utilisateur , False sinon)
|
* @return le boolean connecte (True s'il peut se connecter avec ce nom d'utilisateur , False sinon)
|
||||||
*/
|
*/
|
||||||
public static Boolean getConnecte() {
|
public static Boolean getConnecte() {
|
||||||
return Connecte;
|
return Connecte;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter : Connecte
|
* Setter
|
||||||
* @param value La nouvelle valeur du boolean de connexion
|
* @param value La nouvelle valeur du boolean de connexion
|
||||||
*/
|
*/
|
||||||
public static void setConnecte(Boolean value) {
|
public static void setConnecte(Boolean value) {
|
||||||
|
|
@ -47,27 +49,27 @@ public class UDPEchange {
|
||||||
// True si l'utilisateur a (ou demande) un pseudo valide , False sinon
|
// True si l'utilisateur a (ou demande) un pseudo valide , False sinon
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Getter : Pseudo Valide
|
* Getter
|
||||||
* @return Le boolean PseudoValide (True s'il peut utiliser ce pseudo , False sinon)
|
* @return le boolean PseudoValide (True s'il peut utiliser ce pseudo , False sinon)
|
||||||
*/
|
*/
|
||||||
public static Boolean getPseudoValide() {
|
public static Boolean getPseudoValide() {
|
||||||
return PseudoValide;
|
return PseudoValide;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter : PseudoValise
|
* Setter
|
||||||
* @param value La nouvelle valeur du boolean concernant le pseudo valide
|
* @param value La nouvelle valeur du boolean concernant le pseudo valide
|
||||||
*/
|
*/
|
||||||
public static void setPseudoValide(Boolean value) {
|
public static void setPseudoValide(Boolean value) {
|
||||||
PseudoValide = value ;
|
PseudoValide = value ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**<p>
|
/**<p>
|
||||||
* Getter : Ip
|
* Permet de recuperer l'adresse de l'hote sur le reseau au format IPv4.
|
||||||
* <br>Permet de recuperer l'adresse de l'hote sur le reseau au format IPv4.
|
* Si plusieurs adresses sont disponibles (plusieurs cartes réseaux), choisit la premiere trouvee
|
||||||
* <br> Si plusieurs adresses sont disponibles (plusieurs cartes réseaux), choisit la premiere trouvée
|
|
||||||
* </p>
|
* </p>
|
||||||
* @return L'adresse IP au format IPv4
|
* @return l'adresse IP au format IPv4
|
||||||
*/
|
*/
|
||||||
public static InetAddress getCurrentIp() {
|
public static InetAddress getCurrentIp() {
|
||||||
try {
|
try {
|
||||||
|
|
@ -91,17 +93,16 @@ public class UDPEchange {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Méthode permettant d'envoyer un message à tout les utilisateurs à l'aide du protocole UDP
|
* Méthode permettant d'envoyer un message à tout les utilisateurs
|
||||||
|
* a l'aide du protocole UDP
|
||||||
* </p>
|
* </p>
|
||||||
* @param broadcastMessage Message à transmettre aux utilisateurs
|
* @param broadcastMessage correspond au message a transmettre aux utilisateurs
|
||||||
* @throws IOException
|
|
||||||
*/
|
*/
|
||||||
public static void envoiBroadcast(String broadcastMessage) throws IOException {
|
public static void EnvoiBroadcast(String broadcastMessage) throws IOException {
|
||||||
int port = 1234 ;
|
int port = 1234 ;
|
||||||
// Envoie en broadcast à tous les utilisateurs
|
// Envoie en broadcast à tous les utilsateurs
|
||||||
for (InetAddress broadcastAddr : listAllBroadcastAddresses()) {
|
for (InetAddress broadcastAddr : listAllBroadcastAddresses()) {
|
||||||
DatagramSocket socket = new DatagramSocket();
|
DatagramSocket socket = new DatagramSocket();
|
||||||
socket.setBroadcast(true);
|
socket.setBroadcast(true);
|
||||||
|
|
@ -121,11 +122,13 @@ public class UDPEchange {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Methode permettant la reception de messages d'utilisateurs à l'aide du protocole UDP
|
* Methode permettant la reception de messages d'utilisateurs
|
||||||
|
* a l'aide du protocole UDP
|
||||||
* </p>
|
* </p>
|
||||||
* @param app L'application de chat de l'utilisateur qui receptionne le message
|
* @param app L'application de chat de l'utilisateur qui receptionne le message
|
||||||
*/
|
*/
|
||||||
public static void ecouteUDP(ChatApp app) {
|
public static void ecouteUDP(ChatApp app)
|
||||||
|
{
|
||||||
DatagramSocket socket = null;
|
DatagramSocket socket = null;
|
||||||
ExecutorService exec = Executors.newFixedThreadPool(1000);
|
ExecutorService exec = Executors.newFixedThreadPool(1000);
|
||||||
try {
|
try {
|
||||||
|
|
@ -143,7 +146,7 @@ public class UDPEchange {
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
// Un thread est lance à chaque reception d'un message
|
// Un thread est lance à chaque reception d'un message
|
||||||
System.out.println("Message recu!");
|
System.out.println("Message recu!");
|
||||||
exec.submit(new RunnerUDP(data,app));
|
exec.submit(new RunnerUDP(data,app));
|
||||||
}
|
}
|
||||||
|
|
@ -151,32 +154,29 @@ public class UDPEchange {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Méthode permettant d'envoyer un message a utilisateur en particulier
|
* Methode permettant d'envoyer un message a utilisateur en particulier
|
||||||
* a l'aide du protocole UDP
|
* a l'aide du protocole UDP
|
||||||
* </p>
|
* </p>
|
||||||
* @param address L'adresse IP de l'utilisateur
|
* @param Adress l'addresse de l'utilisateur
|
||||||
* @param message Message message à transmettre a l'utilisateur
|
* @param Message correspond au message à transmettre a l'utilisateur
|
||||||
* @throws IOException
|
|
||||||
*/
|
*/
|
||||||
public static void envoiUnicast( InetAddress address , String message ) throws IOException {
|
public static void envoiUnicast( InetAddress Adress , String Message ) throws IOException {
|
||||||
if (ChatApp.getInstance().isConnecte()){
|
DatagramSocket socket = new DatagramSocket();
|
||||||
DatagramSocket socket = new DatagramSocket();
|
byte[]buffer = Message.getBytes();
|
||||||
byte[]buffer = message.getBytes();
|
DatagramPacket packet = new DatagramPacket( buffer, buffer.length, Adress, 1234 );
|
||||||
DatagramPacket packet = new DatagramPacket( buffer, buffer.length, address, 1234 );
|
socket.send(packet);
|
||||||
socket.send(packet);
|
socket.close();
|
||||||
socket.close();
|
System.out.println("***********Message envoye***********");
|
||||||
System.out.println("***********Message envoye***********");
|
System.out.println("Dest Ip: " + Adress.toString());
|
||||||
System.out.println("Dest Ip: " + address.toString());
|
System.out.println("Dest port: " + String.valueOf(1234));
|
||||||
System.out.println("Dest port: " + String.valueOf(1234));
|
System.out.println("Contenu: ");
|
||||||
System.out.println("Contenu: ");
|
System.out.println(Message);
|
||||||
System.out.println(message);
|
System.out.println("************************************");
|
||||||
System.out.println("************************************");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Methode permettant de recuperer la liste des adresses de broadcast, chacune associer à une interface de la machine
|
* Methode permettant de recuperer la liste des adresses de broadcast, chacune associer à une interface de la machine
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
static List<InetAddress> listAllBroadcastAddresses() throws SocketException {
|
static List<InetAddress> listAllBroadcastAddresses() throws SocketException {
|
||||||
|
|
@ -205,18 +205,13 @@ public class UDPEchange {
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Classe implementant l'interface Runnable.
|
* Classe implementant l'interface Runnable.
|
||||||
* <br> Contient les traitements a executer dans un thread lancer par des méthodes de la class UDPEchange
|
* Contient les traitements a executer dans un thread lancer par des methodes de la class UDPEchange
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
class RunnerUDP implements Runnable {
|
class RunnerUDP implements Runnable {
|
||||||
final DatagramPacket data ;
|
final DatagramPacket data ;
|
||||||
ChatApp app ;
|
ChatApp app ;
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructeur RunnerUDP
|
|
||||||
* @param data Un datagramPacket
|
|
||||||
* @param app Instance de chatapp
|
|
||||||
*/
|
|
||||||
public RunnerUDP(DatagramPacket data, ChatApp app) {
|
public RunnerUDP(DatagramPacket data, ChatApp app) {
|
||||||
this.data= data;
|
this.data= data;
|
||||||
this.app = app ;
|
this.app = app ;
|
||||||
|
|
@ -225,7 +220,7 @@ class RunnerUDP implements Runnable {
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Methode qui redefinie les traitements qui seront executes dans le thread:
|
* Methode qui redefinie les traitements qui seront executes dans le thread:
|
||||||
* <br> Met à jour la liste des utilisateurs actifs
|
* Met à jour la liste des utilisateurs actifs
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
@ -253,14 +248,10 @@ class RunnerUDP implements Runnable {
|
||||||
reponse += "false\n";
|
reponse += "false\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(!u.getPseudo().equals("root")){
|
System.out.println("Ajout d'un nouvel utilisateur dans la liste des Utilisateurs");
|
||||||
System.out.println("Ajout d'un nouvel utilisateur dans la liste des Utilisateurs");
|
( app.getActifUsers() ).addList(u);
|
||||||
( app.getActifUsers() ).addList(u);
|
reponse += "true\n";
|
||||||
reponse += "true\n";
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
System.out.println("Non ajout de root dans la liste");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
reponse += app.getMe().toString();
|
reponse += app.getMe().toString();
|
||||||
|
|
||||||
|
|
@ -281,27 +272,11 @@ class RunnerUDP implements Runnable {
|
||||||
//*******************************************************************************************************
|
//*******************************************************************************************************
|
||||||
|
|
||||||
if (Type.equals("Reponse Connexion")) { // Un utilisateur te repond suite à ta demande de connexion
|
if (Type.equals("Reponse Connexion")) { // Un utilisateur te repond suite à ta demande de connexion
|
||||||
if((received.split("\n")[1]).equals("true")) {
|
|
||||||
Utilisateur u = Utilisateur.stringToUtilisateur(received.split("\n")[2]);
|
|
||||||
if(!u.getPseudo().equals("root")) { // on ajoute jamais root c'est le server
|
|
||||||
app.getActifUsers().addList(u);
|
|
||||||
app.getActifUsers().afficherListeUtilisateurs();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
System.out.println("Le serveur nous a repondu");
|
|
||||||
int max = received.split("\n").length ;
|
|
||||||
if (max > 3 ){
|
|
||||||
for (int i = 3 ; i < max ; i++){
|
|
||||||
String suite = received.split("\n")[i];
|
|
||||||
// Le server nous envoie les utilisateurs connectés en local ou à distance
|
|
||||||
if (!suite.equals("")){
|
|
||||||
app.getActifUsers().addList(Utilisateur.stringToUtilisateur(suite));
|
|
||||||
System.out.println("root m'a transmis les infos de l'utilisateur " +Utilisateur.stringToUtilisateur(suite).toString() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if((received.split("\n")[1]).equals("true")) {
|
||||||
|
Utilisateur u = Utilisateur.stringToUtilisateur(received.split("\n")[2]);
|
||||||
|
app.getActifUsers().addList(u);
|
||||||
|
app.getActifUsers().afficherListeUtilisateurs();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
System.out.println("Pseudo deja pris");
|
System.out.println("Pseudo deja pris");
|
||||||
|
|
@ -316,19 +291,19 @@ class RunnerUDP implements Runnable {
|
||||||
//*******************************************************************************************************************
|
//*******************************************************************************************************************
|
||||||
|
|
||||||
if (Type.equals("Demande Modification Pseudo")) {
|
if (Type.equals("Demande Modification Pseudo")) {
|
||||||
Utilisateur source = Utilisateur.stringToUtilisateur(received.split("\n")[1]);
|
Utilisateur Source = Utilisateur.stringToUtilisateur(received.split("\n")[1]);
|
||||||
if (! source.equals(this.app.getMe())) { // On envoit en broadcast mais on ne souhaite pas recevoir de message de nous même
|
if (! Source.equals(this.app.getMe())) { // On envoit en broadcast mais on ne souhaite pas recevoir de message de nous même
|
||||||
String nouveau = received.split("\n")[2] ;
|
String nouveau = received.split("\n")[2] ;
|
||||||
String message = "";
|
String Message = "";
|
||||||
if(( app.getActifUsers() ).verifierUnicite(nouveau)) {
|
if(( app.getActifUsers() ).verifierUnicite(nouveau)) {
|
||||||
message = "Bon Choix Pseudo\n" + nouveau ;
|
Message = "Bon Choix Pseudo\n" + nouveau ;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
message = "Mauvais Choix Pseudo\n" ;
|
Message = "Mauvais Choix Pseudo\n" ;
|
||||||
}
|
}
|
||||||
System.out.println(message);
|
System.out.println(Message);
|
||||||
try {
|
try {
|
||||||
UDPEchange.envoiUnicast(source.getIp(),message);
|
UDPEchange.envoiUnicast(Source.getIp(),Message);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
@ -341,18 +316,15 @@ class RunnerUDP implements Runnable {
|
||||||
//************************************************************************************************************
|
//************************************************************************************************************
|
||||||
|
|
||||||
if (Type.equals("Modification pseudo reussi")) {
|
if (Type.equals("Modification pseudo reussi")) {
|
||||||
Utilisateur source = Utilisateur.stringToUtilisateur(received.split("\n")[1]);
|
Utilisateur Source = Utilisateur.stringToUtilisateur(received.split("\n")[1]);
|
||||||
if (! source.equals(this.app.getMe())) { // On envoit en broadcast mais on ne souhaite pas recevoir de message de nous même
|
if (! Source.equals(this.app.getMe())) { // On envoit en broadcast mais on ne souhaite pas recevoir de message de nous même
|
||||||
String nouveau = received.split("\n")[2] ;
|
String nouveau = received.split("\n")[2] ;
|
||||||
System.out.println("Je rentre ici");
|
if(app.getActifUsers().appartient(Source)) { // On verifie d'abord que Source appartient bien a la liste des utilisateurs actifs
|
||||||
if(app.getActifUsers().appartient(source)) { // On verifie d'abord que Source appartient bien a la liste des utilisateurs actifs
|
app.getActifUsers().modifierList(Source.getPseudo(), nouveau);
|
||||||
System.out.println(source.getPseudo() + " va etre changer en : " + nouveau);
|
}
|
||||||
app.getActifUsers().modifierList(source.getPseudo(), nouveau);
|
{
|
||||||
} else {
|
|
||||||
System.out.println(source.getPseudo() + " va etre ajouter en : " + nouveau);
|
|
||||||
// Suite a une perte d'un message lors d'une connexion l'utilisateur Source n'apparait pas dans la liste
|
// Suite a une perte d'un message lors d'une connexion l'utilisateur Source n'apparait pas dans la liste
|
||||||
source.setPseudo(nouveau);
|
app.getActifUsers().addList(Source);
|
||||||
app.getActifUsers().addList(source);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -385,15 +357,9 @@ class RunnerUDP implements Runnable {
|
||||||
if (Type.equals("Deconnexion")) {
|
if (Type.equals("Deconnexion")) {
|
||||||
( app.getActifUsers() ).supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1]));
|
( app.getActifUsers() ).supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
//*********************************************************************************************************
|
|
||||||
//*********************************************************************************************************
|
|
||||||
//*******************************Connexion d'un utilisateur externe****************************************
|
|
||||||
//*********************************************************************************************************
|
|
||||||
//*********************************************************************************************************
|
|
||||||
if (Type.equals("Connexion Externe")) {
|
|
||||||
Utilisateur nouveau = Utilisateur.stringToUtilisateur(received.split("\n")[1]);
|
|
||||||
app.getActifUsers().addList(nouveau);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,7 @@ package chatapp.View;
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe representant l'interface graphique permettant de changer de pseudo
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class ChangementPseudo {
|
public class ChangementPseudo {
|
||||||
|
|
||||||
@FXML // ResourceBundle that was given to the FXMLLoader
|
@FXML // ResourceBundle that was given to the FXMLLoader
|
||||||
|
|
@ -41,14 +37,16 @@ public class ChangementPseudo {
|
||||||
@FXML // fx:id="MenuButton"
|
@FXML // fx:id="MenuButton"
|
||||||
private Button MenuButton; // Value injected by FXMLLoader
|
private Button MenuButton; // Value injected by FXMLLoader
|
||||||
|
|
||||||
/* Une instance de chatApp */
|
|
||||||
private ChatApp chatApp;
|
private ChatApp chatApp;
|
||||||
private int MaxLength=10;
|
@FXML
|
||||||
|
void nouveauPseudo(ActionEvent event) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
/**
|
/**
|
||||||
* <p> Handler permettant de retourner au menu principal sur pression du MenuButton</p>
|
* <p> Handler permettant de retourner au menu principal sur pression du MenuButton</p>
|
||||||
* @param event L'utilisateur vient d'appuyer sur le bouton Retour au menu
|
|
||||||
*/
|
*/
|
||||||
void retourMenu(ActionEvent event) {
|
void retourMenu(ActionEvent event) {
|
||||||
System.out.println("Retour au menu principal");
|
System.out.println("Retour au menu principal");
|
||||||
|
|
@ -67,33 +65,24 @@ public class ChangementPseudo {
|
||||||
@FXML
|
@FXML
|
||||||
/**
|
/**
|
||||||
* <p> Handler permettant de lancer la verrification de l'unicite du ppseudo sur pression du validtionButton</p>
|
* <p> Handler permettant de lancer la verrification de l'unicite du ppseudo sur pression du validtionButton</p>
|
||||||
* @param event L'utilisateur vient d'appuyer sur le bouton Valider pseudo
|
|
||||||
*/
|
*/
|
||||||
void validerPseudo(ActionEvent event) {
|
void validerPseudo(ActionEvent event) {
|
||||||
boolean pseudoOK = false;
|
boolean pseudoOK = false;
|
||||||
if (pseudonyme.getText().length() > MaxLength) {
|
try {
|
||||||
|
pseudoOK = chatApp.modifierPseudo(pseudonyme.getText());
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
if(pseudoOK){
|
||||||
|
this.retourMenu(null);
|
||||||
|
}
|
||||||
|
else{
|
||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||||
alert.setTitle("Connexion");
|
alert.setTitle("Changement pseudo");
|
||||||
// Header Text: null
|
// Header Text: null
|
||||||
alert.setHeaderText(null);
|
alert.setHeaderText(null);
|
||||||
alert.setContentText("Echec de Connexion: le pseudo entre fait plus de " + MaxLength + " caracteres");
|
alert.setContentText("Echec de Connexion: le pseudo "+pseudonyme.getText()+" est deja pris");
|
||||||
alert.showAndWait();
|
alert.showAndWait();
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
pseudoOK = chatApp.modifierPseudo(pseudonyme.getText());
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
if (pseudoOK) {
|
|
||||||
this.retourMenu(null);
|
|
||||||
} else {
|
|
||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
|
||||||
alert.setTitle("Changement pseudo");
|
|
||||||
// Header Text: null
|
|
||||||
alert.setHeaderText(null);
|
|
||||||
alert.setContentText("Echec de Connexion: le pseudo " + pseudonyme.getText() + " est deja pris");
|
|
||||||
alert.showAndWait();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -105,5 +94,6 @@ public class ChangementPseudo {
|
||||||
chatApp = ChatApp.getInstance();
|
chatApp = ChatApp.getInstance();
|
||||||
pseudonyme1.setText(chatApp.getMe().getPseudo());
|
pseudonyme1.setText(chatApp.getMe().getPseudo());
|
||||||
this.validationButton.setDefaultButton(true);
|
this.validationButton.setDefaultButton(true);
|
||||||
|
//System.out.println(this.validationButton.isDefaultButton());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -9,6 +9,7 @@ import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import chatapp.Controller.ChatApp;
|
||||||
import chatapp.Model.MessageHorodate;
|
import chatapp.Model.MessageHorodate;
|
||||||
import chatapp.Model.Utilisateur;
|
import chatapp.Model.Utilisateur;
|
||||||
import chatapp.Protocol.SessionClavardage;
|
import chatapp.Protocol.SessionClavardage;
|
||||||
|
|
@ -22,11 +23,6 @@ import javafx.scene.control.TextField;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe representant l'interface graphique permettant de clavarder avec un utilisateur.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class Clavardage implements Initializable, PropertyChangeListener {
|
public class Clavardage implements Initializable, PropertyChangeListener {
|
||||||
@FXML //fx:id="plusButton"
|
@FXML //fx:id="plusButton"
|
||||||
public Button plusButton;
|
public Button plusButton;
|
||||||
|
|
@ -51,19 +47,12 @@ public class Clavardage implements Initializable, PropertyChangeListener {
|
||||||
|
|
||||||
@FXML // fx:id="MenuButton"
|
@FXML // fx:id="MenuButton"
|
||||||
|
|
||||||
/* L'utilisateur destinataire */
|
|
||||||
private Utilisateur u2;
|
private Utilisateur u2;
|
||||||
|
|
||||||
/* Une session de clavardage */
|
|
||||||
private SessionClavardage session;
|
private SessionClavardage session;
|
||||||
|
|
||||||
/* Le nom de la table dans la BDD stockant l'historique des messages */
|
|
||||||
private String nomTable;
|
private String nomTable;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
/**
|
/**
|
||||||
* <p>Handler gerant l'envoi du message contenu dans le TextField AEnvoyer et sur pression du bouton EnvoyerButton</p>
|
* <p>Handler gerant l'envoi du message contenu dans le TextField AEnvoyer et sur pression du bouton EnvoyerButton</p>
|
||||||
* @param event L'utilisateur vient d'appuyer sur le bouton Envoyer
|
|
||||||
*/
|
*/
|
||||||
void envoyerMessage(ActionEvent event) {
|
void envoyerMessage(ActionEvent event) {
|
||||||
String msg = AEnvoyer.getText();
|
String msg = AEnvoyer.getText();
|
||||||
|
|
@ -80,11 +69,13 @@ public class Clavardage implements Initializable, PropertyChangeListener {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter : Session
|
* Setter
|
||||||
* @param session La session a associer a la classe
|
* @param session la session a associer a la classe
|
||||||
*/
|
*/
|
||||||
public void setSession(SessionClavardage session) {
|
public void setSession(SessionClavardage session) {
|
||||||
|
|
||||||
this.session = session;
|
this.session = session;
|
||||||
|
|
||||||
this.session.addPropertyChangeListener(this);
|
this.session.addPropertyChangeListener(this);
|
||||||
this.u2=session.getU2();
|
this.u2=session.getU2();
|
||||||
this.pseudonyme1.setText(u2.getPseudo());
|
this.pseudonyme1.setText(u2.getPseudo());
|
||||||
|
|
@ -92,8 +83,8 @@ public class Clavardage implements Initializable, PropertyChangeListener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Handler des differents evenements auxquels s'est abonne le PropertyChangeListener
|
* <p>Handler des differents evenements auxquels s'est abonne le PropertyChangeListener
|
||||||
* <br> La classe est informee lorsque la session recoit un message ou lorsque la session se termine </p>
|
* La classe est informee lorsque la session recoit un message ou lorsque la session se termine </p>
|
||||||
* @param evt L'evenement informe par le pcs
|
* @param evt l'evenement informe par le pcs
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void propertyChange(PropertyChangeEvent evt) {
|
public void propertyChange(PropertyChangeEvent evt) {
|
||||||
|
|
@ -120,10 +111,6 @@ public class Clavardage implements Initializable, PropertyChangeListener {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Getter : Session
|
|
||||||
* @return La session de Clavardage
|
|
||||||
*/
|
|
||||||
public SessionClavardage getSession(){
|
public SessionClavardage getSession(){
|
||||||
return session;
|
return session;
|
||||||
}
|
}
|
||||||
|
|
@ -140,12 +127,12 @@ public class Clavardage implements Initializable, PropertyChangeListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Permet de recupérer plus de messages stoces dans la database en appuyant sur le bouton plusButton</p>
|
* <p> Permet de recepurer plus de messages stoces dans la database en appuyant sur le bouton plusButton</p>
|
||||||
* @param actionEvent L'utilisateur a appuye sur le bouton plus pour obtenir tout l'utilisateur
|
* @param actionEvent
|
||||||
*/
|
*/
|
||||||
public void ajouterMessagesHistorique(ActionEvent actionEvent) {
|
public void ajouterMessagesHistorique(ActionEvent actionEvent) {
|
||||||
this.nomTable = this.session.getApp().getDb().getNomTable(u2,this.session.getApp().getMe());
|
this.nomTable = this.session.getApp().getDb().getNomTable(u2,this.session.getApp().getMe());
|
||||||
String historique = this.session.getApp().getDb().recupNMsg(session.getApp().getMe().getId(),this.u2.getId(), this.session.getApp().getDb().tailleBDD(nomTable));
|
String historique = this.session.getApp().getDb().recupNMsg(session.getApp().getMe().getId(),this.u2.getId(), this.session.getApp().getDb().tailleBDD("Chat_mbp-de-auriane.home_mbp-de-auriane.home"));
|
||||||
ChatText.clear();
|
ChatText.clear();
|
||||||
ChatText.insertText(0,historique);
|
ChatText.insertText(0,historique);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,31 +13,15 @@ import javafx.scene.Parent;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Alert;
|
import javafx.scene.control.Alert;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.RadioButton;
|
|
||||||
import javafx.scene.control.TextField;
|
import javafx.scene.control.TextField;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe representant l'interface graphique permettant de se connecter.
|
|
||||||
* L'utilisateur rentre un pseudo et choisit une connexion distante ou locale.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class ConnexionScreen {
|
public class ConnexionScreen {
|
||||||
|
|
||||||
/* Bouton de connexion */
|
|
||||||
public Button connexionButton;
|
public Button connexionButton;
|
||||||
|
|
||||||
/* Zone de texte où inserer le pseudonyme souhaité */
|
|
||||||
public TextField pseudonyme;
|
public TextField pseudonyme;
|
||||||
|
|
||||||
/* RadioButton : l'utilisateur est distant */
|
|
||||||
public RadioButton remoteButton;
|
|
||||||
|
|
||||||
/* RadioButton : l'utilisateur est local */
|
|
||||||
public RadioButton localButton;
|
|
||||||
|
|
||||||
private int MaxLength = 10;
|
|
||||||
|
|
||||||
@FXML // ResourceBundle that was given to the FXMLLoader
|
@FXML // ResourceBundle that was given to the FXMLLoader
|
||||||
private ResourceBundle resources;
|
private ResourceBundle resources;
|
||||||
|
|
||||||
|
|
@ -46,58 +30,41 @@ public class ConnexionScreen {
|
||||||
|
|
||||||
@FXML // This method is called by the FXMLLoader when initialization is complete
|
@FXML // This method is called by the FXMLLoader when initialization is complete
|
||||||
void initialize() {
|
void initialize() {
|
||||||
connexionButton.setDefaultButton(true); // Appuyer sur entrée equivaut a cliquer sur le bouton de connexion
|
connexionButton.setDefaultButton(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>Handler permettant de lancer la connexion avec le pseudonyme contenu dans le TextField pseudonyme en appuyant sur le connexionButton
|
||||||
* Handler permettant de lancer la connexion avec le pseudonyme contenu dans le TextField pseudonyme en appuyant sur le connexionButton
|
|
||||||
* </p>
|
* </p>
|
||||||
* @param actionEvent L'utilisateur vient d'appuyer sur le bouton connexion
|
* @param actionEvent
|
||||||
*/
|
*/
|
||||||
public void connexion(ActionEvent actionEvent) {
|
public void connexion(ActionEvent actionEvent) {
|
||||||
Boolean connexion = false;
|
Boolean connexion = false;
|
||||||
if (this.localButton.isSelected()) {
|
try {
|
||||||
// PARTIE CONNEXION LOCALE
|
connexion = ChatApp.getInstance().connexion(pseudonyme.getText());
|
||||||
ChatApp.getInstance().setExterne(false);
|
} catch (IOException e) {
|
||||||
} else {
|
e.printStackTrace();
|
||||||
// PARTIE CONNEXION DISTANTE
|
|
||||||
ChatApp.getInstance().setExterne(true);
|
|
||||||
}
|
}
|
||||||
if (pseudonyme.getText().length() > MaxLength) {
|
if(!connexion){
|
||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||||
alert.setTitle("Connexion");
|
alert.setTitle("Connexion");
|
||||||
// Header Text: null
|
// Header Text: null
|
||||||
alert.setHeaderText(null);
|
alert.setHeaderText(null);
|
||||||
alert.setContentText("Echec de Connexion: le pseudo entre fait plus de " + MaxLength + " caracteres");
|
alert.setContentText("Echec de Connexion: le pseudo "+pseudonyme.getText()+" est deja pris");
|
||||||
alert.showAndWait();
|
alert.showAndWait();
|
||||||
} else {
|
}
|
||||||
|
else{
|
||||||
|
Stage stage = (Stage) connexionButton.getScene().getWindow();
|
||||||
|
Parent root = null;
|
||||||
try {
|
try {
|
||||||
connexion = ChatApp.getInstance().connexion(pseudonyme.getText());
|
root = FXMLLoader.load(getClass().getResource("/fenetres/View_Menu.fxml"));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
if (!connexion) {
|
Scene scene = new Scene(root);
|
||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
stage.setScene(scene);
|
||||||
alert.setTitle("Connexion");
|
stage.show();
|
||||||
// Header Text: null
|
|
||||||
alert.setHeaderText(null);
|
|
||||||
alert.setContentText("Echec de Connexion: le pseudo " + pseudonyme.getText() + " est deja pris");
|
|
||||||
alert.showAndWait();
|
|
||||||
} else {
|
|
||||||
Stage stage = (Stage) connexionButton.getScene().getWindow();
|
|
||||||
Parent root = null;
|
|
||||||
try {
|
|
||||||
root = FXMLLoader.load(getClass().getResource("/fenetres/View_Menu.fxml"));
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
Scene scene = new Scene(root);
|
|
||||||
stage.setScene(scene);
|
|
||||||
stage.show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ package chatapp.View;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
import chatapp.Controller.ChatApp;
|
import chatapp.Controller.ChatApp;
|
||||||
|
|
@ -21,11 +20,7 @@ import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.ComboBox;
|
import javafx.scene.control.ComboBox;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe representant l'interface graphique permettant de choisir un utilisateur avec qui clavarder.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class DemarrerSession {
|
public class DemarrerSession {
|
||||||
|
|
||||||
@FXML // ResourceBundle that was given to the FXMLLoader
|
@FXML // ResourceBundle that was given to the FXMLLoader
|
||||||
|
|
@ -39,20 +34,19 @@ public class DemarrerSession {
|
||||||
|
|
||||||
@FXML // fx:id="MenuButton"
|
@FXML // fx:id="MenuButton"
|
||||||
private Button MenuButton; // Value injected by FXMLLoader
|
private Button MenuButton; // Value injected by FXMLLoader
|
||||||
|
|
||||||
/* Instance de chatApp */
|
|
||||||
private ChatApp chatApp;
|
private ChatApp chatApp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Handler permettant de demarrer une session de clavardage avec le contact choisi dans la comboBox choixContaact</p>
|
* <p> Handler permettant de demarrer une session de clavardage avec le contact choisi dans la comboBox choixContaact</p>
|
||||||
* @param event L'utilisateur vient de selectionner un utilisateur
|
* @param event
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
void demarrerSessionAvec(ActionEvent event) { chatApp.demarrerSession(choixContact.getValue()); }
|
void demarrerSessionAvec(ActionEvent event) {
|
||||||
|
chatApp.demarrerSession(choixContact.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Handler permettant de retourner au menu principal sur pression du MenuButton</p>
|
* <p> Handler permettant de retourner au menu principal sur pression du MenuButton</p>
|
||||||
* @param event L'utilisateur vient d'appuyer sur le bouton Retour au menu
|
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
void retourMenu(ActionEvent event) {
|
void retourMenu(ActionEvent event) {
|
||||||
|
|
@ -74,9 +68,10 @@ public class DemarrerSession {
|
||||||
@FXML // This method is called by the FXMLLoader when initialization is complete
|
@FXML // This method is called by the FXMLLoader when initialization is complete
|
||||||
void initialize() {
|
void initialize() {
|
||||||
this.chatApp = ChatApp.getInstance();
|
this.chatApp = ChatApp.getInstance();
|
||||||
ArrayList<Utilisateur> Com = chatApp.createListeCommunicationPossible();
|
ListUtilisateurs utils = chatApp.getActifUsers();
|
||||||
for(Utilisateur u : Com ){
|
for(Utilisateur u : utils.getActifUsers()){
|
||||||
choixContact.getItems().add(u.getPseudo());
|
choixContact.getItems().add(u.getPseudo());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,44 @@
|
||||||
package chatapp.View;
|
package chatapp.View;
|
||||||
|
|
||||||
import chatapp.Protocol.SessionClavardage;
|
import chatapp.Protocol.SessionClavardage;
|
||||||
|
import javafx.event.EventHandler;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
import javafx.scene.Parent;
|
import javafx.scene.Parent;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
import javafx.stage.WindowEvent;
|
||||||
|
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe permettant d'ouvrir une nouvelle fenetre afin de clavarder avec un utilisateur.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class FenetreSession extends Stage {
|
public class FenetreSession extends Stage {
|
||||||
|
SessionClavardage session;
|
||||||
/**
|
/**
|
||||||
* <p> Permet l'ouverture de la fenetre associee a la session de clavardage</p>
|
* <p> Permet l'ouverture de la fenetre associee a la session de clavardage</p>
|
||||||
* @param session Un objet FenetreSession est attribué avec un objet de type SessionClavardage
|
|
||||||
*/
|
*/
|
||||||
public FenetreSession(SessionClavardage session) {
|
public FenetreSession(SessionClavardage session) {
|
||||||
FXMLLoader fichier = new FXMLLoader(getClass().getResource("/fenetres/View_Clavardage.fxml"));
|
FXMLLoader fichier = new FXMLLoader(getClass().getResource("/fenetres/View_Clavardage.fxml"));
|
||||||
try{
|
try{
|
||||||
Parent rootchat = fichier.load();
|
Parent rootchat = fichier.load();
|
||||||
Clavardage controller = fichier.getController();
|
Clavardage controller = fichier.getController();
|
||||||
|
|
||||||
|
//controller.printsalut();
|
||||||
controller.setSession(session);
|
controller.setSession(session);
|
||||||
Scene scene1;
|
Scene scene1 = null;
|
||||||
scene1 = new Scene(rootchat,600,400);
|
scene1 = new Scene(rootchat,600,400);
|
||||||
this.setScene(scene1);
|
this.setScene(scene1);
|
||||||
this.setTitle("Session avec "+session.getU2().getPseudo());
|
this.setTitle("Session avec "+session.getU2().getPseudo());
|
||||||
this.setMinWidth(600);
|
this.setMinWidth(600);
|
||||||
this.setMinHeight(400);
|
this.setMinHeight(400);
|
||||||
|
//this.setMaxWidth(600);
|
||||||
|
//this.setMaxHeight(400);
|
||||||
this.show();
|
this.show();
|
||||||
this.centerOnScreen();
|
this.centerOnScreen();
|
||||||
this.setOnCloseRequest(we -> session.arretSession());
|
this.setOnCloseRequest(new EventHandler<WindowEvent>() {
|
||||||
|
public void handle(WindowEvent we) {
|
||||||
|
session.arretSession();
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,134 +0,0 @@
|
||||||
@startuml
|
|
||||||
|
|
||||||
title __VIEW's Class Diagram__\n
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace View {
|
|
||||||
class chatapp.View.ChangementPseudo {
|
|
||||||
- MenuButton : Button
|
|
||||||
- location : URL
|
|
||||||
- pseudonyme : TextField
|
|
||||||
- pseudonyme1 : Text
|
|
||||||
- resources : ResourceBundle
|
|
||||||
- validationButton : Button
|
|
||||||
~ initialize()
|
|
||||||
~ retourMenu()
|
|
||||||
~ validerPseudo()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace View {
|
|
||||||
class chatapp.View.Clavardage {
|
|
||||||
+ plusButton : Button
|
|
||||||
- AEnvoyer : TextField
|
|
||||||
- ChatText : TextArea
|
|
||||||
- EnvoyerButton : Button
|
|
||||||
- location : URL
|
|
||||||
- nomTable : String
|
|
||||||
- pseudonyme1 : Text
|
|
||||||
- resources : ResourceBundle
|
|
||||||
+ ajouterMessagesHistorique()
|
|
||||||
+ getSession()
|
|
||||||
+ initialize()
|
|
||||||
+ propertyChange()
|
|
||||||
+ setSession()
|
|
||||||
~ envoyerMessage()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace View {
|
|
||||||
class chatapp.View.ConnexionScreen {
|
|
||||||
+ connexionButton : Button
|
|
||||||
+ localButton : RadioButton
|
|
||||||
+ pseudonyme : TextField
|
|
||||||
+ remoteButton : RadioButton
|
|
||||||
- location : URL
|
|
||||||
- resources : ResourceBundle
|
|
||||||
+ connexion()
|
|
||||||
~ initialize()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace View {
|
|
||||||
class chatapp.View.DemarrerSession {
|
|
||||||
- MenuButton : Button
|
|
||||||
- choixContact : ComboBox<String>
|
|
||||||
- location : URL
|
|
||||||
- resources : ResourceBundle
|
|
||||||
~ demarrerSessionAvec()
|
|
||||||
~ initialize()
|
|
||||||
~ retourMenu()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace View {
|
|
||||||
class chatapp.View.FenetreSession {
|
|
||||||
+ FenetreSession()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace View {
|
|
||||||
class chatapp.View.View_Menu {
|
|
||||||
+ changerPseudoButton : MenuItem
|
|
||||||
+ demarrerSessionButton : MenuItem
|
|
||||||
+ pseudonyme : Text
|
|
||||||
+ utilsActifsButton : MenuItem
|
|
||||||
- location : URL
|
|
||||||
- resources : ResourceBundle
|
|
||||||
+ afficherUtilsActifs()
|
|
||||||
+ changerPseudo()
|
|
||||||
+ deconnexion()
|
|
||||||
+ demarrerSession()
|
|
||||||
~ initialize()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
namespace View {
|
|
||||||
class chatapp.View.View_Utilisateurs {
|
|
||||||
+ ListeUtilisateurs : TextArea
|
|
||||||
+ MenuButton : Button
|
|
||||||
- location : URL
|
|
||||||
- resources : ResourceBundle
|
|
||||||
+ retourMenu()
|
|
||||||
~ initialize()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
chatapp.View.ChangementPseudo o-- chatapp.Controller.ChatApp : chatApp
|
|
||||||
chatapp.View.Clavardage .up.|> java.beans.PropertyChangeListener
|
|
||||||
chatapp.View.Clavardage .up.|> javafx.fxml.Initializable
|
|
||||||
chatapp.View.Clavardage o-- chatapp.Protocol.SessionClavardage : session
|
|
||||||
chatapp.View.Clavardage o-- chatapp.Model.Utilisateur : u2
|
|
||||||
chatapp.View.DemarrerSession o-- chatapp.Controller.ChatApp : chatApp
|
|
||||||
chatapp.View.FenetreSession -up-|> javafx.stage.Stage
|
|
||||||
chatapp.View.View_Menu o-- chatapp.Controller.ChatApp : chatapp
|
|
||||||
|
|
||||||
|
|
||||||
right footer
|
|
||||||
|
|
||||||
|
|
||||||
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
|
|
||||||
For more information about this tool, please contact philippe.mesmeur@gmail.com
|
|
||||||
endfooter
|
|
||||||
|
|
||||||
@enduml
|
|
||||||
|
|
@ -1,7 +1,12 @@
|
||||||
package chatapp.View;
|
package chatapp.View;
|
||||||
|
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
import chatapp.Controller.ChatApp;
|
import chatapp.Controller.ChatApp;
|
||||||
|
import javafx.application.Platform;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.FXMLLoader;
|
import javafx.fxml.FXMLLoader;
|
||||||
|
|
@ -11,36 +16,15 @@ import javafx.scene.control.MenuItem;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ResourceBundle;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe representant la page d'accueil. Elle est composé d'un menu en haut a gauche.
|
|
||||||
* Au centre un petit message "Bienvenue" suivi du pseudo de l'utilisateur est affiché.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class View_Menu {
|
public class View_Menu {
|
||||||
|
|
||||||
/* Le pseudo de l'utilisateur */
|
|
||||||
public Text pseudonyme;
|
public Text pseudonyme;
|
||||||
|
|
||||||
/* Choix dans la bar de menu : Connaitre les utilisateurs actifs */
|
|
||||||
public MenuItem utilsActifsButton;
|
public MenuItem utilsActifsButton;
|
||||||
|
|
||||||
/* Choix dans la bar de menu : Demarrer une session de clavardage */
|
|
||||||
public MenuItem demarrerSessionButton;
|
public MenuItem demarrerSessionButton;
|
||||||
|
|
||||||
/* Choix dans la bar de menu : Changer de pseudo */
|
|
||||||
public MenuItem changerPseudoButton;
|
public MenuItem changerPseudoButton;
|
||||||
|
|
||||||
@FXML // ResourceBundle that was given to the FXMLLoader
|
@FXML // ResourceBundle that was given to the FXMLLoader
|
||||||
private ResourceBundle resources;
|
private ResourceBundle resources;
|
||||||
|
|
||||||
/* Une instance de chatApp */
|
|
||||||
private ChatApp chatapp;
|
private ChatApp chatapp;
|
||||||
|
|
||||||
@FXML // URL location of the FXML file that was given to the FXMLLoader
|
@FXML // URL location of the FXML file that was given to the FXMLLoader
|
||||||
private URL location;
|
private URL location;
|
||||||
|
|
||||||
|
|
@ -52,7 +36,7 @@ public class View_Menu {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Handler permettant d'aller a la scene View_Utilisateurs pour afficher la liste des utilisateurs actifs</p>
|
* <p>Handler permettant d'aller a la scene View_Utilisateurs pour afficher la liste des utilisateurs actifs</p>
|
||||||
* @param actionEvent L'utilisateur a choisit l'option afficher utilisateurs actifs dans le menu
|
* @param actionEvent
|
||||||
*/
|
*/
|
||||||
public void afficherUtilsActifs(ActionEvent actionEvent) {
|
public void afficherUtilsActifs(ActionEvent actionEvent) {
|
||||||
Stage stage = (Stage) pseudonyme.getScene().getWindow();
|
Stage stage = (Stage) pseudonyme.getScene().getWindow();
|
||||||
|
|
@ -69,7 +53,7 @@ public class View_Menu {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Handler permettant d'aller a la scene Demarrer_Session pour choisir un utilisateur avec qui clavarder
|
* <p>Handler permettant d'aller a la scene Demarrer_Session pour choisir un utilisateur avec qui clavarder
|
||||||
* @param actionEvent L'utilisateur a choisit l'option de demarrer une session de clavardage dans le menu
|
* @param actionEvent
|
||||||
*/
|
*/
|
||||||
public void demarrerSession(ActionEvent actionEvent) {
|
public void demarrerSession(ActionEvent actionEvent) {
|
||||||
Stage stage = (Stage) pseudonyme.getScene().getWindow();
|
Stage stage = (Stage) pseudonyme.getScene().getWindow();
|
||||||
|
|
@ -86,7 +70,7 @@ public class View_Menu {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Handler permettant d'aller a la scene View_ChangementPseudo pour changer son pseudonyme
|
* <p>Handler permettant d'aller a la scene View_ChangementPseudo pour changer son pseudonyme
|
||||||
* @param actionEvent L'utilisateur a choisit l'option changer de pseudo
|
* @param actionEvent
|
||||||
*/
|
*/
|
||||||
public void changerPseudo(ActionEvent actionEvent) {
|
public void changerPseudo(ActionEvent actionEvent) {
|
||||||
Stage stage = (Stage) pseudonyme.getScene().getWindow();
|
Stage stage = (Stage) pseudonyme.getScene().getWindow();
|
||||||
|
|
@ -103,11 +87,14 @@ public class View_Menu {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Handler permettant de se deconnecter et fermer l'application
|
* <p>Handler permettant de se deconnecter et fermer l'application
|
||||||
* @param actionEvent L'utilisateur a choisit l'option Deconnexion dans le menu
|
* @param actionEvent
|
||||||
*/
|
*/
|
||||||
public void deconnexion(ActionEvent actionEvent) {
|
public void deconnexion(ActionEvent actionEvent) {
|
||||||
try {
|
try {
|
||||||
chatapp.deconnexion();
|
chatapp.deconnexion();
|
||||||
|
/*chatapp.getMain().stop();
|
||||||
|
Platform.exit();
|
||||||
|
System.exit(0);*/
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
||||||
|
|
@ -15,19 +15,11 @@ import javafx.scene.Scene;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.Button;
|
||||||
import javafx.scene.control.TextArea;
|
import javafx.scene.control.TextArea;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe representant l'interface graphique permettant d'afficher les utilisateurs actifs
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class View_Utilisateurs {
|
public class View_Utilisateurs {
|
||||||
|
|
||||||
/* La zone d'affichage des utilisateurs actifs */
|
|
||||||
public TextArea ListeUtilisateurs;
|
public TextArea ListeUtilisateurs;
|
||||||
|
|
||||||
/* Bouton de retour au menu */
|
|
||||||
public Button MenuButton;
|
public Button MenuButton;
|
||||||
|
|
||||||
@FXML // ResourceBundle that was given to the FXMLLoader
|
@FXML // ResourceBundle that was given to the FXMLLoader
|
||||||
private ResourceBundle resources;
|
private ResourceBundle resources;
|
||||||
|
|
||||||
|
|
@ -37,16 +29,18 @@ public class View_Utilisateurs {
|
||||||
@FXML // This method is called by the FXMLLoader when initialization is complete
|
@FXML // This method is called by the FXMLLoader when initialization is complete
|
||||||
void initialize() {
|
void initialize() {
|
||||||
ListUtilisateurs utilisateurs = ChatApp.getInstance().getActifUsers();
|
ListUtilisateurs utilisateurs = ChatApp.getInstance().getActifUsers();
|
||||||
|
|
||||||
ListeUtilisateurs.setText("");
|
ListeUtilisateurs.setText("");
|
||||||
for(Utilisateur elem : utilisateurs.getActifUsers()) {
|
for(Utilisateur elem : utilisateurs.getActifUsers()) {
|
||||||
ListeUtilisateurs.appendText( " - " +elem.getPseudo() + '\n');
|
ListeUtilisateurs.appendText( " - " +elem.getPseudo() + '\n');
|
||||||
}
|
}
|
||||||
ListeUtilisateurs.setEditable(false);
|
ListeUtilisateurs.setEditable(false);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Handler permettant de retourner au menu principal sur pression du MenuButton</p>
|
* <p> Handler permettant de retourner au menu principal sur pression du MenuButton</p>
|
||||||
* @param actionEvent L'utilisateur vient d'appuyer sur le bouton Retour au menu
|
|
||||||
*/
|
*/
|
||||||
public void retourMenu(ActionEvent actionEvent) {
|
public void retourMenu(ActionEvent actionEvent) {
|
||||||
Stage stage = (Stage) MenuButton.getScene().getWindow();
|
Stage stage = (Stage) MenuButton.getScene().getWindow();
|
||||||
|
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
@startuml
|
|
||||||
|
|
||||||
title __CHATAPP's Class Diagram__\n
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
class chatapp.Launcher {
|
|
||||||
{static} + main()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
namespace chatapp {
|
|
||||||
class chatapp.Main {
|
|
||||||
{static} + main()
|
|
||||||
+ start()
|
|
||||||
+ stop()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
chatapp.Main -up-|> javafx.application.Application
|
|
||||||
chatapp.Main o-- chatapp.Controller.ChatApp : chatapp
|
|
||||||
|
|
||||||
|
|
||||||
right footer
|
|
||||||
|
|
||||||
|
|
||||||
PlantUML diagram generated by SketchIt! (https://bitbucket.org/pmesmeur/sketch.it)
|
|
||||||
For more information about this tool, please contact philippe.mesmeur@gmail.com
|
|
||||||
endfooter
|
|
||||||
|
|
||||||
@enduml
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: chatapp.Launcher
|
|
||||||
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<?import javafx.scene.control.Button?>
|
<?import javafx.scene.control.Button?>
|
||||||
<?import javafx.scene.control.RadioButton?>
|
|
||||||
<?import javafx.scene.control.TextField?>
|
<?import javafx.scene.control.TextField?>
|
||||||
<?import javafx.scene.control.ToggleGroup?>
|
|
||||||
<?import javafx.scene.layout.AnchorPane?>
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
<?import javafx.scene.layout.ColumnConstraints?>
|
<?import javafx.scene.layout.ColumnConstraints?>
|
||||||
<?import javafx.scene.layout.GridPane?>
|
<?import javafx.scene.layout.GridPane?>
|
||||||
|
|
@ -26,34 +24,24 @@
|
||||||
</Text>
|
</Text>
|
||||||
</children>
|
</children>
|
||||||
</HBox>
|
</HBox>
|
||||||
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="598.0" style="-fx-background-color: #3299a8;">
|
<HBox alignment="CENTER" prefHeight="304.0" prefWidth="600.0" style="-fx-background-color: #3299a8;">
|
||||||
<children>
|
<children>
|
||||||
<GridPane alignment="CENTER" prefHeight="275.0" prefWidth="448.0">
|
<GridPane alignment="CENTER" prefHeight="302.0" prefWidth="279.0">
|
||||||
<columnConstraints>
|
<columnConstraints>
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
||||||
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
|
|
||||||
</columnConstraints>
|
</columnConstraints>
|
||||||
<rowConstraints>
|
<rowConstraints>
|
||||||
<RowConstraints maxHeight="254.19998168945312" minHeight="10.0" prefHeight="111.80001831054688" vgrow="SOMETIMES" />
|
<RowConstraints maxHeight="254.19998168945312" minHeight="10.0" prefHeight="123.19998779296876" vgrow="SOMETIMES" />
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="69.39998168945314" vgrow="SOMETIMES" />
|
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="107.20001220703125" vgrow="SOMETIMES" />
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="33.60002441406249" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="27.400000000000034" vgrow="SOMETIMES" />
|
|
||||||
<RowConstraints maxHeight="217.80000152587894" minHeight="10.0" prefHeight="79.39999999999998" vgrow="SOMETIMES" />
|
|
||||||
</rowConstraints>
|
</rowConstraints>
|
||||||
<children>
|
<children>
|
||||||
<TextField fx:id="pseudonyme" prefHeight="26.0" prefWidth="447.0" promptText="Pseudonyme" GridPane.columnSpan="3" />
|
<TextField fx:id="pseudonyme" prefHeight="26.0" prefWidth="447.0" promptText="Pseudonyme" GridPane.columnSpan="2" />
|
||||||
<Button fx:id="connexionButton" alignment="CENTER" contentDisplay="CENTER" mnemonicParsing="false" onAction="#connexion" prefHeight="38.0" prefWidth="453.0" style="-fx-background-color: #b0c926;" text="Connexion" textFill="#3299a8" GridPane.columnSpan="3" GridPane.rowIndex="1">
|
<Button fx:id="connexionButton" alignment="CENTER" contentDisplay="CENTER" mnemonicParsing="false" onAction="#connexion" prefHeight="38.0" prefWidth="287.0" style="-fx-background-color: #b0c926;" text="Connexion" textFill="#3299a8" GridPane.columnSpan="2" GridPane.rowIndex="1">
|
||||||
<font>
|
<font>
|
||||||
<Font name="OCR A Extended" size="27.0" />
|
<Font name="OCR A Extended" size="27.0" />
|
||||||
</font>
|
</font>
|
||||||
</Button>
|
</Button>
|
||||||
<RadioButton fx:id="remoteButton" mnemonicParsing="false" selected="true" text="Connexion distante" GridPane.columnIndex="1" GridPane.rowIndex="3">
|
|
||||||
<toggleGroup>
|
|
||||||
<ToggleGroup fx:id="lieu" />
|
|
||||||
</toggleGroup>
|
|
||||||
</RadioButton>
|
|
||||||
<RadioButton fx:id="localButton" mnemonicParsing="false" text="Connexion locale" toggleGroup="$lieu" GridPane.columnIndex="1" GridPane.rowIndex="2" />
|
|
||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
</children>
|
</children>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Main-Class: chatapp.Launcher
|
|
||||||
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
package src.Controller;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe permettant de sauvegarder les échanges entre deux utilisateurs
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class Historique {
|
|
||||||
private Utilisateur User1;
|
|
||||||
private Utilisateur User2;
|
|
||||||
// Liste conservant les differents échanges
|
|
||||||
private ArrayList<MessageHorodate> HistoriqueHorodate ;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Constructeur : un historique sauvegarde les echanges entre
|
|
||||||
* User1 et User2
|
|
||||||
* @param User1 - un utilisateur
|
|
||||||
* @param User2 - un second utilisateur
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public Historique(Utilisateur User1, Utilisateur User2) {
|
|
||||||
this.User1 = User1;
|
|
||||||
this.User2 = User2;
|
|
||||||
this.HistoriqueHorodate = new ArrayList<MessageHorodate>();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* On ajoute un message échangé dans la liste 'HistoriqueHorodate'
|
|
||||||
*
|
|
||||||
* @param mh - le message horodate échangé
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void addMessage(MessageHorodate mh) {
|
|
||||||
this.HistoriqueHorodate.add(mh);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* getter pour recuperer le second utilisateur
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public Utilisateur getUser2() {
|
|
||||||
return User2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void afficher10derniers() {
|
|
||||||
System.out.println("Demarrage de l'affichage partiel de l'historique");
|
|
||||||
System.out.println("Il y a actuellement " + HistoriqueHorodate.size() +" elements dans l'historique");
|
|
||||||
int n =10;
|
|
||||||
if(HistoriqueHorodate.size()<=10) {
|
|
||||||
n = HistoriqueHorodate.size();
|
|
||||||
}
|
|
||||||
for(int i = 0; i<n;i++) {
|
|
||||||
String exp = HistoriqueHorodate.get(i).getSource().getPseudo();
|
|
||||||
String payload = HistoriqueHorodate.get(i).getMessage();
|
|
||||||
System.out.println(exp+" : "+payload);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,125 +0,0 @@
|
||||||
package src.Controller;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public class ListUtilisateurs {
|
|
||||||
|
|
||||||
private ArrayList<Utilisateur> actifUsers ;
|
|
||||||
|
|
||||||
public ListUtilisateurs() {
|
|
||||||
this.actifUsers = new ArrayList<Utilisateur>() ;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers'
|
|
||||||
*
|
|
||||||
* @param u on va rajouter cet utilisateur dans la liste
|
|
||||||
*/
|
|
||||||
public void addList(Utilisateur u) {
|
|
||||||
if((verifierUnicite(u.getPseudo()))) {
|
|
||||||
this.actifUsers.add(u);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Recuperer un utilisateur à partir de son pseudo
|
|
||||||
*
|
|
||||||
* @param pseudo Pseudo de l'utilisateur que l'on souhaite retrouver
|
|
||||||
*/
|
|
||||||
public Utilisateur getPseudoList(String pseudo) {
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
if (elem.getPseudo().equals(pseudo) ) {
|
|
||||||
return elem ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null ;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Utilisateur getIPList(InetAddress ip) throws Exception {
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
if (elem.getIp().equals(ip) ) {
|
|
||||||
return elem ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
throw new Exception("No such user with this IP address") ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur
|
|
||||||
*
|
|
||||||
* @param u on va supprimer cet utilisateur dans la liste
|
|
||||||
*/
|
|
||||||
public void supprimerList(Utilisateur u) {
|
|
||||||
Boolean Sup = false ;
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
if (elem.equals(u) ) {
|
|
||||||
this.actifUsers.remove(elem);
|
|
||||||
Sup = true ;
|
|
||||||
this.afficherListeUtilisateurs();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!Sup) {
|
|
||||||
System.out.println("Tentative de retirer un objet non contenu dans la liste");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Modifie le nom d'un utilisateur dans la liste des utilisateurs actifs 'actifUsers'
|
|
||||||
*
|
|
||||||
* @param ancien correspond au pseudo remplacer
|
|
||||||
* @param nouveau correspond au nouveau pseudo
|
|
||||||
*/
|
|
||||||
public void modifierList(String ancien , String nouveau) {
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
if (ancien.equals( elem.getPseudo() ) ) {
|
|
||||||
this.actifUsers.remove(elem);
|
|
||||||
elem.setPseudo(nouveau);;
|
|
||||||
this.addList(elem);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.afficherListeUtilisateurs();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean appartient(Utilisateur u) {
|
|
||||||
return this.actifUsers.contains(u);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Verifie qu'aucun autre utilisateur ne possède le même pseudo
|
|
||||||
*
|
|
||||||
* @param u on va supprimer cet utilisateur dans la liste
|
|
||||||
*/
|
|
||||||
public Boolean verifierUnicite(String pseudo) {
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
if (pseudo.equals( elem.getPseudo() ) ) {
|
|
||||||
return false ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Méthode affichant la liste des utilisateurs actifs
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String afficherListeUtilisateurs() {
|
|
||||||
System.out.println ("Liste des utilisateurs actifs : ");
|
|
||||||
String Utilisateur = "" ;
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
System.out.println (elem.toString());
|
|
||||||
Utilisateur += (elem + "\n");
|
|
||||||
}
|
|
||||||
return Utilisateur;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,142 +0,0 @@
|
||||||
package src.Controller;
|
|
||||||
|
|
||||||
import java.text.DateFormat;
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.io.Serializable;
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Classe representant les messages envoyés en TCP lors d'une session de clavardage
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public class MessageHorodate implements Serializable {
|
|
||||||
private Utilisateur destinataire ;
|
|
||||||
private Utilisateur source ;
|
|
||||||
private Date dateHorodatage ;
|
|
||||||
private int type; // 0 = debut de la communication, 1= message de communication, 2 = fin de la communicataion
|
|
||||||
private String Message;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Constructeur , le message va etre horodate
|
|
||||||
* @param destinataire - Destinataire du message
|
|
||||||
* @param source - Source du message
|
|
||||||
* @param Message - Message envoye
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public MessageHorodate(Utilisateur destinataire, Utilisateur source, String Message, int type) {
|
|
||||||
this.setDestinataire(destinataire) ;
|
|
||||||
this.setSource(source) ;
|
|
||||||
this.setMessage(Message) ;
|
|
||||||
this.setDateHorodatage(new Date());
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDate(Date d) {
|
|
||||||
this.setDateHorodatage(d);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* permet de creer une representation string du message
|
|
||||||
* @return Les differents attributs de la classe sous forme de string
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
String Msg = "";
|
|
||||||
Msg += ("Destinataire::" + this.getDestinataire() + "\n") ;
|
|
||||||
Msg += ("Source::" + this.getSource()+ "\n") ;
|
|
||||||
Msg += ("Type::"+ this.type+ "\n");
|
|
||||||
Msg += ("Date::" + this.dateToString() + "\n") ;
|
|
||||||
Msg += ("Message::" + this.getMessage() + "\n" );
|
|
||||||
return Msg ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* permet de creer une representation string de la date d'horodatage
|
|
||||||
* @return La date d'horodatage du message en format yyyy/MM/dd HH:mm:ss
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public String dateToString() {
|
|
||||||
DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
||||||
return format.format(this.getDateHorodatage());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Permet de re creer un message horodate a partir d'un string
|
|
||||||
* @return un messageHorodate
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public static MessageHorodate stringToMessageHorodate(String s) {
|
|
||||||
|
|
||||||
String mots[] = s.split("\n");
|
|
||||||
Utilisateur destinataire = Utilisateur.stringToUtilisateur(mots[0].split("::")[1]);
|
|
||||||
Utilisateur source = Utilisateur.stringToUtilisateur(mots[1].split("::")[1]);
|
|
||||||
int type = Integer.parseInt(mots[2].split("::")[1]);
|
|
||||||
DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
|
||||||
Date date = new Date();
|
|
||||||
/*try {
|
|
||||||
date = format.parse(mots[3].split("::")[1]);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}*/
|
|
||||||
String payload = "";
|
|
||||||
for(int i=4; i< mots.length; i++) {
|
|
||||||
if(mots[i].startsWith("Message::")) {
|
|
||||||
mots[i]=mots[i].split("::")[1];
|
|
||||||
}
|
|
||||||
payload += mots[i]+"\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
MessageHorodate mh = new MessageHorodate(destinataire, source, payload, type);
|
|
||||||
//mh.setDate(date);
|
|
||||||
|
|
||||||
return mh ;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Utilisateur getSource() {
|
|
||||||
return source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSource(Utilisateur source) {
|
|
||||||
this.source = source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Utilisateur getDestinataire() {
|
|
||||||
return destinataire;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDestinataire(Utilisateur destinataire) {
|
|
||||||
this.destinataire = destinataire;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMessage() {
|
|
||||||
return Message;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMessage(String message) {
|
|
||||||
Message = message;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(int Type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDateHorodatage() {
|
|
||||||
return dateHorodatage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateHorodatage(Date dateHorodatage) {
|
|
||||||
this.dateHorodatage = dateHorodatage;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
package src.Controller;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.net.UnknownHostException;
|
|
||||||
|
|
||||||
public class Utilisateur extends Object {
|
|
||||||
|
|
||||||
private String pseudo ;
|
|
||||||
private Integer port;
|
|
||||||
private InetAddress ip ;
|
|
||||||
private String id ;
|
|
||||||
|
|
||||||
public Utilisateur(String pseudo,Integer port, InetAddress ip ){
|
|
||||||
this.setPseudo(pseudo) ;
|
|
||||||
this.setPort(port);
|
|
||||||
this.ip = ip ;
|
|
||||||
this.id = ip.getHostName() ;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPseudo() {
|
|
||||||
return pseudo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPseudo(String pseudo) {
|
|
||||||
this.pseudo = pseudo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getPort() {
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPort(Integer port) {
|
|
||||||
this.port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
public InetAddress getIp() {
|
|
||||||
return ip;
|
|
||||||
}
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString(){
|
|
||||||
String s = "";
|
|
||||||
s+="pseudo " + this.pseudo + " | ";
|
|
||||||
s+="port " + (this.port).toString() + " | ";
|
|
||||||
s+="ip " + (this.ip).toString() + " | ";
|
|
||||||
s+="id " + (this.id).toString() + " | ";
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Utilisateur stringToUtilisateur(String s) {
|
|
||||||
String name = "";
|
|
||||||
Integer port = 0;
|
|
||||||
String ip = "" ;
|
|
||||||
String id = "";
|
|
||||||
String mots[] = s.split(" ");
|
|
||||||
name=mots[1];
|
|
||||||
port=Integer.parseInt(mots[4]);
|
|
||||||
ip=mots[7];
|
|
||||||
id=mots[10];
|
|
||||||
Utilisateur user = null;
|
|
||||||
try {
|
|
||||||
user = new Utilisateur(name,port,InetAddress.getByName(ip.split("/")[1]));
|
|
||||||
} catch (UnknownHostException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Boolean equals(Utilisateur u) {
|
|
||||||
return this.getId().equals( u.getId() ) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
<head>
|
<head>
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
<!-- Generated by javadoc (13-ea) on Wed Dec 02 12:11:15 CET 2020 -->
|
||||||
<title>All Classes</title>
|
<title>All Classes</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<meta name="dc.created" content="2021-01-30">
|
<meta name="dc.created" content="2020-12-02">
|
||||||
<meta name="description" content="class index">
|
<meta name="description" content="class index">
|
||||||
<meta name="generator" content="javadoc/AllClassesIndexWriter">
|
<meta name="generator" content="javadoc/AllClassesIndexWriter">
|
||||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
|
@ -37,12 +37,11 @@ loadScripts(document, 'script');</script>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="index.html">Overview</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li>Package</li>
|
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li><a href="overview-tree.html">Tree</a></li>
|
<li><a href="overview-tree.html">Tree</a></li>
|
||||||
<li><a href="deprecated-list.html">Deprecated</a></li>
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
<li><a href="index-files/index-1.html">Index</a></li>
|
<li><a href="index-all.html">Index</a></li>
|
||||||
<li><a href="help-doc.html">Help</a></li>
|
<li><a href="help-doc.html">Help</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -80,132 +79,47 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor" id="i0">
|
<tr class="altColor" id="i0">
|
||||||
<td class="colFirst"><a href="chatapp/View/ChangementPseudo.html" title="class in chatapp.View">ChangementPseudo</a></td>
|
<td class="colFirst"><a href="ChatApp.html" title="class in <Unnamed>">ChatApp</a></td>
|
||||||
<th class="colLast" scope="row">
|
<th class="colLast" scope="row">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
Classe representant l'interface graphique permettant de changer de pseudo</div>
|
Classe récapitulant toutes les actions possibles pour un utilisateur</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor" id="i1">
|
<tr class="rowColor" id="i1">
|
||||||
<td class="colFirst"><a href="chatapp/Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a></td>
|
<td class="colFirst"><a href="Historique.html" title="class in <Unnamed>">Historique</a></td>
|
||||||
<th class="colLast" scope="row">
|
<th class="colLast" scope="row">
|
||||||
<div class="block"> Controller de l'application.</div>
|
<div class="block">
|
||||||
|
Classe permettant de sauvegarder les échanges entre deux utilisateurs</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor" id="i2">
|
<tr class="altColor" id="i2">
|
||||||
<td class="colFirst"><a href="chatapp/View/Clavardage.html" title="class in chatapp.View">Clavardage</a></td>
|
<td class="colFirst"><a href="ListUtilisateurs.html" title="class in <Unnamed>">ListUtilisateurs</a></td>
|
||||||
<th class="colLast" scope="row">
|
<th class="colLast" scope="row"> </th>
|
||||||
<div class="block">
|
|
||||||
Classe representant l'interface graphique permettant de clavarder avec un utilisateur.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor" id="i3">
|
<tr class="rowColor" id="i3">
|
||||||
<td class="colFirst"><a href="chatapp/View/ConnexionScreen.html" title="class in chatapp.View">ConnexionScreen</a></td>
|
<td class="colFirst"><a href="MessageHorodate.html" title="class in <Unnamed>">MessageHorodate</a></td>
|
||||||
<th class="colLast" scope="row">
|
<th class="colLast" scope="row">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
Classe representant l'interface graphique permettant de se connecter.</div>
|
Classe representant les messages envoyés en TCP lors d'une session de clavardage</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor" id="i4">
|
<tr class="altColor" id="i4">
|
||||||
<td class="colFirst"><a href="chatapp/Model/DataBase.html" title="class in chatapp.Model">DataBase</a></td>
|
<td class="colFirst"><a href="TCPEchange.html" title="class in <Unnamed>">TCPEchange</a></td>
|
||||||
<th class="colLast" scope="row">
|
<th class="colLast" scope="row">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
Classe représentant la Base de données.</div>
|
Classe representant les échanges TCP entre utilisateurs.</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="rowColor" id="i5">
|
<tr class="rowColor" id="i5">
|
||||||
<td class="colFirst"><a href="chatapp/View/DemarrerSession.html" title="class in chatapp.View">DemarrerSession</a></td>
|
<td class="colFirst"><a href="UDPEchange.html" title="class in <Unnamed>">UDPEchange</a></td>
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe representant l'interface graphique permettant de choisir un utilisateur avec qui clavarder.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i6">
|
|
||||||
<td class="colFirst"><a href="chatapp/View/FenetreSession.html" title="class in chatapp.View">FenetreSession</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe permettant d'ouvrir une nouvelle fenetre afin de clavarder avec un utilisateur.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i7">
|
|
||||||
<td class="colFirst"><a href="chatapp/Protocol/HttpEchange.html" title="class in chatapp.Protocol">HttpEchange</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe representant les échanges HTTP entre un utilisateur distant et le servlet.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i8">
|
|
||||||
<td class="colFirst"><a href="chatapp/Launcher.html" title="class in chatapp">Launcher</a></td>
|
|
||||||
<th class="colLast" scope="row"> </th>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i9">
|
|
||||||
<td class="colFirst"><a href="chatapp/Model/ListUtilisateurs.html" title="class in chatapp.Model">ListUtilisateurs</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe représentant la liste des utilisateurs actifs, stockée localement.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i10">
|
|
||||||
<td class="colFirst"><a href="chatapp/Main.html" title="class in chatapp">Main</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">Cette classe extends Application.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i11">
|
|
||||||
<td class="colFirst"><a href="chatapp/Model/MessageHorodate.html" title="class in chatapp.Model">MessageHorodate</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe représentant les messages envoyés en TCP lors d'une session de clavardage.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i12">
|
|
||||||
<td class="colFirst"><a href="chatapp/Protocol/RunnerEcouteTCP.html" title="class in chatapp.Protocol">RunnerEcouteTCP</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe permettant de gérer les multiples connexions en TCP.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i13">
|
|
||||||
<td class="colFirst"><a href="chatapp/Protocol/RunnerEcouteUDP.html" title="class in chatapp.Protocol">RunnerEcouteUDP</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe permettant de gérer les multiples connexions en UDP.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i14">
|
|
||||||
<td class="colFirst"><a href="chatapp/Protocol/SessionClavardage.html" title="class in chatapp.Protocol">SessionClavardage</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe représentant une session de clavardage.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i15">
|
|
||||||
<td class="colFirst"><a href="chatapp/Protocol/UDPEchange.html" title="class in chatapp.Protocol">UDPEchange</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
<th class="colLast" scope="row">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
Classe representant les échanges UDP entre utilisateurs.</div>
|
Classe representant les échanges UDP entre utilisateurs.</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="altColor" id="i16">
|
<tr class="altColor" id="i6">
|
||||||
<td class="colFirst"><a href="chatapp/Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></td>
|
<td class="colFirst"><a href="Utilisateur.html" title="class in <Unnamed>">Utilisateur</a></td>
|
||||||
<th class="colLast" scope="row">
|
<th class="colLast" scope="row"> </th>
|
||||||
<div class="block">
|
|
||||||
Classe representant un Utilisateur.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i17">
|
|
||||||
<td class="colFirst"><a href="chatapp/View/View_Menu.html" title="class in chatapp.View">View_Menu</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe representant la page d'accueil.</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i18">
|
|
||||||
<td class="colFirst"><a href="chatapp/View/View_Utilisateurs.html" title="class in chatapp.View">View_Utilisateurs</a></td>
|
|
||||||
<th class="colLast" scope="row">
|
|
||||||
<div class="block">
|
|
||||||
Classe representant l'interface graphique permettant d'afficher les utilisateurs actifs</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
@ -223,12 +137,11 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="index.html">Overview</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li>Package</li>
|
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li><a href="overview-tree.html">Tree</a></li>
|
<li><a href="overview-tree.html">Tree</a></li>
|
||||||
<li><a href="deprecated-list.html">Deprecated</a></li>
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
<li><a href="index-files/index-1.html">Index</a></li>
|
<li><a href="index-all.html">Index</a></li>
|
||||||
<li><a href="help-doc.html">Help</a></li>
|
<li><a href="help-doc.html">Help</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
<!-- NewPage -->
|
<!-- NewPage -->
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
<head>
|
<head>
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
<!-- Generated by javadoc (13-ea) on Wed Dec 02 12:11:15 CET 2020 -->
|
||||||
<title>All Packages</title>
|
<title>All Packages</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<meta name="dc.created" content="2021-01-30">
|
<meta name="dc.created" content="2020-12-02">
|
||||||
<meta name="description" content="package index">
|
<meta name="description" content="package index">
|
||||||
<meta name="generator" content="javadoc/AllPackagesIndexWriter">
|
<meta name="generator" content="javadoc/AllPackagesIndexWriter">
|
||||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||||
|
|
@ -37,12 +37,11 @@ loadScripts(document, 'script');</script>
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="index.html">Overview</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li>Package</li>
|
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li><a href="overview-tree.html">Tree</a></li>
|
<li><a href="overview-tree.html">Tree</a></li>
|
||||||
<li><a href="deprecated-list.html">Deprecated</a></li>
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
<li><a href="index-files/index-1.html">Index</a></li>
|
<li><a href="index-all.html">Index</a></li>
|
||||||
<li><a href="help-doc.html">Help</a></li>
|
<li><a href="help-doc.html">Help</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -80,23 +79,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="altColor">
|
<tr class="altColor">
|
||||||
<th class="colFirst" scope="row"><a href="chatapp/package-summary.html">chatapp</a></th>
|
<th class="colFirst" scope="row"><a href="package-summary.html"><Unnamed></a></th>
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="chatapp/Controller/package-summary.html">chatapp.Controller</a></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="chatapp/Model/package-summary.html">chatapp.Model</a></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="chatapp/Protocol/package-summary.html">chatapp.Protocol</a></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="chatapp/View/package-summary.html">chatapp.View</a></th>
|
|
||||||
<td class="colLast"> </td>
|
<td class="colLast"> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -115,12 +98,11 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||||
<!-- -->
|
<!-- -->
|
||||||
</a>
|
</a>
|
||||||
<ul class="navList" title="Navigation">
|
<ul class="navList" title="Navigation">
|
||||||
<li><a href="index.html">Overview</a></li>
|
<li><a href="package-summary.html">Package</a></li>
|
||||||
<li>Package</li>
|
|
||||||
<li>Class</li>
|
<li>Class</li>
|
||||||
<li><a href="overview-tree.html">Tree</a></li>
|
<li><a href="overview-tree.html">Tree</a></li>
|
||||||
<li><a href="deprecated-list.html">Deprecated</a></li>
|
<li><a href="deprecated-list.html">Deprecated</a></li>
|
||||||
<li><a href="index-files/index-1.html">Index</a></li>
|
<li><a href="index-all.html">Index</a></li>
|
||||||
<li><a href="help-doc.html">Help</a></li>
|
<li><a href="help-doc.html">Help</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,697 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>ChatApp</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Controller, class: ChatApp">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9,"i10":9,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li><a href="#field.detail">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Controller</a></div>
|
|
||||||
<h1 title="Class ChatApp" class="title">Class ChatApp</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">chatapp.Controller.ChatApp</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<dl>
|
|
||||||
<dt>All Implemented Interfaces:</dt>
|
|
||||||
<dd><code>java.beans.PropertyChangeListener</code>, <code>java.util.EventListener</code></dd>
|
|
||||||
</dl>
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">ChatApp</span>
|
|
||||||
extends java.lang.Object
|
|
||||||
implements java.beans.PropertyChangeListener</pre>
|
|
||||||
<div class="block"><p> Controller de l'application. C'est par cette méthode que chaque connexion et chaque session sont entamées.
|
|
||||||
<br>Les différents attributs sont:
|
|
||||||
<br> - actifsUsers: qui est la liste des utilisateurs actifs actuellement et connus par l'application
|
|
||||||
<br> - me: qui est l'instance de la classe Utilisateur représentant l'utilisateur se connectant via cette instance de chatapp
|
|
||||||
<br> - main: l'application de l'interface graphique qui s'occupe d'instancier chatapp
|
|
||||||
<br> - runnerEcouteTCP: instance de runnerEcouteTCP, Thread permettant de recevoir des demandes de clavardage
|
|
||||||
<br> - runnerEcouteUDP: instance de runnerEcouteUDP; Thread permettant de communiquer en UDP pour recevoir les demandes de connexion, deconnexion, changements de pseudo et leurs réponses associées
|
|
||||||
<br> - connecte: booleen indiquant si l'on est connecté sur le reseau ou non
|
|
||||||
<br> - db: instance permettant de se connecter à la base de donnees centralisée
|
|
||||||
</p></div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- =========== FIELD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="fieldSummary"><a id="field.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Field Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Fields</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Field</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colFirst"><code>java.util.ArrayList<java.lang.String></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#listeCommunication">listeCommunication</a></span></code></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Integer,javafx.application.Application)">ChatApp</a></span>​(java.lang.String pseudo,
|
|
||||||
java.lang.Integer port,
|
|
||||||
javafx.application.Application main)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Constructeur de l'application de chat</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#activerEcouteTCP()">activerEcouteTCP</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Lance un thread pour écouter les requêtes TCP
|
|
||||||
<br> Informe le pcs que chatapp écoute les notifications qu'il envoie</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#activerEcouteUDP()">activerEcouteUDP</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Lance le thread pour réceptionner les requetes UDP</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code>boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connexion(java.lang.String)">connexion</a></span>​(java.lang.String pseudo)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant d'appeler la fonction de connexion adequate selon que l'on est en externe ou en interne</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i3">
|
|
||||||
<td class="colFirst"><code>java.lang.Boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connexionInterne(java.lang.String)">connexionInterne</a></span>​(java.lang.String pseudo)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode appelée lors de la connexion de l'utilisateur en INTERNE,
|
|
||||||
<br> Va prevenir les autres utlisateurs du réseau de l'arrivée de l'utilisateur sur celui-ci</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i4">
|
|
||||||
<td class="colFirst"><code>java.util.ArrayList<<a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a>></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createListeCommunicationPossible()">createListeCommunicationPossible</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Un utilisateur ne peut pas ouvrir plusieurs sessions de clavardage avec le même utilisateur.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i5">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deconnexion()">deconnexion</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode appelée lors de la déconnexion de l'utilisateur.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i6">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#deconnexionInterne()">deconnexionInterne</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Methode appelee lors de la deconnexion en INTERNE de l'utilisateur.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i7">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#demarrerSession(java.lang.String)">demarrerSession</a></span>​(java.lang.String pseudo)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Démarre une session de clavardage avec l'utilisateur dont le pseudo est entré en parametre</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i8">
|
|
||||||
<td class="colFirst"><code><a href="../Model/ListUtilisateurs.html" title="class in chatapp.Model">ListUtilisateurs</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActifUsers()">getActifUsers</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter : actifUsers (Liste des utilisateurs actifs)</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i9">
|
|
||||||
<td class="colFirst"><code>static <a href="ChatApp.html" title="class in chatapp.Controller">ChatApp</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance()">getInstance</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Methode permettant de récupérer l'instance de chatapp qui a ete créée au préalable</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i10">
|
|
||||||
<td class="colFirst"><code>static <a href="ChatApp.html" title="class in chatapp.Controller">ChatApp</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance(java.lang.String,java.lang.Integer,javafx.application.Application)">getInstance</a></span>​(java.lang.String pseudo,
|
|
||||||
java.lang.Integer port,
|
|
||||||
javafx.application.Application main)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Methode permettant de créer qu'une seule instance de chatapp</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i11">
|
|
||||||
<td class="colFirst"><code>javafx.application.Application</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMain()">getMain</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Getter : Main
|
|
||||||
Permet de récuperer stage de l'interface graphique qui a crée l'instance</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i12">
|
|
||||||
<td class="colFirst"><code><a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMe()">getMe</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter : Chatapp</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i13">
|
|
||||||
<td class="colFirst"><code>boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isConnecte()">isConnecte</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Getter : Connecte
|
|
||||||
<br> Permet de savoir si l'on est connecté</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i14">
|
|
||||||
<td class="colFirst"><code>boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isExterne()">isExterne</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Getter : Externe
|
|
||||||
<br> Permet de savoir si on est en externe ou en interne</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i15">
|
|
||||||
<td class="colFirst"><code>boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#modifierPseudo(java.lang.String)">modifierPseudo</a></span>​(java.lang.String nouveau)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Methode appelée pour modifier le pseudo et fait appel a la fonction adequate selon que l'on est en interne ou en externe</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i16">
|
|
||||||
<td class="colFirst"><code>java.lang.Boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#modifierPseudoInterne(java.lang.String)">modifierPseudoInterne</a></span>​(java.lang.String nouveau)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Modification du pseudo de l'utilisateur en INTERNE
|
|
||||||
<br> Envoie en broadcast ses informations utilisateurs et son nouveau pseudo</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i17">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#propertyChange(java.beans.PropertyChangeEvent)">propertyChange</a></span>​(java.beans.PropertyChangeEvent evt)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Handler des différents évenements que chatapp écoute</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i18">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setExterne(boolean)">setExterne</a></span>​(boolean externe)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Setter : Externe
|
|
||||||
<br> Permet de définir si on est un utilisateur externe ou non</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ============ FIELD DETAIL =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="fieldDetails"><a id="field.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Field Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="listeCommunication">listeCommunication</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.util.ArrayList<java.lang.String></span> <span class="memberName">listeCommunication</span></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(java.lang.String,java.lang.Integer,javafx.application.Application)">ChatApp</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">ChatApp</span>​(<span class="arguments">java.lang.String pseudo,
|
|
||||||
java.lang.Integer port,
|
|
||||||
javafx.application.Application main)</span></div>
|
|
||||||
<div class="block"><p>Constructeur de l'application de chat</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Pseudo de l'utilisateur</dd>
|
|
||||||
<dd><code>port</code> - Port de communication</dd>
|
|
||||||
<dd><code>main</code> - L'Application main</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="isConnecte()">isConnecte</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">boolean</span> <span class="memberName">isConnecte</span>()</div>
|
|
||||||
<div class="block"><p> Getter : Connecte
|
|
||||||
<br> Permet de savoir si l'on est connecté</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>TRUE si connecté FALSE sinon</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getInstance(java.lang.String,java.lang.Integer,javafx.application.Application)">getInstance</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType"><a href="ChatApp.html" title="class in chatapp.Controller">ChatApp</a></span> <span class="memberName">getInstance</span>​(<span class="arguments">java.lang.String pseudo,
|
|
||||||
java.lang.Integer port,
|
|
||||||
javafx.application.Application main)</span></div>
|
|
||||||
<div class="block"><p>Methode permettant de créer qu'une seule instance de chatapp</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Le pseudonyme que l'on souhaite donner à l'utilisateur</dd>
|
|
||||||
<dd><code>port</code> - Le port auquel on souhaite réceptionner les requêtees UDP</dd>
|
|
||||||
<dd><code>main</code> - Le stage de l'interface graphique qui crée l'instance</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Une instance de chatapp</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getInstance()">getInstance</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType"><a href="ChatApp.html" title="class in chatapp.Controller">ChatApp</a></span> <span class="memberName">getInstance</span>()</div>
|
|
||||||
<div class="block"><p> Methode permettant de récupérer l'instance de chatapp qui a ete créée au préalable</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'instance de chatapp</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="modifierPseudo(java.lang.String)">modifierPseudo</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">boolean</span> <span class="memberName">modifierPseudo</span>​(<span class="arguments">java.lang.String nouveau)</span>
|
|
||||||
throws <span class="exceptions">java.io.IOException</span></div>
|
|
||||||
<div class="block"><p>Methode appelée pour modifier le pseudo et fait appel a la fonction adequate selon que l'on est en interne ou en externe</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>nouveau</code> - Nouveau pseudo avec lequel on souhaite se renommer</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>TRUE si la modification du pseudo a réussi, FALSE sinon</dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.io.IOException</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="modifierPseudoInterne(java.lang.String)">modifierPseudoInterne</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.Boolean</span> <span class="memberName">modifierPseudoInterne</span>​(<span class="arguments">java.lang.String nouveau)</span>
|
|
||||||
throws <span class="exceptions">java.io.IOException</span></div>
|
|
||||||
<div class="block"><p>Modification du pseudo de l'utilisateur en INTERNE
|
|
||||||
<br> Envoie en broadcast ses informations utilisateurs et son nouveau pseudo</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>nouveau</code> - Le Nouveau pseudo</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>False si modiferPseudo a échoué, True sinon</dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.io.IOException</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="connexion(java.lang.String)">connexion</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">boolean</span> <span class="memberName">connexion</span>​(<span class="arguments">java.lang.String pseudo)</span>
|
|
||||||
throws <span class="exceptions">java.io.IOException</span></div>
|
|
||||||
<div class="block"><p>Méthode permettant d'appeler la fonction de connexion adequate selon que l'on est en externe ou en interne</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Le pseudo avec lequel l'on souhaite se connecter</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>True si la connexion a ete autorisée, false sinon</dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.io.IOException</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="connexionInterne(java.lang.String)">connexionInterne</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.Boolean</span> <span class="memberName">connexionInterne</span>​(<span class="arguments">java.lang.String pseudo)</span>
|
|
||||||
throws <span class="exceptions">java.io.IOException</span></div>
|
|
||||||
<div class="block"><p>Méthode appelée lors de la connexion de l'utilisateur en INTERNE,
|
|
||||||
<br> Va prevenir les autres utlisateurs du réseau de l'arrivée de l'utilisateur sur celui-ci</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Le pseudonyme avec lequel l'utilisateur souhaite se connecter</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>False si Connexion a échoué, True sinon</dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.io.IOException</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="activerEcouteTCP()">activerEcouteTCP</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">activerEcouteTCP</span>()</div>
|
|
||||||
<div class="block"><p>Lance un thread pour écouter les requêtes TCP
|
|
||||||
<br> Informe le pcs que chatapp écoute les notifications qu'il envoie</p></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="demarrerSession(java.lang.String)">demarrerSession</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">demarrerSession</span>​(<span class="arguments">java.lang.String pseudo)</span></div>
|
|
||||||
<div class="block"><p>Démarre une session de clavardage avec l'utilisateur dont le pseudo est entré en parametre</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Le pseudo de l'utilisateur avec lequel on souhaite communiquer</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="activerEcouteUDP()">activerEcouteUDP</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">activerEcouteUDP</span>()</div>
|
|
||||||
<div class="block"><p>Lance le thread pour réceptionner les requetes UDP</p></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="deconnexion()">deconnexion</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">deconnexion</span>()
|
|
||||||
throws <span class="exceptions">java.io.IOException</span></div>
|
|
||||||
<div class="block"><p>Méthode appelée lors de la déconnexion de l'utilisateur.
|
|
||||||
<br>La methode va appeler la fonction adequate selon que l'on est en interne ou en externe</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.io.IOException</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="deconnexionInterne()">deconnexionInterne</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">deconnexionInterne</span>()
|
|
||||||
throws <span class="exceptions">java.io.IOException</span></div>
|
|
||||||
<div class="block"><p>Methode appelee lors de la deconnexion en INTERNE de l'utilisateur.
|
|
||||||
<br>Il va prevenir les utilisateurs du reseau de son depart.</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.io.IOException</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getMe()">getMe</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></span> <span class="memberName">getMe</span>()</div>
|
|
||||||
<div class="block">Getter : Chatapp</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Utilisateur associée a ChatApp</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getActifUsers()">getActifUsers</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="../Model/ListUtilisateurs.html" title="class in chatapp.Model">ListUtilisateurs</a></span> <span class="memberName">getActifUsers</span>()</div>
|
|
||||||
<div class="block">Getter : actifUsers (Liste des utilisateurs actifs)</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Liste des utilisateurs actifs associée a ChatApp</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="propertyChange(java.beans.PropertyChangeEvent)">propertyChange</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">propertyChange</span>​(<span class="arguments">java.beans.PropertyChangeEvent evt)</span></div>
|
|
||||||
<div class="block"><p>Handler des différents évenements que chatapp écoute</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
|
|
||||||
<dd><code>propertyChange</code> in interface <code>java.beans.PropertyChangeListener</code></dd>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>evt</code> - L'évenement qui a ete indiqué par le pcs</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getMain()">getMain</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">javafx.application.Application</span> <span class="memberName">getMain</span>()</div>
|
|
||||||
<div class="block"><p> Getter : Main
|
|
||||||
Permet de récuperer stage de l'interface graphique qui a crée l'instance
|
|
||||||
</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le stage de l'interface graphique qui a crée l'instance</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="isExterne()">isExterne</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">boolean</span> <span class="memberName">isExterne</span>()</div>
|
|
||||||
<div class="block"><p> Getter : Externe
|
|
||||||
<br> Permet de savoir si on est en externe ou en interne</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>TRUE si Externe FALSE sinon</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setExterne(boolean)">setExterne</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setExterne</span>​(<span class="arguments">boolean externe)</span></div>
|
|
||||||
<div class="block"><p> Setter : Externe
|
|
||||||
<br> Permet de définir si on est un utilisateur externe ou non</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>externe</code> - TRUE si Externe FALSE sinon</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="createListeCommunicationPossible()">createListeCommunicationPossible</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.util.ArrayList<<a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a>></span> <span class="memberName">createListeCommunicationPossible</span>()</div>
|
|
||||||
<div class="block"><p>
|
|
||||||
Un utilisateur ne peut pas ouvrir plusieurs sessions de clavardage avec le même utilisateur.
|
|
||||||
<br> Cette methode compare les communications en cours pour retourner une liste d'utilisateurs avec
|
|
||||||
lesquels les communications sont possibles
|
|
||||||
</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Une liste d'utilisateurs avec lesquels il peut communiquer</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li><a href="#field.detail">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,126 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>chatapp.Controller</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Controller">
|
|
||||||
<meta name="generator" content="javadoc/PackageWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="package-declaration">
|
|
||||||
<script type="text/javascript">var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li class="navBarCell1Rev">Package</li>
|
|
||||||
<li>Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<h1 title="Package" class="title">Package chatapp.Controller</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<div class="typeSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Class Summary</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Class</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="ChatApp.html" title="class in chatapp.Controller">ChatApp</a></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Controller de l'application.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li class="navBarCell1Rev">Package</li>
|
|
||||||
<li>Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,115 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>chatapp.Controller Class Hierarchy</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="tree: package: chatapp.Controller">
|
|
||||||
<meta name="generator" content="javadoc/PackageTreeWriter">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="package-tree">
|
|
||||||
<script type="text/javascript">var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li>Class</li>
|
|
||||||
<li class="navBarCell1Rev">Tree</li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<h1 class="title">Hierarchy For Package chatapp.Controller</h1>
|
|
||||||
<span class="packageHierarchyLabel">Package Hierarchies:</span>
|
|
||||||
<ul class="horizontal">
|
|
||||||
<li><a href="../../overview-tree.html">All Packages</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<section class="hierarchy">
|
|
||||||
<h2 title="Class Hierarchy">Class Hierarchy</h2>
|
|
||||||
<ul>
|
|
||||||
<li class="circle">java.lang.Object
|
|
||||||
<ul>
|
|
||||||
<li class="circle">chatapp.Controller.<a href="ChatApp.html" title="class in chatapp.Controller"><span class="typeNameLink">ChatApp</span></a> (implements java.beans.PropertyChangeListener)</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li>Class</li>
|
|
||||||
<li class="navBarCell1Rev">Tree</li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,249 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>Launcher</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp, class: Launcher">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":9};
|
|
||||||
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp</a></div>
|
|
||||||
<h1 title="Class Launcher" class="title">Class Launcher</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">chatapp.Launcher</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">Launcher</span>
|
|
||||||
extends java.lang.Object</pre>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Launcher</a></span>()</code></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>static void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#main(java.lang.String%5B%5D)">main</a></span>​(java.lang.String[] args)</code></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>()">Launcher</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">Launcher</span>()</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="main(java.lang.String[])">main</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType">void</span> <span class="memberName">main</span>​(<span class="arguments">java.lang.String[] args)</span></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,328 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>Main</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp, class: Main">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":9,"i1":10,"i2":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li><a href="#nested.class.summary">Nested</a> | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp</a></div>
|
|
||||||
<h1 title="Class Main" class="title">Class Main</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">javafx.application.Application
|
|
||||||
<div class="inheritance">chatapp.Main</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">Main</span>
|
|
||||||
extends javafx.application.Application</pre>
|
|
||||||
<div class="block">Cette classe extends Application.
|
|
||||||
<br> Elle va permettre de faire le lien avec JavaFX.</div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="nestedClassSummary"><a id="nested.class.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Nested Class Summary</h2>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h2>Nested classes/interfaces inherited from class javafx.application.Application</h2>
|
|
||||||
<a id="nested.classes.inherited.from.class.javafx.application.Application">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>javafx.application.Application.Parameters</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- =========== FIELD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="fieldSummary"><a id="field.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Field Summary</h2>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Fields inherited from class javafx.application.Application</h3>
|
|
||||||
<a id="fields.inherited.from.class.javafx.application.Application">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>STYLESHEET_CASPIAN, STYLESHEET_MODENA</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Main</a></span>()</code></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>static void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#main(java.lang.String%5B%5D)">main</a></span>​(java.lang.String[] args)</code></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#start(javafx.stage.Stage)">start</a></span>​(javafx.stage.Stage primaryStage)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Permet de lancer la fenetre principale de l'application</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Handler associe a la fermeture de l'application</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class javafx.application.Application</h3>
|
|
||||||
<a id="methods.inherited.from.class.javafx.application.Application">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet</code></div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>()">Main</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">Main</span>()</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="start(javafx.stage.Stage)">start</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">start</span>​(<span class="arguments">javafx.stage.Stage primaryStage)</span>
|
|
||||||
throws <span class="exceptions">java.lang.Exception</span></div>
|
|
||||||
<div class="block">Permet de lancer la fenetre principale de l'application</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
|
|
||||||
<dd><code>start</code> in class <code>javafx.application.Application</code></dd>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>primaryStage</code> - notre fenetre principale</dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.lang.Exception</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="stop()">stop</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">stop</span>()
|
|
||||||
throws <span class="exceptions">java.lang.Exception</span></div>
|
|
||||||
<div class="block"><p> Handler associe a la fermeture de l'application</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
|
||||||
<dd><code>stop</code> in class <code>javafx.application.Application</code></dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.lang.Exception</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="main(java.lang.String[])">main</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType">void</span> <span class="memberName">main</span>​(<span class="arguments">java.lang.String[] args)</span></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li><a href="#nested.class.summary">Nested</a> | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,508 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>DataBase</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Model, class: DataBase">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Model</a></div>
|
|
||||||
<h1 title="Class DataBase" class="title">Class DataBase</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">chatapp.Model.DataBase</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">DataBase</span>
|
|
||||||
extends java.lang.Object</pre>
|
|
||||||
<div class="block"><p>
|
|
||||||
Classe représentant la Base de données.
|
|
||||||
Celle-ci stocke la liste des utilisateurs ainsi que les échanges entre eux
|
|
||||||
</p>
|
|
||||||
Format de la table Utilisateurs
|
|
||||||
<br> +--------+-------------+---------+---------------------+
|
|
||||||
<br> | ID | Pseudo | Actif | Date d'inscription |
|
|
||||||
<br> +--------+-------------+---------+---------------------+
|
|
||||||
<br> - Id : Correspond à l'ID de l'utilisateur
|
|
||||||
<br> - Pseudo : Dernier Pseudo utilisé pour cet ID, va etre remplacé par le pseudo actuel avec majPseudo
|
|
||||||
<br> - Date d'inscription : Comme son nom l'indique le jour de l'inscription de cet utilisateur
|
|
||||||
<br> - Actif : Boolean indiquant si l'utilisateur est actif
|
|
||||||
<br>
|
|
||||||
<br> Chaque communication entres utilisateurs sera stockée dans une table de la forme
|
|
||||||
<br> +--------------+--------+---------+--------------+
|
|
||||||
<br> | Destinataire | Source | Message | Date d'envoi |
|
|
||||||
<br> +--------------+--------+---------+--------------+
|
|
||||||
<br> - Destinataire : Id du destinataire du message
|
|
||||||
<br> - Source : Id de celui qui envoie le message
|
|
||||||
<br> - Message : Msg envoyé
|
|
||||||
<br> - Date d'envoi : Date a laquelle Source a envoyé le message à destinataire</div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">DataBase</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Constructeur de la database
|
|
||||||
<br> On installe le driver et on établit la connection.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ajoutHistorique(java.lang.String,java.lang.String,java.lang.String)">ajoutHistorique</a></span>​(java.lang.String iDdest,
|
|
||||||
java.lang.String iDsrc,
|
|
||||||
java.lang.String msg)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnée</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ajoutUtilisateurs(java.lang.String,java.lang.String)">ajoutUtilisateurs</a></span>​(java.lang.String iD,
|
|
||||||
java.lang.String pseudo)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant d'ajouter un utilisateur dans la base de donnée si celui-ci n'existe pas déjà</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#creationTableHistorique(java.lang.String,java.lang.String)">creationTableHistorique</a></span>​(java.lang.String iD1,
|
|
||||||
java.lang.String iD2)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Methode permettant de créer une table pour stocker les messages entre deux utilisateurs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i3">
|
|
||||||
<td class="colFirst"><code>static <a href="DataBase.html" title="class in chatapp.Model">DataBase</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance()">getInstance</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de renvoyer une instance de la classe DataBase</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i4">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNomTable(chatapp.Model.Utilisateur,chatapp.Model.Utilisateur)">getNomTable</a></span>​(<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u1,
|
|
||||||
<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u2)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de récupérer le nom de la table où sont stockés les messages de 2 utilisateurs.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i5">
|
|
||||||
<td class="colFirst"><code>boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#idExiste(java.lang.String)">idExiste</a></span>​(java.lang.String iD)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Methode permettant de savoir si un utilisateur existe dans la base de donnée 'Utilisateurs'</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i6">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#majPseudo(java.lang.String,java.lang.String)">majPseudo</a></span>​(java.lang.String iD,
|
|
||||||
java.lang.String pseudo)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i7">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#majUtilisateursActifs(java.lang.Boolean,java.lang.String)">majUtilisateursActifs</a></span>​(java.lang.Boolean Connecte,
|
|
||||||
java.lang.String Id)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de mettre a jour les utilisateurs actuellement actif</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i8">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recupMsg(java.lang.String,java.lang.String,int,int)">recupMsg</a></span>​(java.lang.String iD,
|
|
||||||
java.lang.String iDdestinataire,
|
|
||||||
int deb,
|
|
||||||
int fin)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de récupérer les messages d'une plage de donnée [deb,fin] envoyés entre 2 utilisateurs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i9">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recupNMsg(java.lang.String,java.lang.String,int)">recupNMsg</a></span>​(java.lang.String iD,
|
|
||||||
java.lang.String iDdestinataire,
|
|
||||||
int n)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de récupérer les N derniers messages envoyés entre 2 utilisateurs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i10">
|
|
||||||
<td class="colFirst"><code>java.lang.Integer</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tailleBDD(java.lang.String)">tailleBDD</a></span>​(java.lang.String nomTable)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Cette méthode sert à récupérer la taille d'un base de donnée</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>()">DataBase</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">DataBase</span>()</div>
|
|
||||||
<div class="block">Constructeur de la database
|
|
||||||
<br> On installe le driver et on établit la connection.</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getInstance()">getInstance</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType"><a href="DataBase.html" title="class in chatapp.Model">DataBase</a></span> <span class="memberName">getInstance</span>()</div>
|
|
||||||
<div class="block">Méthode permettant de renvoyer une instance de la classe DataBase</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'instance du singleton DataBase.</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="creationTableHistorique(java.lang.String,java.lang.String)">creationTableHistorique</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">creationTableHistorique</span>​(<span class="arguments">java.lang.String iD1,
|
|
||||||
java.lang.String iD2)</span></div>
|
|
||||||
<div class="block">Methode permettant de créer une table pour stocker les messages entre deux utilisateurs</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>iD1</code> - Id du premier utilisateur</dd>
|
|
||||||
<dd><code>iD2</code> - Id du second utilisateur</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="majPseudo(java.lang.String,java.lang.String)">majPseudo</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">majPseudo</span>​(<span class="arguments">java.lang.String iD,
|
|
||||||
java.lang.String pseudo)</span></div>
|
|
||||||
<div class="block">Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>iD</code> - Id de l'utilisateur qui vient de changer de pseudo</dd>
|
|
||||||
<dd><code>pseudo</code> - Nouveau Pseudo de l'utilisateur</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="ajoutHistorique(java.lang.String,java.lang.String,java.lang.String)">ajoutHistorique</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">ajoutHistorique</span>​(<span class="arguments">java.lang.String iDdest,
|
|
||||||
java.lang.String iDsrc,
|
|
||||||
java.lang.String msg)</span></div>
|
|
||||||
<div class="block">Méthode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnée</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>iDdest</code> - Id de l'utilisateur Destinataire du message</dd>
|
|
||||||
<dd><code>iDsrc</code> - Id de celui qui envoi le message</dd>
|
|
||||||
<dd><code>msg</code> - Message envoye entre les deux utilisateurs</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="ajoutUtilisateurs(java.lang.String,java.lang.String)">ajoutUtilisateurs</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">ajoutUtilisateurs</span>​(<span class="arguments">java.lang.String iD,
|
|
||||||
java.lang.String pseudo)</span></div>
|
|
||||||
<div class="block">Méthode permettant d'ajouter un utilisateur dans la base de donnée si celui-ci n'existe pas déjà</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>iD</code> - Id de l'utilisateur que l'on veut rajouter</dd>
|
|
||||||
<dd><code>pseudo</code> - Pseudo actuelle de l'utilisateur</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="majUtilisateursActifs(java.lang.Boolean,java.lang.String)">majUtilisateursActifs</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">majUtilisateursActifs</span>​(<span class="arguments">java.lang.Boolean Connecte,
|
|
||||||
java.lang.String Id)</span></div>
|
|
||||||
<div class="block">Méthode permettant de mettre a jour les utilisateurs actuellement actif</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>Id</code> - Id de l'utilisateur qui vient de se connecter ou déconnecter</dd>
|
|
||||||
<dd><code>Connecte</code> - Boolean true si il est connecté , false sinon</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="recupNMsg(java.lang.String,java.lang.String,int)">recupNMsg</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">recupNMsg</span>​(<span class="arguments">java.lang.String iD,
|
|
||||||
java.lang.String iDdestinataire,
|
|
||||||
int n)</span></div>
|
|
||||||
<div class="block">Méthode permettant de récupérer les N derniers messages envoyés entre 2 utilisateurs</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>iD</code> - Utilisateur associé a ChatApp</dd>
|
|
||||||
<dd><code>iDdestinataire</code> - Celui avec qui correspond ID</dd>
|
|
||||||
<dd><code>n</code> - Le nombre de messages souhaités</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Les N derniers Messages</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="recupMsg(java.lang.String,java.lang.String,int,int)">recupMsg</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">recupMsg</span>​(<span class="arguments">java.lang.String iD,
|
|
||||||
java.lang.String iDdestinataire,
|
|
||||||
int deb,
|
|
||||||
int fin)</span></div>
|
|
||||||
<div class="block">Méthode permettant de récupérer les messages d'une plage de donnée [deb,fin] envoyés entre 2 utilisateurs</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>iD</code> - Utilisateur associé a ChatApp</dd>
|
|
||||||
<dd><code>iDdestinataire</code> - Celui avec qui correspond ID</dd>
|
|
||||||
<dd><code>deb</code> - On veut les messages à partir de l'indice deb</dd>
|
|
||||||
<dd><code>fin</code> - On veut les messages jusqu'a l'indice fin</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Les messages d'une plage de donnée [deb,fin]</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="tailleBDD(java.lang.String)">tailleBDD</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.Integer</span> <span class="memberName">tailleBDD</span>​(<span class="arguments">java.lang.String nomTable)</span></div>
|
|
||||||
<div class="block">Cette méthode sert à récupérer la taille d'un base de donnée</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>nomTable</code> - Nom de la table de donnée dont on veut récuperer le nom</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Taille de la BDD</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="idExiste(java.lang.String)">idExiste</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">boolean</span> <span class="memberName">idExiste</span>​(<span class="arguments">java.lang.String iD)</span></div>
|
|
||||||
<div class="block">Methode permettant de savoir si un utilisateur existe dans la base de donnée 'Utilisateurs'</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>iD</code> - On recherche l'utilisateur dont l'ID est ID</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>True si l'utilisateur existe , False sinon</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getNomTable(chatapp.Model.Utilisateur,chatapp.Model.Utilisateur)">getNomTable</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">getNomTable</span>​(<span class="arguments"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u1,
|
|
||||||
<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u2)</span></div>
|
|
||||||
<div class="block">Méthode permettant de récupérer le nom de la table où sont stockés les messages de 2 utilisateurs.</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>u1</code> - Un des 2 utilisateurs</dd>
|
|
||||||
<dd><code>u2</code> - Le second utilisateur</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le nom de la table des historiques</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,439 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>ListUtilisateurs</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Model, class: ListUtilisateurs">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Model</a></div>
|
|
||||||
<h1 title="Class ListUtilisateurs" class="title">Class ListUtilisateurs</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">chatapp.Model.ListUtilisateurs</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">ListUtilisateurs</span>
|
|
||||||
extends java.lang.Object</pre>
|
|
||||||
<div class="block"><p>
|
|
||||||
Classe représentant la liste des utilisateurs actifs, stockée localement.
|
|
||||||
</p></div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ListUtilisateurs</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Constructeur : initialise la liste 'actifUsers'</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addList(chatapp.Model.Utilisateur)">addList</a></span>​(<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers'</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#afficherListeUtilisateurs()">afficherListeUtilisateurs</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode affichant la liste des utilisateurs actifs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code>java.lang.Boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appartient(chatapp.Model.Utilisateur)">appartient</a></span>​(<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de savoir si un utilisateur est contenu dans la liste 'actifUsers'</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i3">
|
|
||||||
<td class="colFirst"><code>java.util.ArrayList<<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a>></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActifUsers()">getActifUsers</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter : ActifUsers (liste des utilisateurs actifs)</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i4">
|
|
||||||
<td class="colFirst"><code><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIDList(java.lang.String)">getIDList</a></span>​(java.lang.String iD)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Récupérer un utilisateur à partir de son ID</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i5">
|
|
||||||
<td class="colFirst"><code><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIPList(java.net.InetAddress)">getIPList</a></span>​(java.net.InetAddress ip)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Récupérer un utilisateur à partir de son addresse IP</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i6">
|
|
||||||
<td class="colFirst"><code><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPseudoList(java.lang.String)">getPseudoList</a></span>​(java.lang.String pseudo)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Récupérer un utilisateur à partir de son pseudo.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i7">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#modifierList(java.lang.String,java.lang.String)">modifierList</a></span>​(java.lang.String ancien,
|
|
||||||
java.lang.String nouveau)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Modifier le pseudo d'un utilisateur dans la liste des utilisateurs actifs 'actifUsers'</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i8">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#supprimerList(chatapp.Model.Utilisateur)">supprimerList</a></span>​(<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i9">
|
|
||||||
<td class="colFirst"><code>java.lang.Boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#verifierUnicite(java.lang.String)">verifierUnicite</a></span>​(java.lang.String pseudo)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Vérifie qu'aucun autre utilisateur ne posséde le meme pseudo</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>()">ListUtilisateurs</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">ListUtilisateurs</span>()</div>
|
|
||||||
<div class="block">Constructeur : initialise la liste 'actifUsers'</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="addList(chatapp.Model.Utilisateur)">addList</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">addList</span>​(<span class="arguments"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u)</span></div>
|
|
||||||
<div class="block">Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers'</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>u</code> - On va rajouter cet utilisateur dans la liste</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getPseudoList(java.lang.String)">getPseudoList</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></span> <span class="memberName">getPseudoList</span>​(<span class="arguments">java.lang.String pseudo)</span></div>
|
|
||||||
<div class="block">Récupérer un utilisateur à partir de son pseudo.</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Pseudo de l'utilisateur que l'on souhaite retrouver</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'utilisateur associé à ce pseudo</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getIPList(java.net.InetAddress)">getIPList</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></span> <span class="memberName">getIPList</span>​(<span class="arguments">java.net.InetAddress ip)</span>
|
|
||||||
throws <span class="exceptions">java.lang.Exception</span></div>
|
|
||||||
<div class="block">Récupérer un utilisateur à partir de son addresse IP</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>ip</code> - Adresse IP de l'utilisateur que l'on souhaite retrouver</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'utilisateur associé à l'adresse IP</dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.lang.Exception</code> - No such user with this IP address</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getIDList(java.lang.String)">getIDList</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></span> <span class="memberName">getIDList</span>​(<span class="arguments">java.lang.String iD)</span>
|
|
||||||
throws <span class="exceptions">java.lang.Exception</span></div>
|
|
||||||
<div class="block">Récupérer un utilisateur à partir de son ID</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>iD</code> - L'ID de l'utilisateur que l'on souhaite retrouver</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'utilisateur associé à l'adresse ID</dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.lang.Exception</code> - No such user with this ID</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="supprimerList(chatapp.Model.Utilisateur)">supprimerList</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">supprimerList</span>​(<span class="arguments"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u)</span></div>
|
|
||||||
<div class="block">Supprimer de la liste des utilisateurs actifs 'actifUsers' un certain utilisateur</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>u</code> - On va supprimer cet utilisateur dans la liste</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="modifierList(java.lang.String,java.lang.String)">modifierList</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">modifierList</span>​(<span class="arguments">java.lang.String ancien,
|
|
||||||
java.lang.String nouveau)</span></div>
|
|
||||||
<div class="block">Modifier le pseudo d'un utilisateur dans la liste des utilisateurs actifs 'actifUsers'</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>ancien</code> - Pseudo à remplacer</dd>
|
|
||||||
<dd><code>nouveau</code> - Nouveau pseudo</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="appartient(chatapp.Model.Utilisateur)">appartient</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.Boolean</span> <span class="memberName">appartient</span>​(<span class="arguments"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u)</span></div>
|
|
||||||
<div class="block">Méthode permettant de savoir si un utilisateur est contenu dans la liste 'actifUsers'</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>u</code> - On souhaite savoir si cet utilisateur appartient a la liste</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>True si il appartient, False sinon</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="verifierUnicite(java.lang.String)">verifierUnicite</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.Boolean</span> <span class="memberName">verifierUnicite</span>​(<span class="arguments">java.lang.String pseudo)</span></div>
|
|
||||||
<div class="block">Vérifie qu'aucun autre utilisateur ne posséde le meme pseudo</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Pseudo dont on veut vérifier l'unicité</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>True si aucun utilisateur de la liste possède ce pseudo, False sinon</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="afficherListeUtilisateurs()">afficherListeUtilisateurs</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">afficherListeUtilisateurs</span>()</div>
|
|
||||||
<div class="block">Méthode affichant la liste des utilisateurs actifs</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getActifUsers()">getActifUsers</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.util.ArrayList<<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a>></span> <span class="memberName">getActifUsers</span>()</div>
|
|
||||||
<div class="block">Getter : ActifUsers (liste des utilisateurs actifs)</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>La liste des utilisateurs actifs</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,551 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>MessageHorodate</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Model, class: MessageHorodate">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":9,"i13":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Model</a></div>
|
|
||||||
<h1 title="Class MessageHorodate" class="title">Class MessageHorodate</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">chatapp.Model.MessageHorodate</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<dl>
|
|
||||||
<dt>All Implemented Interfaces:</dt>
|
|
||||||
<dd><code>java.io.Serializable</code></dd>
|
|
||||||
</dl>
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">MessageHorodate</span>
|
|
||||||
extends java.lang.Object
|
|
||||||
implements java.io.Serializable</pre>
|
|
||||||
<div class="block"><p>
|
|
||||||
Classe représentant les messages envoyés en TCP lors d'une session de clavardage.
|
|
||||||
<br> Un message Horodaté est composé :
|
|
||||||
<br> - d'un destintaire,
|
|
||||||
<br> - d'une source,
|
|
||||||
<br> - d'un message,
|
|
||||||
<br> - d'une date d'envoi.
|
|
||||||
</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="seeLabel">See Also:</span></dt>
|
|
||||||
<dd><a href="../../serialized-form.html#chatapp.Model.MessageHorodate">Serialized Form</a></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(chatapp.Model.Utilisateur,chatapp.Model.Utilisateur,java.lang.String,int)">MessageHorodate</a></span>​(<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> destinataire,
|
|
||||||
<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> source,
|
|
||||||
java.lang.String message,
|
|
||||||
int type)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Constructeur , le message va etre horodaté</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dateToString()">dateToString</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Permet de créer une représentation string de la date d'horodatage</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>java.util.Date</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDateHorodatage()">getDateHorodatage</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter: Date d'horodatage</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDestinataire()">getDestinataire</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter: Utilisateur Destinataire</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i3">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessage()">getMessage</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter: Message envoye</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i4">
|
|
||||||
<td class="colFirst"><code><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSource()">getSource</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter: Utilisateur Source</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i5">
|
|
||||||
<td class="colFirst"><code>int</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter: 'Type' du message</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i6">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDate(java.util.Date)">setDate</a></span>​(java.util.Date d)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter: Date d'horodatage
|
|
||||||
<br> On modifie le date d'horodatage</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i7">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDateHorodatage(java.util.Date)">setDateHorodatage</a></span>​(java.util.Date dateHorodatage)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter: Date d'horodatage
|
|
||||||
<br> On modifie le date.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i8">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setDestinataire(chatapp.Model.Utilisateur)">setDestinataire</a></span>​(<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> destinataire)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter: Utilisateur Destinataire
|
|
||||||
<br> On modifie l'utilisateur Destinataire</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i9">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMessage(java.lang.String)">setMessage</a></span>​(java.lang.String message)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter: Message envoye
|
|
||||||
<br> On modifie le message envoyé</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i10">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSource(chatapp.Model.Utilisateur)">setSource</a></span>​(<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> source)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter: Utilisateur Source
|
|
||||||
<br> On modifie l'utilisateur source</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i11">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setType(int)">setType</a></span>​(int Type)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter: 'Type' du message horodate
|
|
||||||
<br> On modifie l'integer 'Type'</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i12">
|
|
||||||
<td class="colFirst"><code>static <a href="MessageHorodate.html" title="class in chatapp.Model">MessageHorodate</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stringToMessageHorodate(java.lang.String)">stringToMessageHorodate</a></span>​(java.lang.String s)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Permet de re créer un message horodaté à partir d'un string</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i13">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Permet de créer une représentation string du message</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(chatapp.Model.Utilisateur,chatapp.Model.Utilisateur,java.lang.String,int)">MessageHorodate</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">MessageHorodate</span>​(<span class="arguments"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> destinataire,
|
|
||||||
<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> source,
|
|
||||||
java.lang.String message,
|
|
||||||
int type)</span></div>
|
|
||||||
<div class="block"><p>
|
|
||||||
Constructeur , le message va etre horodaté</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>destinataire</code> - - Destinataire du message</dd>
|
|
||||||
<dd><code>source</code> - - Source du message</dd>
|
|
||||||
<dd><code>message</code> - - Message envoyé</dd>
|
|
||||||
<dd><code>type</code> - - Le type du message
|
|
||||||
</p></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setDate(java.util.Date)">setDate</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setDate</span>​(<span class="arguments">java.util.Date d)</span></div>
|
|
||||||
<div class="block">Setter: Date d'horodatage
|
|
||||||
<br> On modifie le date d'horodatage</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>d</code> - La nouvelle date d'horodatage</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="toString()">toString</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">toString</span>()</div>
|
|
||||||
<div class="block"><p>
|
|
||||||
Permet de créer une représentation string du message</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
|
||||||
<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Les différents attributs de la classe sous forme de string
|
|
||||||
</p></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="dateToString()">dateToString</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">dateToString</span>()</div>
|
|
||||||
<div class="block"><p>
|
|
||||||
Permet de créer une représentation string de la date d'horodatage</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>La date d'horodatage du message en format yyyy/MM/dd HH:mm:ss
|
|
||||||
</p></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="stringToMessageHorodate(java.lang.String)">stringToMessageHorodate</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType"><a href="MessageHorodate.html" title="class in chatapp.Model">MessageHorodate</a></span> <span class="memberName">stringToMessageHorodate</span>​(<span class="arguments">java.lang.String s)</span></div>
|
|
||||||
<div class="block"><p>
|
|
||||||
Permet de re créer un message horodaté à partir d'un string</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>s</code> - Le message permettant de re créer un msg horodaté</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>un messageHorodate
|
|
||||||
</p></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getSource()">getSource</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></span> <span class="memberName">getSource</span>()</div>
|
|
||||||
<div class="block">Getter: Utilisateur Source</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Utilisateur a l'origine du message</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setSource(chatapp.Model.Utilisateur)">setSource</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setSource</span>​(<span class="arguments"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> source)</span></div>
|
|
||||||
<div class="block">Setter: Utilisateur Source
|
|
||||||
<br> On modifie l'utilisateur source</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>source</code> - Le nouvel utilisateur source</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getDestinataire()">getDestinataire</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></span> <span class="memberName">getDestinataire</span>()</div>
|
|
||||||
<div class="block">Getter: Utilisateur Destinataire</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Utilisateur recevant le message</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setDestinataire(chatapp.Model.Utilisateur)">setDestinataire</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setDestinataire</span>​(<span class="arguments"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> destinataire)</span></div>
|
|
||||||
<div class="block">Setter: Utilisateur Destinataire
|
|
||||||
<br> On modifie l'utilisateur Destinataire</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>destinataire</code> - Le nouveau destinataire</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getMessage()">getMessage</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">getMessage</span>()</div>
|
|
||||||
<div class="block">Getter: Message envoye</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le message envoye</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setMessage(java.lang.String)">setMessage</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setMessage</span>​(<span class="arguments">java.lang.String message)</span></div>
|
|
||||||
<div class="block">Setter: Message envoye
|
|
||||||
<br> On modifie le message envoyé</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>message</code> - Nouveau message</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getType()">getType</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">int</span> <span class="memberName">getType</span>()</div>
|
|
||||||
<div class="block">Getter: 'Type' du message</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>On recupere le Type du message</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setType(int)">setType</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setType</span>​(<span class="arguments">int Type)</span></div>
|
|
||||||
<div class="block">Setter: 'Type' du message horodate
|
|
||||||
<br> On modifie l'integer 'Type'</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>Type</code> - Nouveau type</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getDateHorodatage()">getDateHorodatage</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.util.Date</span> <span class="memberName">getDateHorodatage</span>()</div>
|
|
||||||
<div class="block">Getter: Date d'horodatage</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>On recupere le date</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setDateHorodatage(java.util.Date)">setDateHorodatage</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setDateHorodatage</span>​(<span class="arguments">java.util.Date dateHorodatage)</span></div>
|
|
||||||
<div class="block">Setter: Date d'horodatage
|
|
||||||
<br> On modifie le date.</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>dateHorodatage</code> - Nouvelle date d'horodatage</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,457 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>Utilisateur</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Model, class: Utilisateur">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Model</a></div>
|
|
||||||
<h1 title="Class Utilisateur" class="title">Class Utilisateur</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">chatapp.Model.Utilisateur</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">Utilisateur</span>
|
|
||||||
extends java.lang.Object</pre>
|
|
||||||
<div class="block"><p>
|
|
||||||
Classe representant un Utilisateur.
|
|
||||||
<br> Un Utilisateur est associé avec :
|
|
||||||
<br> - un pseudo,
|
|
||||||
<br> - un numéro de port,
|
|
||||||
<br> - une addresse IP
|
|
||||||
<br> - un ID.
|
|
||||||
</p></div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Integer,java.net.InetAddress)">Utilisateur</a></span>​(java.lang.String pseudo,
|
|
||||||
java.lang.Integer port,
|
|
||||||
java.net.InetAddress ip)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Constructeur : Utilisateur (3 paramètres)</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Integer,java.net.InetAddress,java.lang.String)">Utilisateur</a></span>​(java.lang.String pseudo,
|
|
||||||
java.lang.Integer port,
|
|
||||||
java.net.InetAddress ip,
|
|
||||||
java.lang.String id)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Constructeur : Utilisateur (4 paramètres)</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>java.lang.Boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(chatapp.Model.Utilisateur)">equals</a></span>​(<a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de comparer deux utilisateurs entre eux grace à leur ID.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter ID</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code>java.net.InetAddress</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIp()">getIp</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter IP</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i3">
|
|
||||||
<td class="colFirst"><code>java.lang.Integer</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPort()">getPort</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter Port</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i4">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPseudo()">getPseudo</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter Pseudo</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i5">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPort(java.lang.Integer)">setPort</a></span>​(java.lang.Integer port)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter Port</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i6">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPseudo(java.lang.String)">setPseudo</a></span>​(java.lang.String pseudo)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter Pseudo</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i7">
|
|
||||||
<td class="colFirst"><code>static <a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stringToUtilisateur(java.lang.String)">stringToUtilisateur</a></span>​(java.lang.String s)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de convertir un string en Utilisateur</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i8">
|
|
||||||
<td class="colFirst"><code>java.lang.String</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de convertir un objet Utilisateur en String
|
|
||||||
<br> Format du string :
|
|
||||||
<br> pseudo ___ | port ___ | ip ___ | id ___ | ( '___' sont à remplacer par les valeurs réels)</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(java.lang.String,java.lang.Integer,java.net.InetAddress)">Utilisateur</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">Utilisateur</span>​(<span class="arguments">java.lang.String pseudo,
|
|
||||||
java.lang.Integer port,
|
|
||||||
java.net.InetAddress ip)</span></div>
|
|
||||||
<div class="block">Constructeur : Utilisateur (3 paramètres)</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Le pseudo associé</dd>
|
|
||||||
<dd><code>port</code> - Le port</dd>
|
|
||||||
<dd><code>ip</code> - L'adresse IP</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(java.lang.String,java.lang.Integer,java.net.InetAddress,java.lang.String)">Utilisateur</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">Utilisateur</span>​(<span class="arguments">java.lang.String pseudo,
|
|
||||||
java.lang.Integer port,
|
|
||||||
java.net.InetAddress ip,
|
|
||||||
java.lang.String id)</span></div>
|
|
||||||
<div class="block">Constructeur : Utilisateur (4 paramètres)</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Le pseudo associé</dd>
|
|
||||||
<dd><code>port</code> - Le port</dd>
|
|
||||||
<dd><code>ip</code> - L'adresse IP</dd>
|
|
||||||
<dd><code>id</code> - L'id</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getPseudo()">getPseudo</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">getPseudo</span>()</div>
|
|
||||||
<div class="block">Getter Pseudo</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le pseudo de l'utilisateur</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setPseudo(java.lang.String)">setPseudo</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setPseudo</span>​(<span class="arguments">java.lang.String pseudo)</span></div>
|
|
||||||
<div class="block">Setter Pseudo</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pseudo</code> - Le nouveau pseudo que l'on souhaite</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getPort()">getPort</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.Integer</span> <span class="memberName">getPort</span>()</div>
|
|
||||||
<div class="block">Getter Port</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le numéro de port de l'utilisateur</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setPort(java.lang.Integer)">setPort</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setPort</span>​(<span class="arguments">java.lang.Integer port)</span></div>
|
|
||||||
<div class="block">Setter Port</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>port</code> - Le nouveau numéro de port</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getIp()">getIp</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.net.InetAddress</span> <span class="memberName">getIp</span>()</div>
|
|
||||||
<div class="block">Getter IP</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'adresse IP de l'utilisateur</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getId()">getId</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">getId</span>()</div>
|
|
||||||
<div class="block">Getter ID</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'ID de l'utilisateur</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="toString()">toString</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.String</span> <span class="memberName">toString</span>()</div>
|
|
||||||
<div class="block">Méthode permettant de convertir un objet Utilisateur en String
|
|
||||||
<br> Format du string :
|
|
||||||
<br> pseudo ___ | port ___ | ip ___ | id ___ | ( '___' sont à remplacer par les valeurs réels)</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
|
||||||
<dd><code>toString</code> in class <code>java.lang.Object</code></dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'utilisateur sous forme de String</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="stringToUtilisateur(java.lang.String)">stringToUtilisateur</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></span> <span class="memberName">stringToUtilisateur</span>​(<span class="arguments">java.lang.String s)</span></div>
|
|
||||||
<div class="block">Méthode permettant de convertir un string en Utilisateur</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>s</code> - Le paramètre String a transformé</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Un utilisateur</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="equals(chatapp.Model.Utilisateur)">equals</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.lang.Boolean</span> <span class="memberName">equals</span>​(<span class="arguments"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u)</span></div>
|
|
||||||
<div class="block">Méthode permettant de comparer deux utilisateurs entre eux grace à leur ID.</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>u</code> - L'utilisateur avec lequel on veut être comparer.</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>True si ils ont le même ID, False sinon.</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,148 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>chatapp.Model</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Model">
|
|
||||||
<meta name="generator" content="javadoc/PackageWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="package-declaration">
|
|
||||||
<script type="text/javascript">var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li class="navBarCell1Rev">Package</li>
|
|
||||||
<li>Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<h1 title="Package" class="title">Package chatapp.Model</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<div class="typeSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Class Summary</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Class</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="DataBase.html" title="class in chatapp.Model">DataBase</a></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Classe représentant la Base de données.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="ListUtilisateurs.html" title="class in chatapp.Model">ListUtilisateurs</a></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Classe représentant la liste des utilisateurs actifs, stockée localement.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="MessageHorodate.html" title="class in chatapp.Model">MessageHorodate</a></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Classe représentant les messages envoyés en TCP lors d'une session de clavardage.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<th class="colFirst" scope="row"><a href="Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Classe representant un Utilisateur.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li class="navBarCell1Rev">Package</li>
|
|
||||||
<li>Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,118 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>chatapp.Model Class Hierarchy</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="tree: package: chatapp.Model">
|
|
||||||
<meta name="generator" content="javadoc/PackageTreeWriter">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="package-tree">
|
|
||||||
<script type="text/javascript">var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li>Class</li>
|
|
||||||
<li class="navBarCell1Rev">Tree</li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<h1 class="title">Hierarchy For Package chatapp.Model</h1>
|
|
||||||
<span class="packageHierarchyLabel">Package Hierarchies:</span>
|
|
||||||
<ul class="horizontal">
|
|
||||||
<li><a href="../../overview-tree.html">All Packages</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<section class="hierarchy">
|
|
||||||
<h2 title="Class Hierarchy">Class Hierarchy</h2>
|
|
||||||
<ul>
|
|
||||||
<li class="circle">java.lang.Object
|
|
||||||
<ul>
|
|
||||||
<li class="circle">chatapp.Model.<a href="DataBase.html" title="class in chatapp.Model"><span class="typeNameLink">DataBase</span></a></li>
|
|
||||||
<li class="circle">chatapp.Model.<a href="ListUtilisateurs.html" title="class in chatapp.Model"><span class="typeNameLink">ListUtilisateurs</span></a></li>
|
|
||||||
<li class="circle">chatapp.Model.<a href="MessageHorodate.html" title="class in chatapp.Model"><span class="typeNameLink">MessageHorodate</span></a> (implements java.io.Serializable)</li>
|
|
||||||
<li class="circle">chatapp.Model.<a href="Utilisateur.html" title="class in chatapp.Model"><span class="typeNameLink">Utilisateur</span></a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li>Class</li>
|
|
||||||
<li class="navBarCell1Rev">Tree</li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,309 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>HttpEchange</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Protocol, class: HttpEchange">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":9,"i1":10,"i2":9};
|
|
||||||
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Protocol</a></div>
|
|
||||||
<h1 title="Class HttpEchange" class="title">Class HttpEchange</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">chatapp.Protocol.HttpEchange</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">HttpEchange</span>
|
|
||||||
extends java.lang.Object</pre>
|
|
||||||
<div class="block"><p>
|
|
||||||
Classe representant les échanges HTTP entre un utilisateur distant et le servlet.
|
|
||||||
</p></div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(chatapp.Controller.ChatApp)">HttpEchange</a></span>​(<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> chatapp)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Constructeur de la classe HttpEchange</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>static java.lang.Boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConnecte()">getConnecte</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter : Connecte</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>boolean</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sendPost(java.lang.String)">sendPost</a></span>​(java.lang.String type)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Cette méthode permet de communiquer avec le servlet grâce à des requetes http de type Post.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code>static void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConnecte(java.lang.Boolean)">setConnecte</a></span>​(java.lang.Boolean value)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter : Connecte</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(chatapp.Controller.ChatApp)">HttpEchange</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">HttpEchange</span>​(<span class="arguments"><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> chatapp)</span></div>
|
|
||||||
<div class="block"><p> Constructeur de la classe HttpEchange</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>chatapp</code> - La methode prend toujours en argument un paramètre chatApp associé à un utilisateur.</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="sendPost(java.lang.String)">sendPost</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">boolean</span> <span class="memberName">sendPost</span>​(<span class="arguments">java.lang.String type)</span>
|
|
||||||
throws <span class="exceptions">java.io.IOException,
|
|
||||||
java.lang.InterruptedException</span></div>
|
|
||||||
<div class="block"><p> Cette méthode permet de communiquer avec le servlet grâce à des requetes http de type Post.</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>type</code> - Le type de message ("Connexion", "Changement de pseudo" , "Deconnexion") ainsi que les parametres associés</dd>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>True ou False selon la réponse a chaque type de message envoyé.</dd>
|
|
||||||
<dt><span class="throwsLabel">Throws:</span></dt>
|
|
||||||
<dd><code>java.io.IOException</code></dd>
|
|
||||||
<dd><code>java.lang.InterruptedException</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getConnecte()">getConnecte</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType">java.lang.Boolean</span> <span class="memberName">getConnecte</span>()</div>
|
|
||||||
<div class="block">Getter : Connecte</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le boolean connecté (True s'il peut se connecter avec ce nom d'utilisateur , False sinon)</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setConnecte(java.lang.Boolean)">setConnecte</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public static</span> <span class="returnType">void</span> <span class="memberName">setConnecte</span>​(<span class="arguments">java.lang.Boolean value)</span></div>
|
|
||||||
<div class="block">Setter : Connecte</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>value</code> - La nouvelle valeur du boolean de connexion</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li>Nested | </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,417 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>RunnerEcouteTCP</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Protocol, class: RunnerEcouteTCP">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li><a href="#nested.class.summary">Nested</a> | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li><a href="#field.detail">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Protocol</a></div>
|
|
||||||
<h1 title="Class RunnerEcouteTCP" class="title">Class RunnerEcouteTCP</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">java.lang.Thread
|
|
||||||
<div class="inheritance">chatapp.Protocol.RunnerEcouteTCP</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<dl>
|
|
||||||
<dt>All Implemented Interfaces:</dt>
|
|
||||||
<dd><code>java.lang.Runnable</code></dd>
|
|
||||||
</dl>
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">RunnerEcouteTCP</span>
|
|
||||||
extends java.lang.Thread</pre>
|
|
||||||
<div class="block"><p>
|
|
||||||
Classe permettant de gérer les multiples connexions en TCP.
|
|
||||||
<br> Extend la classe Thread.
|
|
||||||
</p></div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="nestedClassSummary"><a id="nested.class.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Nested Class Summary</h2>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h2>Nested classes/interfaces inherited from class java.lang.Thread</h2>
|
|
||||||
<a id="nested.classes.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- =========== FIELD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="fieldSummary"><a id="field.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Field Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Fields</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Field</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<td class="colFirst"><code><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#app">app</a></span></code></th>
|
|
||||||
<td class="colLast"> </td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Fields inherited from class java.lang.Thread</h3>
|
|
||||||
<a id="fields.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(chatapp.Controller.ChatApp)">RunnerEcouteTCP</a></span>​(<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Constructeur</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyChangeListener(java.beans.PropertyChangeListener)">addPropertyChangeListener</a></span>​(java.beans.PropertyChangeListener pcl)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Permet aux classes qui appellent cette methode de connecter un PropertyChangeListener au PropertyChangeSupport</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addSession(chatapp.Protocol.SessionClavardage)">addSession</a></span>​(<a href="SessionClavardage.html" title="class in chatapp.Protocol">SessionClavardage</a> session)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant d'ajouter une session active dans la liste 'ListeSessions'</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ecouteTCP(chatapp.Controller.ChatApp)">ecouteTCP</a></span>​(<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">
|
|
||||||
Methode pour qu'un objet de la classe ChatApp soit constamment en a l'écoute de potentielles connexions</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i3">
|
|
||||||
<td class="colFirst"><code><a href="SessionClavardage.html" title="class in chatapp.Protocol">SessionClavardage</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSessionClavardage()">getSessionClavardage</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode permettant de recupérer la derniere session de clavardage créée dans 'ListeSessions'</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i4">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run()">run</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode qui vient écraser la méthode run de la classe Thread.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Thread</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield</code></div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ============ FIELD DETAIL =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="fieldDetails"><a id="field.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Field Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="app">app</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a></span> <span class="memberName">app</span></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(chatapp.Controller.ChatApp)">RunnerEcouteTCP</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">RunnerEcouteTCP</span>​(<span class="arguments"><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</span></div>
|
|
||||||
<div class="block">Constructeur</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>app</code> - Un RunnerEcouteTCP est toujours associé a une application de Chat</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="addPropertyChangeListener(java.beans.PropertyChangeListener)">addPropertyChangeListener</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">addPropertyChangeListener</span>​(<span class="arguments">java.beans.PropertyChangeListener pcl)</span></div>
|
|
||||||
<div class="block">Permet aux classes qui appellent cette methode de connecter un PropertyChangeListener au PropertyChangeSupport</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pcl</code> - Le propertyChangeListener qui va ecouter les evenements du propertyChangeSupport associe</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="ecouteTCP(chatapp.Controller.ChatApp)">ecouteTCP</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">ecouteTCP</span>​(<span class="arguments"><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</span></div>
|
|
||||||
<div class="block"><p>
|
|
||||||
Methode pour qu'un objet de la classe ChatApp soit constamment en a l'écoute de potentielles connexions</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>app</code> - L'utilisateur en ecoute de potentielles communications
|
|
||||||
</p></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="addSession(chatapp.Protocol.SessionClavardage)">addSession</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">addSession</span>​(<span class="arguments"><a href="SessionClavardage.html" title="class in chatapp.Protocol">SessionClavardage</a> session)</span></div>
|
|
||||||
<div class="block">Méthode permettant d'ajouter une session active dans la liste 'ListeSessions'</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>session</code> - Session Active que l'on souhaite rajouter</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getSessionClavardage()">getSessionClavardage</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="SessionClavardage.html" title="class in chatapp.Protocol">SessionClavardage</a></span> <span class="memberName">getSessionClavardage</span>()</div>
|
|
||||||
<div class="block">Méthode permettant de recupérer la derniere session de clavardage créée dans 'ListeSessions'</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Premiere Session Active</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="run()">run</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">run</span>()</div>
|
|
||||||
<div class="block">Méthode qui vient écraser la méthode run de la classe Thread.
|
|
||||||
La méthode 'ecouteTCP' est appelé.</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
|
|
||||||
<dd><code>run</code> in interface <code>java.lang.Runnable</code></dd>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
|
||||||
<dd><code>run</code> in class <code>java.lang.Thread</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li><a href="#nested.class.summary">Nested</a> | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li><a href="#field.detail">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,307 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>RunnerEcouteUDP</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Protocol, class: RunnerEcouteUDP">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li><a href="#nested.class.summary">Nested</a> | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Protocol</a></div>
|
|
||||||
<h1 title="Class RunnerEcouteUDP" class="title">Class RunnerEcouteUDP</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">java.lang.Thread
|
|
||||||
<div class="inheritance">chatapp.Protocol.RunnerEcouteUDP</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<dl>
|
|
||||||
<dt>All Implemented Interfaces:</dt>
|
|
||||||
<dd><code>java.lang.Runnable</code></dd>
|
|
||||||
</dl>
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">RunnerEcouteUDP</span>
|
|
||||||
extends java.lang.Thread</pre>
|
|
||||||
<div class="block"><p>
|
|
||||||
Classe permettant de gérer les multiples connexions en UDP.
|
|
||||||
<br> Extend la classe Thread.
|
|
||||||
</p></div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="nestedClassSummary"><a id="nested.class.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Nested Class Summary</h2>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h2>Nested classes/interfaces inherited from class java.lang.Thread</h2>
|
|
||||||
<a id="nested.classes.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- =========== FIELD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="fieldSummary"><a id="field.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Field Summary</h2>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Fields inherited from class java.lang.Thread</h3>
|
|
||||||
<a id="fields.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(chatapp.Controller.ChatApp)">RunnerEcouteUDP</a></span>​(<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Constructeur</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run()">run</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Méthode qui vient ecraser la méthode run de la classe Thread.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Thread</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield</code></div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(chatapp.Controller.ChatApp)">RunnerEcouteUDP</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">RunnerEcouteUDP</span>​(<span class="arguments"><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</span></div>
|
|
||||||
<div class="block">Constructeur</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>app</code> - Un RunnerEcouteUDP est toujours associé à une application de Chat</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="run()">run</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">run</span>()</div>
|
|
||||||
<div class="block">Méthode qui vient ecraser la méthode run de la classe Thread.
|
|
||||||
<br> La méthode 'ecouteUDP' est appelé.</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
|
|
||||||
<dd><code>run</code> in interface <code>java.lang.Runnable</code></dd>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
|
||||||
<dd><code>run</code> in class <code>java.lang.Thread</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li><a href="#nested.class.summary">Nested</a> | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,582 +0,0 @@
|
||||||
<!DOCTYPE HTML>
|
|
||||||
<!-- NewPage -->
|
|
||||||
<html lang="fr">
|
|
||||||
<head>
|
|
||||||
<!-- Generated by javadoc (13-ea) on Sat Jan 30 13:49:20 CET 2021 -->
|
|
||||||
<title>SessionClavardage</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="dc.created" content="2021-01-30">
|
|
||||||
<meta name="description" content="declaration: package: chatapp.Protocol, class: SessionClavardage">
|
|
||||||
<meta name="generator" content="javadoc/ClassWriterImpl">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.css" title="Style">
|
|
||||||
<script type="text/javascript" src="../../script.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip/dist/jszip.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
|
|
||||||
<!--[if IE]>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-3.4.1.js"></script>
|
|
||||||
<script type="text/javascript" src="../../script-dir/jquery-ui.js"></script>
|
|
||||||
</head>
|
|
||||||
<body class="class-declaration">
|
|
||||||
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
|
|
||||||
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
|
||||||
var altColor = "altColor";
|
|
||||||
var rowColor = "rowColor";
|
|
||||||
var tableTab = "tableTab";
|
|
||||||
var activeTableTab = "activeTableTab";
|
|
||||||
var pathtoroot = "../../";
|
|
||||||
loadScripts(document, 'script');</script>
|
|
||||||
<noscript>
|
|
||||||
<div>JavaScript is disabled on your browser.</div>
|
|
||||||
</noscript>
|
|
||||||
<header role="banner">
|
|
||||||
<nav role="navigation">
|
|
||||||
<div class="fixedNav">
|
|
||||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
|
||||||
<div class="topNav"><a id="navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.top.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li><a href="#nested.class.summary">Nested</a> | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="navListSearch"><label for="search">SEARCH:</label>
|
|
||||||
<input type="text" id="search" value="search" disabled="disabled">
|
|
||||||
<input type="reset" id="reset" value="reset" disabled="disabled">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.top">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
|
||||||
</div>
|
|
||||||
<div class="navPadding"> </div>
|
|
||||||
<script type="text/javascript"><!--
|
|
||||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<!-- ======== START OF CLASS DATA ======== -->
|
|
||||||
<main role="main">
|
|
||||||
<div class="header">
|
|
||||||
<div class="subTitle"><span class="packageLabelInType">Package</span> <a href="package-summary.html">chatapp.Protocol</a></div>
|
|
||||||
<h1 title="Class SessionClavardage" class="title">Class SessionClavardage</h1>
|
|
||||||
</div>
|
|
||||||
<div class="contentContainer">
|
|
||||||
<div class="inheritance" title="Inheritance Tree">java.lang.Object
|
|
||||||
<div class="inheritance">java.lang.Thread
|
|
||||||
<div class="inheritance">chatapp.Protocol.SessionClavardage</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<section class="description">
|
|
||||||
<dl>
|
|
||||||
<dt>All Implemented Interfaces:</dt>
|
|
||||||
<dd><code>java.lang.Runnable</code></dd>
|
|
||||||
</dl>
|
|
||||||
<hr>
|
|
||||||
<pre>public class <span class="typeNameLabel">SessionClavardage</span>
|
|
||||||
extends java.lang.Thread</pre>
|
|
||||||
<div class="block"><p>
|
|
||||||
Classe représentant une session de clavardage.
|
|
||||||
<br> La classe hérite de la classe Thread et dispose de 2 constructeurs selon que l'on initie une demande de session ou que l'on recoit une demande.
|
|
||||||
<br> Elle possède en attribut:
|
|
||||||
<br> - link : la socket associée à la session de clavardage
|
|
||||||
<br> - app : L'instance de chatapp
|
|
||||||
<br> - u2: l'utilisateur avec lequel on communique
|
|
||||||
<br> - out: le flux de donnees sortant
|
|
||||||
<br> - in: le flux de donnees entrant
|
|
||||||
<br> - pcs: Le PropertyChangeSupport permettant d'envoyer les notifications de MessageRecu et de FindeSession
|
|
||||||
<br> - derniersMsg: la liste temporaire des derniers messages recus
|
|
||||||
</p></div>
|
|
||||||
</section>
|
|
||||||
<section class="summary">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ======== NESTED CLASS SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="nestedClassSummary"><a id="nested.class.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Nested Class Summary</h2>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h2>Nested classes/interfaces inherited from class java.lang.Thread</h2>
|
|
||||||
<a id="nested.classes.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- =========== FIELD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="fieldSummary"><a id="field.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Field Summary</h2>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Fields inherited from class java.lang.Thread</h3>
|
|
||||||
<a id="fields.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorSummary"><a id="constructor.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<table>
|
|
||||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Constructor</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(chatapp.Model.Utilisateur,chatapp.Controller.ChatApp)">SessionClavardage</a></span>​(<a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u2,
|
|
||||||
<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Le constructeur associe a l'envoi d'une requete TCP, lorsque que l'on veut initier une session de clavardage avec un utilisateur connecte</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor">
|
|
||||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.net.Socket,chatapp.Controller.ChatApp)">SessionClavardage</a></span>​(java.net.Socket link,
|
|
||||||
<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Ce constructeur crée une session de clavardage quand on recoit une requete</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ========== METHOD SUMMARY =========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodSummary"><a id="method.summary">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Summary</h2>
|
|
||||||
<div class="memberSummary">
|
|
||||||
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
|
|
||||||
<div id="memberSummary_tabpanel" role="tabpanel">
|
|
||||||
<table aria-labelledby="t0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
|
||||||
<th class="colSecond" scope="col">Method</th>
|
|
||||||
<th class="colLast" scope="col">Description</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr class="altColor" id="i0">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addPropertyChangeListener(java.beans.PropertyChangeListener)">addPropertyChangeListener</a></span>​(java.beans.PropertyChangeListener pcl)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Permet aux PropertyChangeListener de s'abonner aux notifications des evenements</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i1">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#arretSession()">arretSession</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Methode permettant d'arreter cette session de clavardage et de prevenir l'autre utilisateur de la fin de la session</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i2">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#envoiMsg(java.lang.String)">envoiMsg</a></span>​(java.lang.String msg)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Methode transformant prenant un string pour le transmettre sous la forme d'un message horodate a l'utilisateur distant</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i3">
|
|
||||||
<td class="colFirst"><code><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getApp()">getApp</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter : chatApp</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i4">
|
|
||||||
<td class="colFirst"><code><a href="../Model/MessageHorodate.html" title="class in chatapp.Model">MessageHorodate</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDernierMsg()">getDernierMsg</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Methode permettant de recuperer le dernier message recu qui a ete mis dans la liste des messages recus.</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i5">
|
|
||||||
<td class="colFirst"><code>java.io.ObjectInputStream</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIn()">getIn</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter : In</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i6">
|
|
||||||
<td class="colFirst"><code>java.io.ObjectOutputStream</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOut()">getOut</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter : Out</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i7">
|
|
||||||
<td class="colFirst"><code><a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getU2()">getU2</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Getter : Utilisateur 2</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i8">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initierSession()">initierSession</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Methode permettant d'initier une session de clavardage et de prevenir l'autre utilisateur du debut de la session</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i9">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run()">run</a></span>()</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block"> Methode lancee par le thread, permet de receptionner les messages horodates recus et d'agir en conséquence selon le type de message recu</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i10">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setApp(chatapp.Controller.ChatApp)">setApp</a></span>​(<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter : chatApp</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i11">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIn(java.io.ObjectInputStream)">setIn</a></span>​(java.io.ObjectInputStream in)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter : In</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i12">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setLink(java.net.Socket)">setLink</a></span>​(java.net.Socket link)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter : Link</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rowColor" id="i13">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOut(java.io.ObjectOutputStream)">setOut</a></span>​(java.io.ObjectOutputStream out)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter : Out</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="altColor" id="i14">
|
|
||||||
<td class="colFirst"><code>void</code></td>
|
|
||||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setU2(chatapp.Model.Utilisateur)">setU2</a></span>​(<a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u2)</code></th>
|
|
||||||
<td class="colLast">
|
|
||||||
<div class="block">Setter : Utilisateur 2</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Thread</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Thread">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield</code></div>
|
|
||||||
<div class="inheritedList">
|
|
||||||
<h3>Methods inherited from class java.lang.Object</h3>
|
|
||||||
<a id="methods.inherited.from.class.java.lang.Object">
|
|
||||||
<!-- -->
|
|
||||||
</a><code>equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<section class="details">
|
|
||||||
<ul class="blockList">
|
|
||||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="constructorDetails"><a id="constructor.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Constructor Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(java.net.Socket,chatapp.Controller.ChatApp)">SessionClavardage</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">SessionClavardage</span>​(<span class="arguments">java.net.Socket link,
|
|
||||||
<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</span></div>
|
|
||||||
<div class="block"><p> Ce constructeur crée une session de clavardage quand on recoit une requete</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>link</code> - La socket associee a la requete TCP que l'on a recu</dd>
|
|
||||||
<dd><code>app</code> - L'instance de chatapp</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="<init>(chatapp.Model.Utilisateur,chatapp.Controller.ChatApp)">SessionClavardage</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="memberName">SessionClavardage</span>​(<span class="arguments"><a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u2,
|
|
||||||
<a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</span></div>
|
|
||||||
<div class="block"><p> Le constructeur associe a l'envoi d'une requete TCP, lorsque que l'on veut initier une session de clavardage avec un utilisateur connecte</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>u2</code> - L'utilisateur avec qui l'on souhaite démarrer une session de clavardage</dd>
|
|
||||||
<dd><code>app</code> - L'instance de chataap associee</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<!-- ============ METHOD DETAIL ========== -->
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="methodDetails"><a id="method.detail">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<h2>Method Details</h2>
|
|
||||||
<ul class="blockList">
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="addPropertyChangeListener(java.beans.PropertyChangeListener)">addPropertyChangeListener</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">addPropertyChangeListener</span>​(<span class="arguments">java.beans.PropertyChangeListener pcl)</span></div>
|
|
||||||
<div class="block">Permet aux PropertyChangeListener de s'abonner aux notifications des evenements</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>pcl</code> - Le PropertyListener qui souhaite s'abonner sur ce PropertyChangeSupport</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="arretSession()">arretSession</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">arretSession</span>()</div>
|
|
||||||
<div class="block"><p> Methode permettant d'arreter cette session de clavardage et de prevenir l'autre utilisateur de la fin de la session</p></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="initierSession()">initierSession</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">initierSession</span>()</div>
|
|
||||||
<div class="block"><p> Methode permettant d'initier une session de clavardage et de prevenir l'autre utilisateur du debut de la session</p></div>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="envoiMsg(java.lang.String)">envoiMsg</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">envoiMsg</span>​(<span class="arguments">java.lang.String msg)</span></div>
|
|
||||||
<div class="block">Methode transformant prenant un string pour le transmettre sous la forme d'un message horodate a l'utilisateur distant</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>msg</code> - Le texte du message à envoyer</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getDernierMsg()">getDernierMsg</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="../Model/MessageHorodate.html" title="class in chatapp.Model">MessageHorodate</a></span> <span class="memberName">getDernierMsg</span>()</div>
|
|
||||||
<div class="block"><p> Methode permettant de recuperer le dernier message recu qui a ete mis dans la liste des messages recus.
|
|
||||||
<br> Utilisée par l'interface graphique qui a ete avertie grace au PropertyChangeSupport</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le dernier message horodate recu</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="run()">run</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">run</span>()</div>
|
|
||||||
<div class="block"><p> Methode lancee par le thread, permet de receptionner les messages horodates recus et d'agir en conséquence selon le type de message recu</p></div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
|
|
||||||
<dd><code>run</code> in interface <code>java.lang.Runnable</code></dd>
|
|
||||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
|
||||||
<dd><code>run</code> in class <code>java.lang.Thread</code></dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getOut()">getOut</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.io.ObjectOutputStream</span> <span class="memberName">getOut</span>()</div>
|
|
||||||
<div class="block">Getter : Out</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le flux d'ecriture des messages sortant</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setOut(java.io.ObjectOutputStream)">setOut</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setOut</span>​(<span class="arguments">java.io.ObjectOutputStream out)</span></div>
|
|
||||||
<div class="block">Setter : Out</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>out</code> - Le flux d'ecriture des messages sortant</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getIn()">getIn</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">java.io.ObjectInputStream</span> <span class="memberName">getIn</span>()</div>
|
|
||||||
<div class="block">Getter : In</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>Le flux de lecture des messages entrant</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setIn(java.io.ObjectInputStream)">setIn</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setIn</span>​(<span class="arguments">java.io.ObjectInputStream in)</span></div>
|
|
||||||
<div class="block">Setter : In</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>in</code> - Le flux de lecture des messages entrant</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setLink(java.net.Socket)">setLink</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setLink</span>​(<span class="arguments">java.net.Socket link)</span></div>
|
|
||||||
<div class="block">Setter : Link</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>link</code> - La Socket asscciee a la connexion TCP et donc a la session</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getApp()">getApp</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a></span> <span class="memberName">getApp</span>()</div>
|
|
||||||
<div class="block">Getter : chatApp</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'instance de chatApp</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setApp(chatapp.Controller.ChatApp)">setApp</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setApp</span>​(<span class="arguments"><a href="../Controller/ChatApp.html" title="class in chatapp.Controller">ChatApp</a> app)</span></div>
|
|
||||||
<div class="block">Setter : chatApp</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>app</code> - L'instance de chatApp</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="getU2()">getU2</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType"><a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a></span> <span class="memberName">getU2</span>()</div>
|
|
||||||
<div class="block">Getter : Utilisateur 2</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="returnLabel">Returns:</span></dt>
|
|
||||||
<dd>L'utilisateur avec lequel on communique</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
<li class="blockList">
|
|
||||||
<section class="detail">
|
|
||||||
<h3><a id="setU2(chatapp.Model.Utilisateur)">setU2</a></h3>
|
|
||||||
<div class="memberSignature"><span class="modifiers">public</span> <span class="returnType">void</span> <span class="memberName">setU2</span>​(<span class="arguments"><a href="../Model/Utilisateur.html" title="class in chatapp.Model">Utilisateur</a> u2)</span></div>
|
|
||||||
<div class="block">Setter : Utilisateur 2</div>
|
|
||||||
<dl>
|
|
||||||
<dt><span class="paramLabel">Parameters:</span></dt>
|
|
||||||
<dd><code>u2</code> - L'utilisateur avec lequel on communique</dd>
|
|
||||||
</dl>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
<!-- ========= END OF CLASS DATA ========= -->
|
|
||||||
<footer role="contentinfo">
|
|
||||||
<nav role="navigation">
|
|
||||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
|
||||||
<div class="bottomNav"><a id="navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
|
|
||||||
<a id="navbar.bottom.firstrow">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<ul class="navList" title="Navigation">
|
|
||||||
<li><a href="../../index.html">Overview</a></li>
|
|
||||||
<li><a href="package-summary.html">Package</a></li>
|
|
||||||
<li class="navBarCell1Rev">Class</li>
|
|
||||||
<li><a href="package-tree.html">Tree</a></li>
|
|
||||||
<li><a href="../../deprecated-list.html">Deprecated</a></li>
|
|
||||||
<li><a href="../../index-files/index-1.html">Index</a></li>
|
|
||||||
<li><a href="../../help-doc.html">Help</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="subNav">
|
|
||||||
<div>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Summary: </li>
|
|
||||||
<li><a href="#nested.class.summary">Nested</a> | </li>
|
|
||||||
<li><a href="#field.summary">Field</a> | </li>
|
|
||||||
<li><a href="#constructor.summary">Constr</a> | </li>
|
|
||||||
<li><a href="#method.summary">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="subNavList">
|
|
||||||
<li>Detail: </li>
|
|
||||||
<li>Field | </li>
|
|
||||||
<li><a href="#constructor.detail">Constr</a> | </li>
|
|
||||||
<li><a href="#method.detail">Method</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a id="skip.navbar.bottom">
|
|
||||||
<!-- -->
|
|
||||||
</a>
|
|
||||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||