Ajout class ListUtilisateurs

This commit is contained in:
Auriane Lartigue 2020-11-30 18:16:26 +01:00
부모 ae3dba26cb
커밋 e419412d8f
7개의 변경된 파일122개의 추가작업 그리고 93개의 파일을 삭제

Binary file not shown.

파일 보기

@ -14,7 +14,7 @@ import java.util.concurrent.Executors;
public class ChatApp {
/* Liste des utilisateurs actifs */
private ArrayList<Utilisateur> actifUsers ;
private ListUtilisateurs actifUsers ;
/* ChatApp est associé à un utilisateur */
private Utilisateur me;
@ -26,7 +26,7 @@ public class ChatApp {
* @param port Port de communication
*/
public ChatApp(String pseudo, Integer port){
this.actifUsers = new ArrayList<Utilisateur>() ;
this.actifUsers = new ListUtilisateurs() ;
// Recuperer adresse IP de l'utilisateur
InetAddress ip = null ;
try {
@ -36,78 +36,10 @@ public class ChatApp {
}
//ip.getHostAddress();
this.me = new Utilisateur(pseudo,port,ip);
this.actifUsers.add(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");
}
this.actifUsers.addList(getMe());
}
/**
* 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
@ -124,13 +56,6 @@ public class ChatApp {
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.
@ -196,6 +121,9 @@ public class ChatApp {
return me;
}
public ListUtilisateurs getActifUsers() {
return actifUsers;
}
}
class Runner implements Runnable {
ChatApp app ;

Binary file not shown.

파일 보기

@ -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.

파일 보기

@ -110,13 +110,13 @@ class RunnerUDP implements Runnable {
System.out.println("Reception d'une demande de connexion");
Utilisateur u = Utilisateur.stringToUtilisateur(received.split("\n")[1]);
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");
reponse += "false\n";
}
else {
System.out.println("Ajout d'un nouvel utilisateur dans la liste des Utilisateurs");
app.addList(u);
( app.getActifUsers() ).addList(u);
reponse += "true\n";
}
@ -128,15 +128,15 @@ class RunnerUDP implements Runnable {
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
app.afficherListeUtilisateurs();
( app.getActifUsers() ).afficherListeUtilisateurs();
}
if (Type.equals("Modification Pseudo")) {
if(app.verifierUnicite(received.split("\n")[2])) {
app.modifierList(received.split("\n")[1],received.split("\n")[2]);
Utilisateur Destination = app.getPseudoList(received.split("\n")[1]);
if(( app.getActifUsers() ).verifierUnicite(received.split("\n")[2])) {
( app.getActifUsers() ).modifierList(received.split("\n")[1],received.split("\n")[2]);
Utilisateur Destination = ( app.getActifUsers() ).getPseudoList(received.split("\n")[1]);
String Message = "Bon Choix Pseudo\n" + received.split("\n")[2] ;
try {
UDPEchange.envoiUnicast(Destination.getIp(),Message, 1234);
@ -145,7 +145,7 @@ class RunnerUDP implements Runnable {
}
}
else {
Utilisateur Destination = app.getPseudoList(received.split("\n")[1]);
Utilisateur Destination = ( app.getActifUsers() ).getPseudoList(received.split("\n")[1]);
String Message = "Mauvais Choix Pseudo\n" ;
try {
UDPEchange.envoiUnicast(Destination.getIp(),Message, 1234);
@ -153,18 +153,18 @@ class RunnerUDP implements Runnable {
e.printStackTrace();
}
}
app.afficherListeUtilisateurs();
( app.getActifUsers() ).afficherListeUtilisateurs();
}
if (Type.equals("Mauvais Choix Pseudo")) {
System.out.println("Ce choix de pseudo est déjà pris il te faut en choisir un autre");
}
if (Type.equals("Bon Choix Pseudo")) {
app.supprimerList(app.getMe());
app.getMe().setPseudo(received.split("\n")[1]);
app.addList(app.getMe());
( app.getActifUsers() ).supprimerList(app.getMe());
app.getMe().setPseudo(received.split("\n")[1]);
( app.getActifUsers() ).addList(app.getMe());
}
if (Type.equals("Deconnexion")) {
app.supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1]));
( app.getActifUsers() ).supprimerList(Utilisateur.stringToUtilisateur(received.split("\n")[1]));
}
}
}