talx x1.0.5

talx.view
Class MailSystemDesktop

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended bytalx.view.MailSystemDesktop
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class MailSystemDesktop
extends javax.swing.JFrame

This class is a JFrame that provides the main dekstop frame that all Think And Link GUI components must be added to. This class manages the focus by monitoring the controller and the components being added to the desktop. Whenever the GUIState focus flags are changed, the desktop will respond by requesting focus on the default element where the default element is

  1. The dialogs, if the DIALOG_FOCUS flag is set
  2. The composer, if the COMPOSE_FOCUS flag is set
  3. The reader, if the READER_FOCUS flag is set
  4. The most recently added desktop TALComponent, if there are any
  5. The inbox, if the INBOX_FOCUS flag is set
  6. This frame itself
Similarly, the focus will be traversed in the same order, except that when the dialogs are focusable, the focus will cycle through those only.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String MARQUE_KEY
          GUIState key for marque text.
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
MailSystemDesktop(GameManager gm, Settings settings)
           
MailSystemDesktop(GameManager gm, Settings settings, java.awt.Dimension screenSize)
          This Constructor pretends that the desktop is as big as the given Dimension because Harrison incorrectly beleives that this solves more problems than it creates.
 
Method Summary
 void addLeft(java.awt.Component c, boolean immediately)
          Adds the given component to the left of the desktop.
 java.lang.String addMarque(boolean onTop, java.awt.Color background, double height)
          Adds a marque and returns the GUIState key for its text value.
 void addRight(java.awt.Component c, boolean immediately)
          Adds the given component to the right of the desktop.
 void addToDesktop(java.awt.Component c, boolean immediately)
          Adds the given component to the desktop.
 ComposerGUI getComposer()
           
 DialogManager getDialogs()
           
 InboxGUI getInbox()
           
 java.awt.Cursor getNullCursor()
          Returns an invisible cursor.
 ReaderGUI getReader()
           
 java.awt.Cursor getTextCursor()
          Returns an I-bar style cursor.
 void refocus()
          Puts the focus on the default component if not already there.
 void removeFromDesktop(java.awt.Component c, boolean immediately)
          Removes the given component from the desktop.
 void removeMarque(java.lang.String key)
          Removes a marque from the desktop.
 void setController(Controller c)
          Called by controller in its constructor.
 java.lang.String toString()
           
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, 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, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

MARQUE_KEY

public static final java.lang.String MARQUE_KEY
GUIState key for marque text.

See Also:
Constant Field Values
Constructor Detail

MailSystemDesktop

public MailSystemDesktop(GameManager gm,
                         Settings settings)

MailSystemDesktop

public MailSystemDesktop(GameManager gm,
                         Settings settings,
                         java.awt.Dimension screenSize)
This Constructor pretends that the desktop is as big as the given Dimension because Harrison incorrectly beleives that this solves more problems than it creates.

Method Detail

getInbox

public InboxGUI getInbox()

getReader

public ReaderGUI getReader()

getComposer

public ComposerGUI getComposer()

getDialogs

public DialogManager getDialogs()

refocus

public void refocus()
Puts the focus on the default component if not already there.


addToDesktop

public void addToDesktop(java.awt.Component c,
                         boolean immediately)
Adds the given component to the desktop. If the component is not a top-level component (ie the inbox, reader or composer), and it is a TALComponent, it will be added to the list of focusable components. If this method is not being called from within the swing EventQueue, it cannot safely be performed immediately. From within the EventQueue, it can be performed either way, however, subtle timing bugs may result from queuing it up later unless you do a thorough timing analysis.

Parameters:
c - the component to add.
immediately - if true, the action is taken immediately. Otherwise, this action is added to the EventQueue and performed in a swing thread-safe manner.

removeFromDesktop

public void removeFromDesktop(java.awt.Component c,
                              boolean immediately)
Removes the given component from the desktop. If this method is not being called from within the swing EventQueue, it cannot be performed immediately. From within the EventQueue, it can be performed either way, however, subtle timing bugs may result from queuing it up later unless you do a thorough timing analysis.

Parameters:
c - the component to remove.
immediately - if true, the action is taken immediately. Otherwise, this action is added to the EventQueue and performed in a swing thread-safe manner.
Throws:
java.lang.NullPointerException - if component is null.

addRight

public void addRight(java.awt.Component c,
                     boolean immediately)
Adds the given component to the right of the desktop. If this method is not being called from within the swing EventQueue, it cannot be performed immediately. From within the EventQueue, it can be performed either way, however, subtle timing bugs may result from queuing it up later unless you do a thorough timing analysis.

Parameters:
c - the component to add.
immediately - if true, the action is taken immediately. Otherwise, this action is added to the EventQueue and performed in a swing thread-safe manner.

addLeft

public void addLeft(java.awt.Component c,
                    boolean immediately)
Adds the given component to the left of the desktop. If this method is not being called from within the swing EventQueue, it cannot be performed immediately. From within the EventQueue, it can be performed either way, however, subtle timing bugs may result from queuing it up later unless you do a thorough timing analysis.

Parameters:
c - the component to add.
immediately - if true, the action is taken immediately. Otherwise, this action is added to the EventQueue and performed in a swing thread-safe manner.

addMarque

public java.lang.String addMarque(boolean onTop,
                                  java.awt.Color background,
                                  double height)
Adds a marque and returns the GUIState key for its text value. The marque is added to the desktop and subscribed to the controller. The marque's text will be taken from the controller change events. It is expecting its key (the return value from this method) to be a key in the GUIState that holds either a Marque.ColoredText or a String. The marque is added in a thread-safe manner by queueing the addition to the AWT event queue. This means that the marque will not actually appear until all more recent events have been processed.

Parameters:
onTop - if true, the marque is added above the main components, if false, the marque is added below the main components.
background - the background color for the marque. The foreground color is set by using a Marque.ColoredText object to supply the text in the GUIState.
height - the percent of the height of the desktop window that should be occupied by the marque.
Throws:
java.lang.IllegalStateException - if the setController method has not been invoked on this desktop.

removeMarque

public void removeMarque(java.lang.String key)
Removes a marque from the desktop.

Parameters:
key - the key (return value from addMarque) for the marque to be removed.
Throws:
java.lang.NullPointerException - if the controller has not been set for this desktop.

getTextCursor

public java.awt.Cursor getTextCursor()
Returns an I-bar style cursor.


getNullCursor

public java.awt.Cursor getNullCursor()
Returns an invisible cursor.


setController

public void setController(Controller c)
Called by controller in its constructor.


toString

public java.lang.String toString()

talx x1.0.5

© 2001-2005 University of Oregon.
Eugene OR 97403, U.S.A. All Rights Reserved.