support complet statut

This commit is contained in:
basti 2021-01-10 13:43:03 +01:00
parent d186fd2a22
commit ba472b2437
6 changed files with 50 additions and 25 deletions

View file

@ -51,8 +51,8 @@ public class test {
public static void main(String[] args) { public static void main(String[] args) {
GestionnaireListeUtilisateur glu = GestionnaireListeUtilisateur.instance(); GestionnaireListeUtilisateur glu = GestionnaireListeUtilisateur.instance();
ArrayList<TypeListeUtilisateur> list = new ArrayList<TypeListeUtilisateur>(); ArrayList<TypeListeUtilisateur> list = new ArrayList<TypeListeUtilisateur>();
list.add(new TypeListeUtilisateur("10", "User1", "localhost", "online", true)); list.add(new TypeListeUtilisateur("10", "User1", "localhost", "online"));
list.add(new TypeListeUtilisateur("11", "User2", "localhost", "online", true)); list.add(new TypeListeUtilisateur("11", "User2", "localhost", "online"));
glu.setListeUtilisateur(list); glu.setListeUtilisateur(list);
GestionnaireNom gn = GestionnaireNom.instance(); GestionnaireNom gn = GestionnaireNom.instance();
gn.setId("11"); gn.setId("11");

View file

@ -8,7 +8,7 @@ import ui.ListUI;
public class TraitementCmdListe implements Runnable{ public class TraitementCmdListe implements Runnable{
private String[] cmd; //ordre$$$id$$$nom$$$ip$$$dedans private String[] cmd; //ordre$$$id$$$nom$$$ip$$$statut
private Semaphore semaphore; private Semaphore semaphore;
//Constructeur //Constructeur
@ -27,11 +27,11 @@ public class TraitementCmdListe implements Runnable{
public void run() { public void run() {
try { try {
//On décompose la cmd //On décompose la cmd
String ordre = cmd[0]; String ordre = cmd[0]; // add / delete / listRequest / statut
String id = cmd[1]; String id = cmd[1];
String nom = cmd[2]; String nom = cmd[2];
String ip = cmd[3]; String ip = cmd[3];
String dedans = cmd[4]; String statut = cmd[4];
if (ordre.equals("listRequest")) { if (ordre.equals("listRequest")) {
for (int i = 2000; i<2010; i++) envoyerNom2(i); // à changer, debug //TODO for (int i = 2000; i<2010; i++) envoyerNom2(i); // à changer, debug //TODO
@ -47,7 +47,7 @@ public class TraitementCmdListe implements Runnable{
if (ordre.equals("add") && !nom.equals("null")) { if (ordre.equals("add") && !nom.equals("null")) {
ajouteUtilisateur(id, nom, ip, dedans); //TODO ajouteUtilisateur(id, nom, ip, statut); //TODO
//debug //debug
@ -59,6 +59,10 @@ public class TraitementCmdListe implements Runnable{
} }
if (ordre.equals("statut")) {
changeStatut(id, statut);
}
//System.out.println("libéré"); //System.out.println("libéré");
semaphore.release(); semaphore.release();
@ -91,7 +95,7 @@ public class TraitementCmdListe implements Runnable{
//Ajoute les utilisateurs à la listeUtilisateur //Ajoute les utilisateurs à la listeUtilisateur
private void ajouteUtilisateur(String id, String nom, String ip, String dedans) { private void ajouteUtilisateur(String id, String nom, String ip, String statut) {
boolean inListe = false; boolean inListe = false;
ArrayList<TypeListeUtilisateur> listeUtilisateur = GestionnaireListeUtilisateur.instance().getListeUtilisateur(); ArrayList<TypeListeUtilisateur> listeUtilisateur = GestionnaireListeUtilisateur.instance().getListeUtilisateur();
@ -108,13 +112,7 @@ public class TraitementCmdListe implements Runnable{
//s'il n'est pas dans la liste on la rajoute //s'il n'est pas dans la liste on la rajoute
if (!inListe) { if (!inListe) {
if (dedans.equals("true")) { listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, statut));
listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, null, true));
}
else {
listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, null, false));
}
} }
@ -138,4 +136,19 @@ public class TraitementCmdListe implements Runnable{
//mise à jour des graphismes //mise à jour des graphismes
ListUI.update(); ListUI.update();
} }
// Met à jour le Statut d'un utilisateur
private void changeStatut(String id, String statut) {
for (TypeListeUtilisateur user : GestionnaireListeUtilisateur.instance().getListeUtilisateur()) {
if (user.id.equals(id)) {
user.statut = statut;
break;
}
}
//mise à jour des graphismes
ListUI.update();
}
} }

View file

@ -6,14 +6,12 @@ public class TypeListeUtilisateur {
public String id; public String id;
public String ip; public String ip;
public String statut; public String statut;
public boolean dedans;
public TypeListeUtilisateur(String id, String nom, String ip, String statut, boolean dedans) { public TypeListeUtilisateur(String id, String nom, String ip, String statut) {
this.id = id; this.id = id;
this.nom = nom; this.nom = nom;
this.ip = ip; this.ip = ip;
this.statut = statut; this.statut = statut;
this.dedans = dedans;
} }
} }

View file

@ -30,7 +30,7 @@ public class UdpBroadcastServer implements Runnable{
serverSocket.receive(datagramPacket); serverSocket.receive(datagramPacket);
String receivedMessage = new String(datagramPacket.getData(), 0, datagramPacket.getLength()); String receivedMessage = new String(datagramPacket.getData(), 0, datagramPacket.getLength());
System.out.println(receivedMessage); System.out.println(receivedMessage); //debug
Thread t = new Thread( new TraitementCmdListe(receivedMessage, semaphore) ); Thread t = new Thread( new TraitementCmdListe(receivedMessage, semaphore) );
t.start(); t.start();

View file

@ -236,10 +236,13 @@ public class ListUI extends JFrame implements Runnable{
public void connect() { public void connect() {
try{ try{
if (list.getSelectedValue() != null) { if (list.getSelectedValue() != null) {
if(!list.getSelectedValue().statut.equals("offline")) {
String nom = list.getSelectedValue().nom; String nom = list.getSelectedValue().nom;
gestionnaireClavardage gc = gestionnaireClavardage.instance(); gestionnaireClavardage gc = gestionnaireClavardage.instance();
gc.createSession(nom); gc.createSession(nom);
} }
}
}catch (Exception e) { }catch (Exception e) {
System.out.println("Erreur : connect ListUI"); System.out.println("Erreur : connect ListUI");
e.printStackTrace(); e.printStackTrace();
@ -287,7 +290,7 @@ public class ListUI extends JFrame implements Runnable{
GestionnaireNom.instance().setStatut(item); GestionnaireNom.instance().setStatut(item);
// on envoie l'info à la servlet // on envoie l'info à la servlet
try { try {
Post.sendPOST("nom$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$" Post.sendPOST("statut$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$"
+ GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$" + GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$"
+ GestionnaireNom.instance().getStatut() ); + GestionnaireNom.instance().getStatut() );
} catch (IOException ex) { } catch (IOException ex) {

View file

@ -135,12 +135,23 @@ public class NomUI extends JFrame implements Runnable{
if (GestionnaireNom.instance().verifierDisponibiliteNom(nom)) { if (GestionnaireNom.instance().verifierDisponibiliteNom(nom)) {
//Celui-ci ne peut pas être "vide" //Celui-ci ne peut pas être "vide"
if (!nom.isBlank()) { if (!nom.isBlank()) {
boolean nouvelUtilisateur = (GestionnaireNom.instance().getNom() == null);
GestionnaireNom.instance().nommer2(nom); //enlever le 2 à la fin //TODO GestionnaireNom.instance().nommer2(nom); //enlever le 2 à la fin //TODO
// on envoie l'info à la servlet // on envoie l'info à la servlet
try { try {
Post.sendPOST("nom$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$" if (nouvelUtilisateur) {
Post.sendPOST("new$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$"
+ GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$"
+ GestionnaireNom.instance().getStatut() ); // online par defaut ?
} else {
Post.sendPOST("name$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$"
+ GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$" + GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$"
+ GestionnaireNom.instance().getStatut() ); + GestionnaireNom.instance().getStatut() );
}
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }