package controleur; import modele.Jeu; import javax.swing.JLabel; import javax.swing.JPanel; import controleur.GLOBAL; import modele.JeuClient; import modele.JeuServeur; import outils.connexion.AsyncResponse; import outils.connexion.ClientSocket; import outils.connexion.Connection; import outils.connexion.ServeurSocket; import vue.Arene; import vue.ChoixJoueur; import vue.EntreeJeu; public class Controle implements AsyncResponse { private EntreeJeu frmEntreeJeu ; private ChoixJoueur frmChoixJoueur; private Arene frmArene; private Jeu leJeu; /** * Constructeur */ private Controle() { this.frmEntreeJeu = new EntreeJeu(this) ; this.frmEntreeJeu.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub new Controle(); } public void evenementEntreeJeu(String info) { // if(info.contains("serveur")) { System.out.println("srv"); // new ServeurSocket(this, GLOBAL.PORT); this.frmArene = new Arene(); this.frmArene.setVisible(true); this.leJeu = new JeuServeur(this); ((JeuServeur)this.leJeu).constructionMurs(); frmEntreeJeu.dispose(); }else { System.out.println("ip"); // new ClientSocket(this, info, GLOBAL.PORT); } } @Override public void reception(Connection connection, String ordre, Object info) { // TODO Auto-generated method stub switch (ordre){ case "connexion": if(!(this.leJeu instanceof JeuServeur)) { frmEntreeJeu.dispose(); this.leJeu = new JeuClient(this); this.leJeu.connexion(connection); this.frmArene = new Arene(); this.frmChoixJoueur = new ChoixJoueur(this); this.frmChoixJoueur.setVisible(true); }else { this.leJeu.connexion(connection); } break; case "reception": leJeu.reception(connection, info); } } public void evenementChoixJoueur(String pseudo, int numPerso) { // this.frmChoixJoueur.dispose(); this.frmArene.setVisible(true); String pseudoNumPerso = "pseudo" + GLOBAL.separateur + pseudo + GLOBAL.separateur + numPerso; ((JeuClient)this.leJeu).envoi(pseudoNumPerso); } public void envoi(Connection connection, Object obj) { connection.envoi(obj); } public void evenementJeuServeur(String ordre, Object info) { switch(ordre) { case "ajout mur": this.frmArene.ajoutMurs(info); break; case "ajout panel murs": leJeu.envoi((Connection)info, this.frmArene.jpnMurs()); break; case "ajout jlabel jeu": this.frmArene.ajoutLabelJeu((JLabel) info); this.frmArene.jpnJeu.repaint(); break; case "ajout joueurs": leJeu.envoi((Connection)info, this.frmArene.getJpnJeu()); break; } } public void evenementJeuClient(String ordre, Object info) { switch(ordre) { case "mettre murs": this.frmArene.setJpnMurs((JPanel)info); break; case "modif panel jeu": this.frmArene.setJpnJeu((JPanel)info); break; } } }