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) {
GestionnaireListeUtilisateur glu = GestionnaireListeUtilisateur.instance();
ArrayList<TypeListeUtilisateur> list = new ArrayList<TypeListeUtilisateur>();
list.add(new TypeListeUtilisateur("10", "User1", "localhost", "online", true));
list.add(new TypeListeUtilisateur("11", "User2", "localhost", "online", true));
list.add(new TypeListeUtilisateur("10", "User1", "localhost", "online"));
list.add(new TypeListeUtilisateur("11", "User2", "localhost", "online"));
glu.setListeUtilisateur(list);
GestionnaireNom gn = GestionnaireNom.instance();
gn.setId("11");

View file

@ -8,7 +8,7 @@ import ui.ListUI;
public class TraitementCmdListe implements Runnable{
private String[] cmd; //ordre$$$id$$$nom$$$ip$$$dedans
private String[] cmd; //ordre$$$id$$$nom$$$ip$$$statut
private Semaphore semaphore;
//Constructeur
@ -27,11 +27,11 @@ public class TraitementCmdListe implements Runnable{
public void run() {
try {
//On décompose la cmd
String ordre = cmd[0];
String ordre = cmd[0]; // add / delete / listRequest / statut
String id = cmd[1];
String nom = cmd[2];
String ip = cmd[3];
String dedans = cmd[4];
String statut = cmd[4];
if (ordre.equals("listRequest")) {
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")) {
ajouteUtilisateur(id, nom, ip, dedans); //TODO
ajouteUtilisateur(id, nom, ip, statut); //TODO
//debug
@ -59,6 +59,10 @@ public class TraitementCmdListe implements Runnable{
}
if (ordre.equals("statut")) {
changeStatut(id, statut);
}
//System.out.println("libéré");
semaphore.release();
@ -91,7 +95,7 @@ public class TraitementCmdListe implements Runnable{
//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;
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
if (!inListe) {
if (dedans.equals("true")) {
listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, null, true));
}
else {
listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, null, false));
}
listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, statut));
}
@ -138,4 +136,19 @@ public class TraitementCmdListe implements Runnable{
//mise à jour des graphismes
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 ip;
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.nom = nom;
this.ip = ip;
this.statut = statut;
this.dedans = dedans;
}
}

View file

@ -30,7 +30,7 @@ public class UdpBroadcastServer implements Runnable{
serverSocket.receive(datagramPacket);
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) );
t.start();

View file

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

View file

@ -135,12 +135,23 @@ public class NomUI extends JFrame implements Runnable{
if (GestionnaireNom.instance().verifierDisponibiliteNom(nom)) {
//Celui-ci ne peut pas être "vide"
if (!nom.isBlank()) {
boolean nouvelUtilisateur = (GestionnaireNom.instance().getNom() == null);
GestionnaireNom.instance().nommer2(nom); //enlever le 2 à la fin //TODO
// on envoie l'info à la servlet
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().getStatut() );
}
} catch (IOException e) {
e.printStackTrace();
}