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) {
|
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");
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue