Ajout class ListUtilisateurs
This commit is contained in:
parent
ae3dba26cb
commit
e419412d8f
7 changed files with 122 additions and 93 deletions
Binary file not shown.
|
@ -14,7 +14,7 @@ import java.util.concurrent.Executors;
|
||||||
public class ChatApp {
|
public class ChatApp {
|
||||||
|
|
||||||
/* Liste des utilisateurs actifs */
|
/* Liste des utilisateurs actifs */
|
||||||
private ArrayList<Utilisateur> actifUsers ;
|
private ListUtilisateurs actifUsers ;
|
||||||
|
|
||||||
/* ChatApp est associé à un utilisateur */
|
/* ChatApp est associé à un utilisateur */
|
||||||
private Utilisateur me;
|
private Utilisateur me;
|
||||||
|
@ -26,7 +26,7 @@ public class ChatApp {
|
||||||
* @param port Port de communication
|
* @param port Port de communication
|
||||||
*/
|
*/
|
||||||
public ChatApp(String pseudo, Integer port){
|
public ChatApp(String pseudo, Integer port){
|
||||||
this.actifUsers = new ArrayList<Utilisateur>() ;
|
this.actifUsers = new ListUtilisateurs() ;
|
||||||
// Recuperer adresse IP de l'utilisateur
|
// Recuperer adresse IP de l'utilisateur
|
||||||
InetAddress ip = null ;
|
InetAddress ip = null ;
|
||||||
try {
|
try {
|
||||||
|
@ -36,78 +36,10 @@ public class ChatApp {
|
||||||
}
|
}
|
||||||
//ip.getHostAddress();
|
//ip.getHostAddress();
|
||||||
this.me = new Utilisateur(pseudo,port,ip);
|
this.me = new Utilisateur(pseudo,port,ip);
|
||||||
this.actifUsers.add(getMe());
|
this.actifUsers.addList(getMe());
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Ajouter des utilisateurs actifs dans l'attribut liste 'actifUsers'
|
|
||||||
*
|
|
||||||
* @param u on va rajouter cet utilisateur dans la liste
|
|
||||||
*/
|
|
||||||
public void addList(Utilisateur u) {
|
|
||||||
this.actifUsers.add(u);
|
|
||||||
}
|
|
||||||
public Utilisateur getPseudoList(String pseudo) {
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
if (elem.getPseudo().equals(pseudo) ) {
|
|
||||||
return elem ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null ;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 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();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modification du pseudo de l'utilisateur
|
* Modification du pseudo de l'utilisateur
|
||||||
|
@ -124,13 +56,6 @@ public class ChatApp {
|
||||||
UDPEchange.connexion(broadcastAdress,broadcastMessage, port);
|
UDPEchange.connexion(broadcastAdress,broadcastMessage, port);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void afficherListeUtilisateurs() {
|
|
||||||
System.out.println ("Liste des utilisateurs actifs : ");
|
|
||||||
for(Utilisateur elem: this.actifUsers)
|
|
||||||
{
|
|
||||||
System.out.println (elem.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Methode appelée lors de la connexion d'un nouvel utilisateur.
|
* Methode appelée lors de la connexion d'un nouvel utilisateur.
|
||||||
|
@ -196,6 +121,9 @@ public class ChatApp {
|
||||||
return me;
|
return me;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ListUtilisateurs getActifUsers() {
|
||||||
|
return actifUsers;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
class Runner implements Runnable {
|
class Runner implements Runnable {
|
||||||
ChatApp app ;
|
ChatApp app ;
|
||||||
|
|
BIN
Implementation/src/ListUtilisateurs.class
Normal file
BIN
Implementation/src/ListUtilisateurs.class
Normal file
Binary file not shown.
101
Implementation/src/ListUtilisateurs.java
Normal file
101
Implementation/src/ListUtilisateurs.java
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
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) {
|
||||||
|
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 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 void afficherListeUtilisateurs() {
|
||||||
|
System.out.println ("Liste des utilisateurs actifs : ");
|
||||||
|
for(Utilisateur elem: this.actifUsers)
|
||||||
|
{
|
||||||
|
System.out.println (elem.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
|
@ -110,13 +110,13 @@ class RunnerUDP implements Runnable {
|
||||||
System.out.println("Reception d'une demande de connexion");
|
System.out.println("Reception d'une demande de connexion");
|
||||||
Utilisateur u = Utilisateur.stringToUtilisateur(received.split("\n")[1]);
|
Utilisateur u = Utilisateur.stringToUtilisateur(received.split("\n")[1]);
|
||||||
String reponse = "Reponse Connexion\n";
|
String reponse = "Reponse Connexion\n";
|
||||||
if (!app.verifierUnicite(u.getPseudo())) {
|
if (!( app.getActifUsers() ).verifierUnicite(u.getPseudo())) {
|
||||||
System.out.println("Pseudo deja present dans la liste");
|
System.out.println("Pseudo deja present dans la liste");
|
||||||
reponse += "false\n";
|
reponse += "false\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
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.addList(u);
|
( app.getActifUsers() ).addList(u);
|
||||||
reponse += "true\n";
|
reponse += "true\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -128,15 +128,15 @@ class RunnerUDP implements Runnable {
|
||||||
System.out.println("Echec de l'envoi du message");
|
System.out.println("Echec de l'envoi du message");
|
||||||
}
|
}
|
||||||
|
|
||||||
app.afficherListeUtilisateurs();
|
( app.getActifUsers() ).afficherListeUtilisateurs();
|
||||||
}
|
}
|
||||||
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
|
||||||
app.afficherListeUtilisateurs();
|
( app.getActifUsers() ).afficherListeUtilisateurs();
|
||||||
}
|
}
|
||||||
if (Type.equals("Modification Pseudo")) {
|
if (Type.equals("Modification Pseudo")) {
|
||||||
if(app.verifierUnicite(received.split("\n")[2])) {
|
if(( app.getActifUsers() ).verifierUnicite(received.split("\n")[2])) {
|
||||||
app.modifierList(received.split("\n")[1],received.split("\n")[2]);
|
( app.getActifUsers() ).modifierList(received.split("\n")[1],received.split("\n")[2]);
|
||||||
Utilisateur Destination = app.getPseudoList(received.split("\n")[1]);
|
Utilisateur Destination = ( app.getActifUsers() ).getPseudoList(received.split("\n")[1]);
|
||||||
String Message = "Bon Choix Pseudo\n" + received.split("\n")[2] ;
|
String Message = "Bon Choix Pseudo\n" + received.split("\n")[2] ;
|
||||||
try {
|
try {
|
||||||
UDPEchange.envoiUnicast(Destination.getIp(),Message, 1234);
|
UDPEchange.envoiUnicast(Destination.getIp(),Message, 1234);
|
||||||
|
@ -145,7 +145,7 @@ class RunnerUDP implements Runnable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Utilisateur Destination = app.getPseudoList(received.split("\n")[1]);
|
Utilisateur Destination = ( app.getActifUsers() ).getPseudoList(received.split("\n")[1]);
|
||||||
String Message = "Mauvais Choix Pseudo\n" ;
|
String Message = "Mauvais Choix Pseudo\n" ;
|
||||||
try {
|
try {
|
||||||
UDPEchange.envoiUnicast(Destination.getIp(),Message, 1234);
|
UDPEchange.envoiUnicast(Destination.getIp(),Message, 1234);
|
||||||
|
@ -153,18 +153,18 @@ class RunnerUDP implements Runnable {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
app.afficherListeUtilisateurs();
|
( app.getActifUsers() ).afficherListeUtilisateurs();
|
||||||
}
|
}
|
||||||
if (Type.equals("Mauvais Choix Pseudo")) {
|
if (Type.equals("Mauvais Choix Pseudo")) {
|
||||||
System.out.println("Ce choix de pseudo est déjà pris il te faut en choisir un autre");
|
System.out.println("Ce choix de pseudo est déjà pris il te faut en choisir un autre");
|
||||||
}
|
}
|
||||||
if (Type.equals("Bon Choix Pseudo")) {
|
if (Type.equals("Bon Choix Pseudo")) {
|
||||||
app.supprimerList(app.getMe());
|
( app.getActifUsers() ).supprimerList(app.getMe());
|
||||||
app.getMe().setPseudo(received.split("\n")[1]);
|
app.getMe().setPseudo(received.split("\n")[1]);
|
||||||
app.addList(app.getMe());
|
( app.getActifUsers() ).addList(app.getMe());
|
||||||
}
|
}
|
||||||
if (Type.equals("Deconnexion")) {
|
if (Type.equals("Deconnexion")) {
|
||||||
app.supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1]));
|
( app.getActifUsers() ).supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue