User.v1_1
Class UserWindow

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--User.v1_1.UserWindow
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class UserWindow
extends javax.swing.JFrame
implements java.awt.event.ActionListener

UserWindow is the graphical user interface for the UserAgent. When the user is successfully logged into a PaP domain, the LoginAgent is plugged out and a UserAgent is plugged in at the user's node. Through the UserWindow he can both plugin an actor with the selected role or plugout one of the previously plugged in actors. The codebase to use for actorplugin can be set through the UserWindow.

When the user wants to logout from the domain, he can either choose to just logout or to suspend his current session before loggint out. When the former is selected the actors that the user has plugged in is simply plugged out. If the latter is selected all the plugged in actors are sent a SessionSuspend request. The actors then return their current state. This information is added to the UserAgent's Session-object and sent to the Director in the form of a SessionUpdate request. The Director then adds the Session-object to the SessionBase.

No matter how the user loggs out, the UserAgent is plugged out and a LoginAgent is plugged in.

Version:
1.0 - 01.05.02
Author:
Lars Erik Liljebäck
See Also:
UserAgent, Serialized Form

Inner classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
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  UserAgent agent
          Reference to this window's UserAgent
private  javax.swing.JPanel buttonPane
           
private  javax.swing.JButton cancelButton
           
private  java.awt.CardLayout card
           
private  javax.swing.JPanel contentPane
           
private  javax.swing.JMenuItem plugin
           
private  java.lang.String[] pluginHeaders
           
private  Table pluginTable
           
private  int[] pluginWidths
           
private  javax.swing.JMenuItem plugout
           
private  javax.swing.JButton plugoutButton
           
private  java.lang.String[] plugoutHeaders
           
private  javax.swing.JPanel plugoutPane
           
private  Table plugoutTable
           
private  int[] plugoutWidths
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, defaultCloseOperation, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
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
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, width, windowClosingException, windowListenerK, visible, x, y
 
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
UserWindow(UserAgent agent)
          Creates a new UserWindow.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ae)
          Handles the events generated when the user selects one of the menuitems or pushes a button.
 void addPluggedInActor(java.lang.String actorGAI)
          Adds the GAI of an actor that has been plugged in by this UserAgent.
private  void dbg(java.lang.String dbg)
          Writes the specified string to the agent's baseframe window.
 java.awt.Color getBackgroundColor()
          Returns the background color used by the UserWindow and its components.
static void main(java.lang.String[] args)
          Used for debugging.
 void setBackgroundColor(java.awt.Color c)
          Sets the background color used by the UserWindow and its components.
 void setRoleList(java.util.ArrayList list)
          Sets the list of roles that can be plugged in by the UserAgent.
 void setWindowSize(java.awt.Dimension dimension)
          Sets the height and width of the window.
 void setWindowTitle(java.lang.String title)
          Sets the title of the window.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, createRootPaneException, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, processKeyEvent, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
, addNotify, addToFrameList, constructComponentName, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, initIDs, isResizable, 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, 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, removeAll, removeContainerListener, setFont, 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, 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

agent

private UserAgent agent
Reference to this window's UserAgent

contentPane

private javax.swing.JPanel contentPane

plugoutPane

private javax.swing.JPanel plugoutPane

buttonPane

private javax.swing.JPanel buttonPane

card

private java.awt.CardLayout card

plugin

private javax.swing.JMenuItem plugin

plugout

private javax.swing.JMenuItem plugout

pluginTable

private Table pluginTable

pluginHeaders

private java.lang.String[] pluginHeaders

pluginWidths

private int[] pluginWidths

plugoutTable

private Table plugoutTable

plugoutHeaders

private java.lang.String[] plugoutHeaders

plugoutWidths

private int[] plugoutWidths

cancelButton

private javax.swing.JButton cancelButton

plugoutButton

private javax.swing.JButton plugoutButton
Constructor Detail

UserWindow

public UserWindow(UserAgent agent)
Creates a new UserWindow. Creates and initializes the GUI components.
Parameters:
agent - Reference to the UserAgent.
Method Detail

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ae)
Handles the events generated when the user selects one of the menuitems or pushes a button.
Specified by:
actionPerformed in interface java.awt.event.ActionListener

addPluggedInActor

public void addPluggedInActor(java.lang.String actorGAI)
Adds the GAI of an actor that has been plugged in by this UserAgent.
Parameters:
actorGAI - The GAI of the actor plugged in.

getBackgroundColor

public java.awt.Color getBackgroundColor()
Returns the background color used by the UserWindow and its components. Actually the background color of the contentPane is returned but this should be the same.
Returns:
The background color.

setBackgroundColor

public void setBackgroundColor(java.awt.Color c)
Sets the background color used by the UserWindow and its components.
Parameters:
c - The new background color.

setRoleList

public void setRoleList(java.util.ArrayList list)
Sets the list of roles that can be plugged in by the UserAgent. This list is read from the file RoleList.xml by the UserAgent by using XMLFileUtil.parseRoleList(). The list is an ArrayList with String arrays where each array contains the name and version of a play, the name of a role belonging to the play and the location where the actor shall be plugged in (on the user's node or at the Director's node).
Parameters:
list - ArrayList with String arrays where each array contains information about each selectable role that can be plugged into an actor.

setWindowSize

public void setWindowSize(java.awt.Dimension dimension)
Sets the height and width of the window.
Parameters:
dimension - The new dimension of the window.

setWindowTitle

public void setWindowTitle(java.lang.String title)
Sets the title of the window.
Parameters:
title - The new window title.

dbg

private void dbg(java.lang.String dbg)
Writes the specified string to the agent's baseframe window.
Parameters:
dbg - The debug string.

main

public static void main(java.lang.String[] args)
Used for debugging.