début branche réunion
This commit is contained in:
parent
5fd722d95b
commit
f6b86d7aea
2 changed files with 180 additions and 0 deletions
101
POO/src/main/ControleurConnexion.java
Normal file
101
POO/src/main/ControleurConnexion.java
Normal file
|
@ -0,0 +1,101 @@
|
|||
package main;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.IOException;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
import communication.*;
|
||||
|
||||
public class ControleurConnexion implements ActionListener {
|
||||
|
||||
private enum Etat {DEBUT, ID_OK};
|
||||
|
||||
private VueConnexion vue;
|
||||
private Etat etat;
|
||||
private CommunicationUDP comUDP;
|
||||
private String id;
|
||||
private String pseudo;
|
||||
|
||||
public ControleurConnexion(VueConnexion vue) {
|
||||
this.vue = vue;
|
||||
this.etat = Etat.DEBUT;
|
||||
this.id="";
|
||||
//Pour les tests, changer pour un truc plus général quand on change CommunicationUDP
|
||||
try {
|
||||
this.comUDP = new CommunicationUDP(2208, 2209, new int[] {2906});
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
boolean inputOK = false;
|
||||
if (this.etat == Etat.DEBUT) {
|
||||
id=vue.getValeurTextField();
|
||||
|
||||
//Recherche dans la liste des utilisateurs enregistres, report sur inputOK
|
||||
inputOK = id.contentEquals("idvalide");
|
||||
|
||||
if (inputOK) {
|
||||
this.etat=Etat.ID_OK;
|
||||
|
||||
//Envoi broadcast du message "JeSuisActif" et, attente du retour de la liste des utilisateurs actifs
|
||||
try {
|
||||
comUDP.sendMessageConnecte();
|
||||
} catch (UnknownHostException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
} catch (IOException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
Thread.sleep(2);
|
||||
} catch (InterruptedException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
//Mise en place de la demande du pseudo
|
||||
vue.setTexteLabelInput("Veuillez entrer votre nom");
|
||||
vue.resetValeurTextField();
|
||||
inputOK=false;
|
||||
}
|
||||
else vue.setTexteLabelInput("Identifiant invalide, veuillez réessayer");
|
||||
}
|
||||
else {
|
||||
pseudo=vue.getValeurTextField();
|
||||
|
||||
//Recherche dans la liste locale des utilisateurs connectes, report sur inputOK
|
||||
inputOK = !Communication.containsUserFromPseudo(pseudo);
|
||||
|
||||
if (inputOK) {
|
||||
//Reglage de l'utilisateur
|
||||
try {
|
||||
Utilisateur.setSelf(id, pseudo, "localhost");
|
||||
} catch (UnknownHostException e2) {
|
||||
// TODO Auto-generated catch block
|
||||
e2.printStackTrace();
|
||||
}
|
||||
|
||||
//Broadcast du pseudo
|
||||
try {
|
||||
comUDP.sendMessageInfoPseudo();
|
||||
} catch (UnknownHostException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
} catch (IOException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
}
|
||||
//Creation de la vue principale
|
||||
vue.setTexteLabelInput("Congrations you done it");
|
||||
}
|
||||
else vue.setTexteLabelInput("Ce nom est déjà utilisé, veuillez en choisir un autre");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
79
POO/src/main/VueConnexion.java
Normal file
79
POO/src/main/VueConnexion.java
Normal file
|
@ -0,0 +1,79 @@
|
|||
package main;
|
||||
|
||||
//Importe les librairies
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import javax.swing.*;
|
||||
|
||||
public class VueConnexion extends Vue {
|
||||
|
||||
//Penser à regler la taille de la fenetre et a la centrer !
|
||||
|
||||
//Elements vue
|
||||
private JFrame frame;
|
||||
private JPanel panel;
|
||||
private JButton boutonValider;
|
||||
private JTextField input;
|
||||
private JLabel labelInput;
|
||||
|
||||
//Controleur
|
||||
ControleurConnexion controle;
|
||||
|
||||
public VueConnexion() {
|
||||
super();
|
||||
controle = new ControleurConnexion(this);
|
||||
|
||||
//Creation fenetre
|
||||
frame = new JFrame("Connexion");
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setSize(400, 100);
|
||||
frame.setLocationRelativeTo(null);
|
||||
|
||||
//Creation panel
|
||||
panel = new JPanel(new GridLayout(3,1));
|
||||
|
||||
//Ajout elements
|
||||
ajouterElements();
|
||||
|
||||
//Regle le bouton par défaut
|
||||
frame.getRootPane().setDefaultButton(boutonValider);
|
||||
|
||||
//Ajoute le panel a la fenetre
|
||||
frame.getContentPane().add(panel, BorderLayout.CENTER);
|
||||
|
||||
//Affiche la fenetre
|
||||
frame.setVisible(true);
|
||||
}
|
||||
|
||||
private void ajouterElements() {
|
||||
|
||||
//Cree les elements
|
||||
input = new JTextField();
|
||||
labelInput = new JLabel("Veuillez entrer votre identifiant unique");
|
||||
boutonValider = new JButton("Valider");
|
||||
|
||||
//Le controleur guette les evenements du bouton
|
||||
boutonValider.addActionListener(controle);
|
||||
|
||||
//Ajoute les elements
|
||||
panel.add(labelInput);
|
||||
panel.add(input);
|
||||
panel.add(boutonValider);
|
||||
|
||||
labelInput.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
|
||||
}
|
||||
|
||||
|
||||
//Getters et setters
|
||||
public void setTexteLabelInput(String text) {
|
||||
labelInput.setText(text);
|
||||
}
|
||||
|
||||
public String getValeurTextField() {
|
||||
return input.getText();
|
||||
}
|
||||
|
||||
public void resetValeurTextField() {
|
||||
input.setText("");
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue