Compare commits

..

2 commits

7 changed files with 46 additions and 34 deletions

View file

@ -15,8 +15,7 @@ public class Main {
GestionnaireListeUtilisateur.instance().ecoute2(2001); //enlever le 2, debug //TODO PORT = 2001 à 2009
//on crée manuellement des utilisateurs
GestionnaireListeUtilisateur.instance().envoie2("add$$$77$$$Moi$$$LocalHost");
GestionnaireListeUtilisateur.instance().envoie2("add$$$77$$$Moi$$$LocalHost$$$true");
//on met à jour notre liste
GestionnaireListeUtilisateur.instance().majListe2(); //enlever le 2 //TODO

View file

@ -43,13 +43,13 @@ public class GestionnaireListeUtilisateur {
//Demande à tout le monde d'envoyer leur infos (TypeListeUtilisateur) --> Uniquement lors de la connexion
public void majListe() {
envoie("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " ");
envoie("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " ");
}
//debug local
public void majListe2() {
envoie2("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " ");
envoie2("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " ");
}

View file

@ -8,16 +8,16 @@ import ui.ListUI2;
public class TraitementCmdListe implements Runnable{
private String[] cmd; //ordre$$$id$$$nom$$$ip
private String[] cmd; //ordre$$$id$$$nom$$$ip$$$dedans
private Semaphore semaphore;
//Constructeur
public TraitementCmdListe(String message, Semaphore semaphore) {
this.cmd = message.split("\\$\\$\\$", 0);
this.semaphore = semaphore;
if(cmd.length != 4) {
if(cmd.length != 5) {
System.out.println("Erreur nombre d'arguments");
this.cmd = new String[] {"", "", "", ""};
this.cmd = new String[] {"", "", "", "", ""};
}
}
@ -31,6 +31,7 @@ public class TraitementCmdListe implements Runnable{
String id = cmd[1];
String nom = cmd[2];
String ip = cmd[3];
String dedans = cmd[4];
if (ordre.equals("listRequest")) {
for (int i = 2000; i<2010; i++) envoyerNom2(i); // à changer, debug //TODO
@ -38,15 +39,15 @@ public class TraitementCmdListe implements Runnable{
}
semaphore.acquireUninterruptibly();
System.out.println("bloqué");
//System.out.println("bloqué");
if (ordre.equals("delete")) {
supprimeUtilisateur(GestionnaireListeUtilisateur.instance().getListeUtilisateur(), id);
supprimeUtilisateur(id);
}
if (ordre.equals("add") && !nom.equals("null")) {
ajouteUtilisateur(GestionnaireListeUtilisateur.instance().getListeUtilisateur(), id, nom, ip, ordre);
ajouteUtilisateur(id, nom, ip, dedans); //TODO
//debug
@ -58,7 +59,7 @@ public class TraitementCmdListe implements Runnable{
}
System.out.println("libéré");
//System.out.println("libéré");
semaphore.release();
@ -75,7 +76,7 @@ public class TraitementCmdListe implements Runnable{
public void envoyerNom() { //localHost TODO (gerer IP, unhandle exception ...)
GestionnaireListeUtilisateur.instance().envoie(
"add"+ "$$$" + GestionnaireNom.instance().getId() + "$$$" +
GestionnaireNom.instance().getNom() + "$$$" + GestionnaireNom.instance().getIp() );
GestionnaireNom.instance().getNom() + "$$$" + GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() );
}
@ -83,16 +84,17 @@ public class TraitementCmdListe implements Runnable{
public void envoyerNom2(int port) { //localHost TODO (gerer IP, unhandle exception ...)
GestionnaireListeUtilisateur.instance().envoie2(
"add"+ "$$$" + GestionnaireNom.instance().getId() + "$$$" +
GestionnaireNom.instance().getNom() + "$$$" + GestionnaireNom.instance().getIp() );
GestionnaireNom.instance().getNom() + "$$$" + GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() );
}
//Ajoute les utilisateurs à la listeUtilisateur
private void ajouteUtilisateur(ArrayList<TypeListeUtilisateur> listeUtilisateur, String id, String nom, String ip, String ordre) {
private void ajouteUtilisateur(String id, String nom, String ip, String dedans) {
boolean inListe = false;
ArrayList<TypeListeUtilisateur> listeUtilisateur = GestionnaireListeUtilisateur.instance().getListeUtilisateur();
//si il est dans la liste on le renomme
for (int i=0; i<listeUtilisateur.size(); i++) {
@ -106,7 +108,13 @@ public class TraitementCmdListe implements Runnable{
//s'il n'est pas dans la liste on la rajoute
if (!inListe) {
listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, null));
if (dedans.equals("true")) {
listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, null, true));
}
else {
listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, null, false));
}
}
@ -117,7 +125,8 @@ public class TraitementCmdListe implements Runnable{
// Supprime un utilisateur de la ListeUtilisateur
private void supprimeUtilisateur(ArrayList<TypeListeUtilisateur> listeUtilisateur, String id) {
private void supprimeUtilisateur(String id) {
ArrayList<TypeListeUtilisateur> listeUtilisateur = GestionnaireListeUtilisateur.instance().getListeUtilisateur();
for (int i=0; i<listeUtilisateur.size(); i++) {
if (listeUtilisateur.get(i).id.equals(id)) {

View file

@ -6,12 +6,14 @@ 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) {
public TypeListeUtilisateur(String id, String nom, String ip, String statut, boolean dedans) {
this.id = id;
this.nom = nom;
this.ip = ip;
this.statut = statut;
this.dedans = dedans;
}
}

View file

@ -59,7 +59,7 @@ public class GestionnaireNom{
//retorurne dansReseau
public boolean getdansReseau() {
public boolean getDansReseau() {
return dansReseau;
}
@ -144,14 +144,14 @@ public class GestionnaireNom{
// Associe un nom à l'utilisateur et prévient les autres.
public void nommer(String nom) {
setNom(nom);
GestionnaireListeUtilisateur.instance().envoie("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp());
GestionnaireListeUtilisateur.instance().envoie("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau());
}
//debug
public void nommer2(String nom) {
setNom(nom);
GestionnaireListeUtilisateur.instance().envoie2("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp());
GestionnaireListeUtilisateur.instance().envoie2("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau());
}
@ -159,14 +159,14 @@ public class GestionnaireNom{
// Supprime l'utilisateur et prévient les autres.
public void supprimer() {
GestionnaireListeUtilisateur.instance().envoie("delete"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp());
GestionnaireListeUtilisateur.instance().envoie("delete"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau());
}
//debug
public void supprimer2() {
GestionnaireListeUtilisateur.instance().envoie2("delete"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp());
GestionnaireListeUtilisateur.instance().envoie2("delete"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau());
}

View file

@ -63,6 +63,7 @@ public class ListUI2 extends JFrame implements Runnable{
if (value instanceof TypeListeUtilisateur) {
TypeListeUtilisateur nextUser = (TypeListeUtilisateur) value;
setText(nextUser.nom);
if (nextUser.statut != null) {
if (nextUser.statut.equals("online")) {
setBackground(Color.GREEN);
} else if (nextUser.statut.equals("occupied")) {
@ -73,6 +74,7 @@ public class ListUI2 extends JFrame implements Runnable{
if (isSelected) {
setBackground(getBackground().darker());
}
}
} else {
setText("ERROR");
}
@ -134,7 +136,7 @@ public class ListUI2 extends JFrame implements Runnable{
scrollPane.setViewportView(list);
*/
listeInitial();
//listeInitiale();
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollPane.setViewportView(list);
@ -242,7 +244,7 @@ public class ListUI2 extends JFrame implements Runnable{
}
//mise en place de la liste de base
public void listeInitial() {
public void listeInitiale() {
ArrayList<TypeListeUtilisateur> listeUtilisateur = GestionnaireListeUtilisateur.instance().getListeUtilisateur();
DefaultListModel<TypeListeUtilisateur> defaultListModel = new DefaultListModel<TypeListeUtilisateur>();

View file

@ -206,7 +206,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{
inCheckBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) { //action
GestionnaireNom.instance().setDansReseau(inCheckBox.isSelected());
System.out.println(GestionnaireNom.instance().getdansReseau() );
System.out.println(GestionnaireNom.instance().getDansReseau() );
}
});
// inCheckBox (suite)