clientjanet
Class FrameClient

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--alex.awt.alxFrame
                                |
                                +--clientjanet.FrameClient
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, alxChangeListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class FrameClient
extends alxFrame
implements java.awt.event.ActionListener, alxChangeListener

Fenêtre graphique client irc pour se connecter au serveur irc "serveur janet"

See Also:
Serialized Form

Inner Class Summary
private  class FrameClient.reception
          thread de réception des messages du serveur
 
Inner classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Inner classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
private  java.lang.String adresseIP
          adresse IP du serveur
private  boolean ContinueReception
          indique si le thread de réception doit continuer à écouter
private  boolean droitDeCreer
          droits de création du client
private  boolean droitDeStop
          droit d'arrêter le serveur
(package private)  java.lang.String identifiant
          identifiant du client qui utilise cette FrameClient
(package private)  java.io.BufferedReader in
          buffer de réception
(package private)  java.awt.Label Label_titre
           
(package private)  alxMenu Menu_command
           
(package private)  alxMenu Menu_edit
           
(package private)  alxMenu Menu_fenetres
           
(package private)  alxMenu Menu_file
           
(package private)  alxMenu Menu_help
           
(package private)  alxMenu Menu_perso
           
(package private)  alxMenu Menu_room
           
(package private)  alxMenuBar MenuBar_princ
           
(package private)  alxMenuItem MenuItem_ban
           
(package private)  alxMenuItem MenuItem_closeRoom
           
(package private)  alxMenuItem MenuItem_connect
           
(package private)  alxMenuItem MenuItem_copy
           
(package private)  alxMenuItem MenuItem_creerRoom
           
(package private)  alxMenuItem MenuItem_deconnect
           
(package private)  alxMenuItem MenuItem_exit
           
(package private)  alxMenuItem MenuItem_hostMachine
           
(package private)  alxMenuItem MenuItem_kick
           
(package private)  alxMenuItem MenuItem_quitterPerso
           
(package private)  alxMenuItem MenuItem_quitterRoom
           
(package private)  alxMenuItem MenuItem_stopServer
           
(package private)  alxMenuItem MenuItem_topic
           
private  ClientStarter monClientStarter
          interface parente qui a démarré FrameClient
(package private)  java.io.PrintWriter out
          buffer d'émission
(package private)  Panel_princ Panel_princ1
           
(package private)  alxPanel Panel_titre
           
private  java.lang.String password
          mot de passe du client
private  int PORTNUM
          Numéro de port à utiliser pour les communications client/serveur
private  java.net.Socket serveur
          connection avec le serveur
(package private)  alxTabbedPane TabbedPane1
           
private  java.util.Vector tablePersos
          tableaux des des chat persos ouverts
(package private)  java.util.Vector tableRooms
          tableaux des rooms ouvertes
private  FrameClient.reception threadReception
          thread d'écoute des messages reçus
 
Fields inherited from class java.awt.Frame
base, CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, frameSerializedDataVersion, HAND_CURSOR, icon, ICONIFIED, mbManagement, menuBar, MOVE_CURSOR, N_RESIZE_CURSOR, nameCounter, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, ownedWindows, resizable, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, serialVersionUID, state, SW_RESIZE_CURSOR, TEXT_CURSOR, title, W_RESIZE_CURSOR, WAIT_CURSOR, weakThis
 
Fields inherited from class java.awt.Window
active, dbg, focusMgr, inputContext, inputContextLock, OPENED, ownedWindowList, warningString, windowListener, windowSerializedDataVersion
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, listeningBoundsChildren, listeningChildren, maxSize, ncomponents, printing, printingThreads
 
Fields inherited from class java.awt.Component
accessibleContext, actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, privateKey, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
FrameClient(java.lang.String aIdentifiant, ClientStarter aClientStarter)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent evt)
          clic sur les menus
protected  void affiche(java.lang.String texte)
          affiche un texte dans la zône d'affichage de l'onglet status
 void banClic()
           
private  void closeRoom(java.lang.String nomRoom)
          demande au serveur de fermer la room de ce nom
 void closeRoomClic()
           
private  boolean connecte()
          établit la connection avec le serveur
 void connectionClic()
          clic sur le menu connection
Boîtes de dialogues pour demander nom, adresseIP, port, mot de passe
 void copyClic()
           
protected  void creerRoom(java.lang.String nomRoom)
          envoie au serveur un ordre de création de room à ce nom.
Si le client a le droit de créer une room, elle est créée.
Le serveur retourne alors un message annonçant cette création
 void creerRoomClic()
           
protected  boolean deconnecte()
          ferme la connection avec le serveur
 void deconnectionClic()
           
 void demarre()
          Démarre une connection avec le serveur
private  void ecoute()
          démarre le thread d'écoute des messages du serveur
 void entrerPerso(java.lang.String nomPerso)
          Méthode à appeler lorsque le client débute un chat perso pour créer l'onglet de dialogue
protected  void entrerRoom(java.lang.String nomRoom)
          envoie au serveur une demande d'entrée dans la room de ce nom.
protected  boolean envoyer(byte commande, java.lang.String zone, java.lang.String destinataire, boolean bool, java.lang.String texte)
          envoie un ircmessage au serveur
private  boolean envoyer(ircmessage aIrcmessage)
          envoie un ircmessage au serveur
private  boolean envoyer(java.lang.String aIrcmessage)
          envoie un ircmessage au serveur
 void exitClic()
           
 java.lang.String getAdresseIP()
          retourne l'adresse IP du serveur
 int getPortNumber()
          retourne le port des dialogues avec le serveur, par défaut 2411
 void hostMachineClic()
           
private  void InitGraphique()
          initialisation des composants graphiques
 void itemWindowsClic(java.awt.event.ActionEvent evt)
          clic sur un MenuItem du menu Windows
 void kickClic()
           
protected  void processWindowEvent(java.awt.event.WindowEvent e)
          événements fenêtre
protected  void quitterPerso(java.lang.String nomPerso)
          Méthode à appeler lorsque le client quitte un chat perso pour supprimer l'onglet de dialogue
 void quitterPersoClic()
           
protected  void quitterRoom(java.lang.String nomRoom)
          notifie le serveur que le client a quitté le serveur de ce nom
 void quitterRoomClic()
           
private  void raffraichiLesDroits()
          raffraichi graphiquement les droits du client
protected  Panel_abstract recherchePanel_abstract(java.util.Vector tableOfPanel_abstract, java.lang.String aNom)
          Recherche un Panel_abstract de ce nom dans ce Vector
private  void recu(ircmessage unMessage)
          traite les messages reçus du serveur
 void setAdresseIP(java.lang.String aAdresseIP)
          change l'adresse IP du serveur
 void setPortNumber(int aPortNumber)
          change le port des dialogues avec le serveur
 void stateChanged(alxChangeEvent e)
          événement changement d'onglet sur le TabbedPane
 void stopServerClic()
           
protected  void supprimeClient(java.lang.String IDUser)
          Méthode à appeler lorsque le serveur annonce qu'un client s'est déconnecté pour le supprimer des listes graphiques
private  void supprimeLesDroits()
          supprime tous les droits du client
protected  boolean supprimeRoomdeListe(Panel_room monPanel_room)
           
protected  boolean supprimeRoomdeListe(java.lang.String nomRoom)
          Méthode à appeler lorsque le client quitte la room de ce nom, pour supprimer l'onglet graphique de la room
 void topicClic()
           
 
Methods inherited from class alex.awt.alxFrame
getContentPane, setAlxMenuBar
 
Methods inherited from class java.awt.Frame
, addNotify, addToFrameList, constructComponentName, finalize, getAccessibleContext, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, initIDs, isResizable, paramString, postProcessKeyEvent, readObject, remove, removeFromFrameList, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle, writeObject
 
Methods inherited from class java.awt.Window
addOwnedWindow, addWindowListener, adjustListeningChildren, applyResourceBundle, applyResourceBundle, connectOwnedWindow, dispatchEventImpl, dispose, eventEnabled, getFocusOwner, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, hide, isActive, isShowing, nextFocus, ownedInit, pack, postEvent, postWindowEvent, preProcessKeyEvent, processEvent, removeOwnedWindow, removeWindowListener, resetGC, setCursor, setFocusOwner, setWarningString, show, toBack, toFront, transferFocus
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventToSelf, doLayout, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getMouseEventTarget, getPreferredSize, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, numListening, paint, paintComponents, paintHeavyweightComponents, postsOldMouseEvents, preferredSize, print, printComponents, printHeavyweightComponents, processContainerEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFont, setLayout, update, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getSize, getToolkitImpl, getTreeLock, getWidth, getWindowForObject, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isEnabledImpl, isFocusTraversable, isLightweight, isOpaque, isRecursivelyVisible, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

PORTNUM

private int PORTNUM
Numéro de port à utiliser pour les communications client/serveur

adresseIP

private java.lang.String adresseIP
adresse IP du serveur

identifiant

java.lang.String identifiant
identifiant du client qui utilise cette FrameClient

password

private java.lang.String password
mot de passe du client

droitDeCreer

private boolean droitDeCreer
droits de création du client

droitDeStop

private boolean droitDeStop
droit d'arrêter le serveur

monClientStarter

private ClientStarter monClientStarter
interface parente qui a démarré FrameClient

tableRooms

java.util.Vector tableRooms
tableaux des rooms ouvertes

tablePersos

private java.util.Vector tablePersos
tableaux des des chat persos ouverts

serveur

private java.net.Socket serveur
connection avec le serveur

in

java.io.BufferedReader in
buffer de réception

out

java.io.PrintWriter out
buffer d'émission

threadReception

private FrameClient.reception threadReception
thread d'écoute des messages reçus

ContinueReception

private boolean ContinueReception
indique si le thread de réception doit continuer à écouter

MenuBar_princ

alxMenuBar MenuBar_princ

Menu_file

alxMenu Menu_file

MenuItem_connect

alxMenuItem MenuItem_connect

MenuItem_deconnect

alxMenuItem MenuItem_deconnect

MenuItem_exit

alxMenuItem MenuItem_exit

Menu_edit

alxMenu Menu_edit

MenuItem_copy

alxMenuItem MenuItem_copy

Menu_command

alxMenu Menu_command

MenuItem_creerRoom

alxMenuItem MenuItem_creerRoom

MenuItem_stopServer

alxMenuItem MenuItem_stopServer

Menu_room

alxMenu Menu_room

MenuItem_kick

alxMenuItem MenuItem_kick

MenuItem_ban

alxMenuItem MenuItem_ban

MenuItem_topic

alxMenuItem MenuItem_topic

MenuItem_quitterRoom

alxMenuItem MenuItem_quitterRoom

MenuItem_closeRoom

alxMenuItem MenuItem_closeRoom

Menu_perso

alxMenu Menu_perso

MenuItem_hostMachine

alxMenuItem MenuItem_hostMachine

MenuItem_quitterPerso

alxMenuItem MenuItem_quitterPerso

Menu_fenetres

alxMenu Menu_fenetres

Menu_help

alxMenu Menu_help

Panel_titre

alxPanel Panel_titre

Label_titre

java.awt.Label Label_titre

TabbedPane1

alxTabbedPane TabbedPane1

Panel_princ1

Panel_princ Panel_princ1
Constructor Detail

FrameClient

public FrameClient(java.lang.String aIdentifiant,
                   ClientStarter aClientStarter)
            throws java.lang.Exception
Parameters:
aIdentifiant - identifiant du client qui utilise cette FrameClient
aClientStarter - interface parente qui a démarré FrameClient
Throws:
java.lang.Exception - erreur de création de la Fenêtre, l'objet doit être détruit
Method Detail

demarre

public void demarre()
Démarre une connection avec le serveur

getAdresseIP

public java.lang.String getAdresseIP()
retourne l'adresse IP du serveur

setAdresseIP

public void setAdresseIP(java.lang.String aAdresseIP)
change l'adresse IP du serveur

getPortNumber

public int getPortNumber()
retourne le port des dialogues avec le serveur, par défaut 2411

setPortNumber

public void setPortNumber(int aPortNumber)
change le port des dialogues avec le serveur

affiche

protected void affiche(java.lang.String texte)
affiche un texte dans la zône d'affichage de l'onglet status
See Also:
Panel_princ

creerRoom

protected void creerRoom(java.lang.String nomRoom)
envoie au serveur un ordre de création de room à ce nom.
Si le client a le droit de créer une room, elle est créée.
Le serveur retourne alors un message annonçant cette création

entrerRoom

protected void entrerRoom(java.lang.String nomRoom)
envoie au serveur une demande d'entrée dans la room de ce nom.

quitterRoom

protected void quitterRoom(java.lang.String nomRoom)
notifie le serveur que le client a quitté le serveur de ce nom

closeRoom

private void closeRoom(java.lang.String nomRoom)
demande au serveur de fermer la room de ce nom

supprimeRoomdeListe

protected boolean supprimeRoomdeListe(java.lang.String nomRoom)
Méthode à appeler lorsque le client quitte la room de ce nom, pour supprimer l'onglet graphique de la room
See Also:
Panel_room

supprimeRoomdeListe

protected boolean supprimeRoomdeListe(Panel_room monPanel_room)

entrerPerso

public void entrerPerso(java.lang.String nomPerso)
Méthode à appeler lorsque le client débute un chat perso pour créer l'onglet de dialogue
Parameters:
nomPerso - identifiant du client avec qui il discutte
See Also:
Panel_perso

quitterPerso

protected void quitterPerso(java.lang.String nomPerso)
Méthode à appeler lorsque le client quitte un chat perso pour supprimer l'onglet de dialogue
Parameters:
nomPerso - identifiant du client avec qui il discutte
See Also:
Panel_perso

supprimeClient

protected void supprimeClient(java.lang.String IDUser)
Méthode à appeler lorsque le serveur annonce qu'un client s'est déconnecté pour le supprimer des listes graphiques

supprimeLesDroits

private void supprimeLesDroits()
supprime tous les droits du client

raffraichiLesDroits

private void raffraichiLesDroits()
raffraichi graphiquement les droits du client

connecte

private boolean connecte()
établit la connection avec le serveur

ecoute

private void ecoute()
démarre le thread d'écoute des messages du serveur

envoyer

protected boolean envoyer(byte commande,
                          java.lang.String zone,
                          java.lang.String destinataire,
                          boolean bool,
                          java.lang.String texte)
envoie un ircmessage au serveur
See Also:
ircmessage

envoyer

private boolean envoyer(ircmessage aIrcmessage)
envoie un ircmessage au serveur

envoyer

private boolean envoyer(java.lang.String aIrcmessage)
envoie un ircmessage au serveur
Parameters:
aIrcmessage - texte ircmessage.toString()
See Also:
ircmessage

recu

private void recu(ircmessage unMessage)
traite les messages reçus du serveur

recherchePanel_abstract

protected Panel_abstract recherchePanel_abstract(java.util.Vector tableOfPanel_abstract,
                                                 java.lang.String aNom)
Recherche un Panel_abstract de ce nom dans ce Vector
Parameters:
tableOfPanel_abstract - table dans laquelle chercher
aNom - nom du Panel_abstract à chercher
Returns:
le Panel_abstract cherché ou null si pas trouvé

deconnecte

protected boolean deconnecte()
ferme la connection avec le serveur

connectionClic

public void connectionClic()
clic sur le menu connection
Boîtes de dialogues pour demander nom, adresseIP, port, mot de passe

deconnectionClic

public void deconnectionClic()

exitClic

public void exitClic()

copyClic

public void copyClic()

creerRoomClic

public void creerRoomClic()

stopServerClic

public void stopServerClic()

quitterRoomClic

public void quitterRoomClic()

closeRoomClic

public void closeRoomClic()

hostMachineClic

public void hostMachineClic()

kickClic

public void kickClic()

banClic

public void banClic()

topicClic

public void topicClic()

quitterPersoClic

public void quitterPersoClic()

itemWindowsClic

public void itemWindowsClic(java.awt.event.ActionEvent evt)
clic sur un MenuItem du menu Windows

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)
clic sur les menus
Specified by:
actionPerformed in interface java.awt.event.ActionListener

stateChanged

public void stateChanged(alxChangeEvent e)
événement changement d'onglet sur le TabbedPane
Specified by:
stateChanged in interface alxChangeListener

processWindowEvent

protected void processWindowEvent(java.awt.event.WindowEvent e)
événements fenêtre
Overrides:
processWindowEvent in class java.awt.Window

InitGraphique

private void InitGraphique()
                    throws java.lang.Exception
initialisation des composants graphiques