relation controleur/vue terminee

This commit is contained in:
m-gues 2020-11-26 10:53:35 +01:00
parent 06357235ca
commit 059b513f0a
3 changed files with 107 additions and 8 deletions

View file

@ -5,14 +5,50 @@ import java.awt.event.ActionListener;
public class ControleurConnexion implements ActionListener { public class ControleurConnexion implements ActionListener {
private enum Etat {DEBUT, ID_OK};
private VueConnexion vue; private VueConnexion vue;
private Etat etat;
public ControleurConnexion(VueConnexion vue) { public ControleurConnexion(VueConnexion vue) {
this.vue = vue; this.vue = vue;
this.etat = Etat.DEBUT;
} }
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
String input;
boolean inputOK = false;
if (this.etat == Etat.DEBUT) {
input=vue.getValeurTextField();
//Recherche dans la liste des utilisateurs enregistres, report sur inputOK
if (input.contentEquals("idvalide")) inputOK=true;
if (inputOK) {
this.etat=Etat.ID_OK;
//Envoi broadcast du message "JeSuisActif" et, attente du retour de la liste des utilisateurs actifs
//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 {
input=vue.getValeurTextField();
//Recherche dans la liste locale des utilisateurs connectes, report sur inputOK
if (input.contentEquals("nomvalide")) inputOK=true;
if (inputOK) {
//Creation de la vue principale
}
else vue.setTexteLabelInput("Ce nom est déjà utilisé, veuillez en choisir un autre");
}
} }
} }

View file

@ -9,13 +9,7 @@ import javax.swing.JPanel;
public class Main extends JPanel{ public class Main extends JPanel{
public static void main(String[] args) { public static void main(String[] args) {
Vue vc = new VueConnexion(); Vue vc = new VueConnexion();
JFrame fenetre = new JFrame("Connexion");
fenetre.add(vc);
fenetre.setSize(500, 500);
fenetre.setVisible(true);
} }
} }

View file

@ -1,10 +1,79 @@
package main; package main;
//Importe les librairies
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class VueConnexion extends Vue { 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() { public VueConnexion() {
super(); super();
controle = new ControleurConnexion(this);
//Creation fenetre
frame = new JFrame("Connexion");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(120, 40);
//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.pack();
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("");
}
} }