Class ChatApp

java.lang.Object
server.Controller.ChatApp
All Implemented Interfaces:
java.beans.PropertyChangeListener, java.util.EventListener

public class ChatApp
extends java.lang.Object
implements java.beans.PropertyChangeListener

Controller de l'application. C'est par cette méthode que chaque connexion et chaque session sont entamees Les differents attributs sont: actifsUsers: qui est la liste des utilisateurs actifs actuellement et connus par l'application me: qui est l'instance de la classe Utilisateur représentant l'utilisateur se connectant via cette instance de chatapp main: l'application de l'interface graphique qui s'occupe d'instancier chatapp runnerEcouteTCP: instance de runnerEcouteTCP, Thread permettant de recevoir des demandes de clavardage runnerEcouteUDP: instance de runnerEcouteUDP; Thread permettant de communiquer en UDP pour recevoir les demandes de connexion, deconnexion, changements de pseudo et leurs réponses associées connecte: booleen indiquant si l'on est connecte sur le reseau ou non db: instance permettant de se connecter à la base de donnees centralisee

  • Constructor Summary

    Constructors 
    Constructor Description
    ChatApp​(java.lang.String pseudo, java.lang.Integer port)
    Constructeur de l'application de chat
  • Method Summary

    Modifier and Type Method Description
    void activerEcouteTCP()
    Lance un thread pour ecouter les requetes TCP Informe le pcs que chatapp ecoute les notifications qu'il envoie
    void activerEcouteUDP()
    Lance le thread pour receptionner les requetes UDP
    java.lang.Boolean connexion​(java.lang.String pseudo)
    Methode appelee lors de la connexion de l'utilisateur, va prevenir les autres utlisateurs du reseau de l'arrivee de l'utilisateur sur celui-ci
    void deconnexion()
    Methode appelee lors de la deconnexion de l'utilisateur.
    void demarrerSession​(java.lang.String pseudo)
    Demarre une session de clavardage avec l'utilisateur dont le pseudo est entre en parametre
    ListUtilisateurs getActifUsers()
    Getter
    static ChatApp getInstance()  
    static ChatApp getInstance​(java.lang.String pseudo, java.lang.Integer port)
    Methode permettant de créer qu'une seule instance de chatapp
    Utilisateur getMe()
    Getter
    boolean isConnecte()  
    java.lang.Boolean modifierPseudo​(java.lang.String nouveau)
    Modification du pseudo de l'utilisateur Envoie en broadcast ses informations utilisateurs et son nouveau pseudo
    void propertyChange​(java.beans.PropertyChangeEvent evt)
    Handler des differents evenements que chatapp ecoute

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ChatApp

      public ChatApp​(java.lang.String pseudo, java.lang.Integer port)

      Constructeur de l'application de chat

      Parameters:
      pseudo - Pseudo de l'utilisateur
      port - Port de communication
  • Method Details

    • isConnecte

      public boolean isConnecte()
    • getInstance

      public static ChatApp getInstance​(java.lang.String pseudo, java.lang.Integer port)

      Methode permettant de créer qu'une seule instance de chatapp

      Parameters:
      pseudo - le pseudonyme que l'on souhaite donner à l'utilisateur
      port - le port auquel on souhaite receptionner les requêtees UDP
      Returns:
      une instance de chatapp
    • getInstance

      public static ChatApp getInstance()
      Returns:
      recupere l'instance de chatapp qui a ete creee au prealable
    • modifierPseudo

      public java.lang.Boolean modifierPseudo​(java.lang.String nouveau) throws java.io.IOException

      Modification du pseudo de l'utilisateur Envoie en broadcast ses informations utilisateurs et son nouveau pseudo

      Parameters:
      nouveau - correspond au nouveau pseudo
      Returns:
      False si modiferPseudo a echoue, True sinon
      Throws:
      java.io.IOException
    • connexion

      public java.lang.Boolean connexion​(java.lang.String pseudo) throws java.io.IOException

      Methode appelee lors de la connexion de l'utilisateur, va prevenir les autres utlisateurs du reseau de l'arrivee de l'utilisateur sur celui-ci

      Parameters:
      pseudo - le pseudonyme avec lequel l'utilisateur souhaite se connecter
      Returns:
      False si Connexion a echoue, True sinon
      Throws:
      java.io.IOException
    • activerEcouteTCP

      public void activerEcouteTCP()

      Lance un thread pour ecouter les requetes TCP Informe le pcs que chatapp ecoute les notifications qu'il envoie

    • demarrerSession

      public void demarrerSession​(java.lang.String pseudo)

      Demarre une session de clavardage avec l'utilisateur dont le pseudo est entre en parametre

      Parameters:
      pseudo - le pseudo de l'utilisateur avec lequel on souhaite communiquer
    • activerEcouteUDP

      public void activerEcouteUDP()

      Lance le thread pour receptionner les requetes UDP

    • deconnexion

      public void deconnexion() throws java.io.IOException

      Methode appelee lors de la deconnexion de l'utilisateur. Il va prevenir les utilisateurs du reseau de son depart.

      Throws:
      java.io.IOException
    • getMe

      public Utilisateur getMe()
      Getter
      Returns:
      Utilisateur associee a ChatApp
    • getActifUsers

      public ListUtilisateurs getActifUsers()
      Getter
      Returns:
      Liste des utilisateurs actifs associee a ChatApp
    • propertyChange

      public void propertyChange​(java.beans.PropertyChangeEvent evt)

      Handler des differents evenements que chatapp ecoute

      Specified by:
      propertyChange in interface java.beans.PropertyChangeListener
      Parameters:
      evt - l'evenement qui a ete indique par le pcs