support complet statut
This commit is contained in:
parent
d186fd2a22
commit
ba472b2437
6 changed files with 50 additions and 25 deletions
|
@ -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");
|
||||
|
|
|
@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -236,9 +236,12 @@ public class ListUI extends JFrame implements Runnable{
|
|||
public void connect() {
|
||||
try{
|
||||
if (list.getSelectedValue() != null) {
|
||||
String nom = list.getSelectedValue().nom;
|
||||
gestionnaireClavardage gc = gestionnaireClavardage.instance();
|
||||
gc.createSession(nom);
|
||||
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");
|
||||
|
@ -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) {
|
||||
|
|
|
@ -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()+ "$$$"
|
||||
+ GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$"
|
||||
+ GestionnaireNom.instance().getStatut() );
|
||||
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();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue