Chat
Class AWTConsole

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--Chat.BasicWindow
                                |
                                +--Chat.AWTConsole
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, Console, java.util.EventListener, java.awt.image.ImageObserver, java.awt.event.KeyListener, java.awt.MenuContainer, java.io.Serializable, java.awt.event.WindowListener

class AWTConsole
extends BasicWindow
implements Console, java.awt.event.ActionListener, java.awt.event.KeyListener

Implementation of AWT based console. Console output is represented by TextArea component, user input is taken from TextField. Several buttons are available to invoke console commands. Also features a List of other users.

See Also:
TextConsole, Serialized Form

Inner Class Summary
(package private)  class AWTConsole.Connect
          A dialog for connecting to the network.
(package private)  class AWTConsole.Setup
          A dialog for setting up the local user identity - nickname, host and port.
 
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.awt.Button clearButton
          A button for appropriate console command.
private  java.awt.Button connectButton
          A button for appropriate console command.
private  java.awt.Button disconnectButton
          A button for appropriate console command.
private  java.awt.TextField inputField
          The input field for outgoing message to be sent.
private  java.lang.String line
          Stores a line to be read by Sender thread .
private  boolean ready
          Shows whether a message/command is ready to be read by Sender thread .
private  java.awt.Button setupButton
          A button for appropriate console command.
private  java.awt.TextArea textArea
          The main text area for received messages.
private  java.awt.List userList
          The list of other users on the net.
 
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, showWithParent, 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, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, changeSupport, 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
(package private) AWTConsole()
          Creates and initalizes the window, places the controls into a GridBag layout.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Handles buttons pressed, invokes dialogs and console commands.
 void close()
          Closes the console window.
 void error(java.lang.String message)
          Writes an error message to the console - TextArea control.
 void keyPressed(java.awt.event.KeyEvent e)
           
 void keyReleased(java.awt.event.KeyEvent e)
           
 void keyTyped(java.awt.event.KeyEvent e)
          Checks a key pressed for VK_ENTER and sends the entered message out.
private  boolean lineToRead(java.lang.String message)
          Tries to passes the string on to a Sender thread, waiting on readLine() method.
 java.lang.String readLine()
          Reads a line from the console, blocks until it is available.
 void setTitle(java.lang.String title)
          Sets a title of the window.
 void updateUserList(java.util.Collection list)
          Updates a user list.
 void windowClosing(java.awt.event.WindowEvent e)
           
 void writeLine(java.lang.String message)
          Writes an error message to the console - TextArea control.
 
Methods inherited from class Chat.BasicWindow
windowActivated, windowClosed, windowDeactivated, windowDeiconified, windowIconified, windowOpened
 
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, 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, processWindowEvent, 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, countComponents, createHierarchyEvents, createChildHierarchyEvents, 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, checkGD, 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, 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, checkImage, checkImage, checkWindowClosingException, 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

textArea

private java.awt.TextArea textArea
The main text area for received messages.

inputField

private java.awt.TextField inputField
The input field for outgoing message to be sent.

userList

private java.awt.List userList
The list of other users on the net.

connectButton

private java.awt.Button connectButton
A button for appropriate console command.

disconnectButton

private java.awt.Button disconnectButton
A button for appropriate console command.

setupButton

private java.awt.Button setupButton
A button for appropriate console command.

clearButton

private java.awt.Button clearButton
A button for appropriate console command.

ready

private boolean ready
Shows whether a message/command is ready to be read by Sender thread .

line

private java.lang.String line
Stores a line to be read by Sender thread .
Constructor Detail

AWTConsole

AWTConsole()
Creates and initalizes the window, places the controls into a GridBag layout.
Method Detail

lineToRead

private boolean lineToRead(java.lang.String message)
Tries to passes the string on to a Sender thread, waiting on readLine() method. If there's no thread waiting, returns with false.
Parameters:
message - a message string.
Returns:
true when succesful
See Also:
readLine()

close

public void close()
Description copied from interface: Console
Closes the console window.
Specified by:
close in interface Console
Following copied from interface: Chat.Console
Parameters:
title - the desired title.

readLine

public java.lang.String readLine()
Reads a line from the console, blocks until it is available. A call to lineToRead() method causes this method to return.
Specified by:
readLine in interface Console
Returns:
the line read.
See Also:
lineToRead(String message)

writeLine

public void writeLine(java.lang.String message)
Writes an error message to the console - TextArea control.
Specified by:
writeLine in interface Console
Parameters:
message - the message to be written.

error

public void error(java.lang.String message)
Writes an error message to the console - TextArea control.
Specified by:
error in interface Console
Parameters:
message - the message to be written.

updateUserList

public void updateUserList(java.util.Collection list)
Description copied from interface: Console
Updates a user list.
Specified by:
updateUserList in interface Console
Following copied from interface: Chat.Console
Parameters:
list - a collection of String objects.

setTitle

public void setTitle(java.lang.String title)
Description copied from interface: Console
Sets a title of the window.
Specified by:
setTitle in interface Console
Overrides:
setTitle in class java.awt.Frame
Following copied from interface: Chat.Console
Parameters:
title - the desired title.

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Handles buttons pressed, invokes dialogs and console commands.
Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e - the event.

windowClosing

public void windowClosing(java.awt.event.WindowEvent e)
Overrides:
windowClosing in class BasicWindow

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Checks a key pressed for VK_ENTER and sends the entered message out.
Specified by:
keyTyped in interface java.awt.event.KeyListener
Parameters:
e - the event.

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Specified by:
keyReleased in interface java.awt.event.KeyListener