pawn.client
Class ClientGUI

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--pawn.client.ClientGUI
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, net.jxta.platform.Application, java.util.EventListener, java.awt.image.ImageObserver, pawn.services.locking.LockServiceListener, java.awt.MenuContainer, net.jxta.platform.Module, MonSteerListener, PresenceListener, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.event.TreeSelectionListener, javax.swing.WindowConstants
Direct Known Subclasses:
ChatHandler

public class ClientGUI
extends javax.swing.JFrame
implements net.jxta.platform.Application, javax.swing.event.TreeSelectionListener, java.awt.event.ActionListener, PresenceListener, MonSteerListener, pawn.services.locking.LockServiceListener

File : ClientGUI.java The controling interface running at each client peer This class provides clients with graphical components for 1) discovering applications 2) Displaying the application objects list 3) Monitoring other users presence 4) Providing Monitoring and steering of application objects 5) Displaying application status information

Author:
Vincent Matossian
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 appHandlerName
           
static java.lang.String lockHandlerName
           
static java.lang.String refModClassID
           
static java.lang.String refModSpecID
           
 
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, TEXT_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
ClientGUI()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
           
 boolean addAppToList(net.jxta.protocol.ApplicationAdvertisement appAdv)
          Adds the newly connected application to an array of connected applications
 void createAppTree()
           
 javax.swing.JInternalFrame createGroupChatFrame(java.awt.Rectangle bounds)
           
 void createMenu()
           
 void createObjectListFrame(javax.swing.JTree tree, java.lang.String aName)
           
 javax.swing.JInternalFrame createUserFrame(java.awt.Rectangle bounds)
           
 void displayGroupInfo(net.jxta.peergroup.PeerGroup pg)
          Displays general information about a peergroup
 void displayObjectList(java.lang.String objListString, java.lang.String hName)
          Displays the object list of the application in a new frame
 void exitAll()
           
 javax.swing.JTree generateTree(pawn.application.discover.D_ObjectList objList)
          Reusing from DISCOVER files.
 void init(net.jxta.peergroup.PeerGroup group, net.jxta.id.ID assignedID, net.jxta.document.Advertisement implAdv)
           
 void initGUI()
           
 void joinGroup(net.jxta.peergroup.PeerGroup grp)
          Join a Group
 void leaveGroup(net.jxta.peergroup.PeerGroup grp)
          leave Group
 void presenceUpdated(net.jxta.protocol.PresenceAdvertisement presenceInfo)
          Notify the listener of newly arrived presence information.
static void printAdv(net.jxta.document.Advertisement adv)
          Prints An Advertisement
 void processAnswer(pawn.services.locking.LockServiceEvent e)
           
 void readObjectListFile()
          A convenient method to test the client GUI without the need for an application connecting.
 void sendDiscoveryMsg()
           
 void sendGroupChatMessage()
           
 void sendLockMsg(java.lang.String type, java.lang.String requester)
          Sends a message to the locking service through the resolver service.
 void setSelectedUser()
           
 void showResponse(java.lang.String resp)
          Displays the response from the application
 int startApp(java.lang.String[] args)
           
 void stopApp()
           
 void updateApplicationList(net.jxta.protocol.ApplicationAdvertisement appAdv)
          Upon receiving an Application Advertisement, adds the application name in the application tree.
static void updateGroupChat(java.lang.String message)
           
 void valueChanged(javax.swing.event.TreeSelectionEvent e)
           
 void writeToInfo(java.lang.String text)
           
 
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, toString, 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

refModClassID

public static final java.lang.String refModClassID
See Also:
Constant Field Values

refModSpecID

public static final java.lang.String refModSpecID
See Also:
Constant Field Values

appHandlerName

public static java.lang.String appHandlerName

lockHandlerName

public static java.lang.String lockHandlerName
Constructor Detail

ClientGUI

public ClientGUI()
Method Detail

init

public void init(net.jxta.peergroup.PeerGroup group,
                 net.jxta.id.ID assignedID,
                 net.jxta.document.Advertisement implAdv)
          throws net.jxta.exception.PeerGroupException
Specified by:
init in interface net.jxta.platform.Module
net.jxta.exception.PeerGroupException

startApp

public int startApp(java.lang.String[] args)
Specified by:
startApp in interface net.jxta.platform.Module

stopApp

public void stopApp()
Specified by:
stopApp in interface net.jxta.platform.Module

createUserFrame

public javax.swing.JInternalFrame createUserFrame(java.awt.Rectangle bounds)

createGroupChatFrame

public javax.swing.JInternalFrame createGroupChatFrame(java.awt.Rectangle bounds)

createMenu

public void createMenu()

createAppTree

public void createAppTree()

createObjectListFrame

public void createObjectListFrame(javax.swing.JTree tree,
                                  java.lang.String aName)

readObjectListFile

public void readObjectListFile()
A convenient method to test the client GUI without the need for an application connecting. This method will read an XML file describing the OBject List. This file was created by writing an entire object list using the Castor Java to XML writer functionality.


updateApplicationList

public void updateApplicationList(net.jxta.protocol.ApplicationAdvertisement appAdv)
Upon receiving an Application Advertisement, adds the application name in the application tree.

Specified by:
updateApplicationList in interface MonSteerListener

addAppToList

public boolean addAppToList(net.jxta.protocol.ApplicationAdvertisement appAdv)
Adds the newly connected application to an array of connected applications


initGUI

public void initGUI()

presenceUpdated

public void presenceUpdated(net.jxta.protocol.PresenceAdvertisement presenceInfo)
Description copied from interface: PresenceListener
Notify the listener of newly arrived presence information.

Specified by:
presenceUpdated in interface PresenceListener
Parameters:
presenceInfo - the newly received presence information.

printAdv

public static void printAdv(net.jxta.document.Advertisement adv)
Prints An Advertisement

Parameters:
adv - the Advertisement to print

joinGroup

public void joinGroup(net.jxta.peergroup.PeerGroup grp)
Join a Group

Parameters:
grp - the PeerGroup to join

leaveGroup

public void leaveGroup(net.jxta.peergroup.PeerGroup grp)
leave Group


sendDiscoveryMsg

public void sendDiscoveryMsg()

displayGroupInfo

public void displayGroupInfo(net.jxta.peergroup.PeerGroup pg)
Displays general information about a peergroup

Parameters:
pg - the PeerGroup to display information from

sendLockMsg

public void sendLockMsg(java.lang.String type,
                        java.lang.String requester)
Sends a message to the locking service through the resolver service. The message can be of type: STATUS, REQUEST, RELEASE, CANCEL

Parameters:
type - the Type of the request [see above]
requester - the peerID sending the message

processAnswer

public void processAnswer(pawn.services.locking.LockServiceEvent e)
Specified by:
processAnswer in interface pawn.services.locking.LockServiceListener

sendGroupChatMessage

public void sendGroupChatMessage()

updateGroupChat

public static void updateGroupChat(java.lang.String message)

valueChanged

public void valueChanged(javax.swing.event.TreeSelectionEvent e)
Specified by:
valueChanged in interface javax.swing.event.TreeSelectionListener

displayObjectList

public void displayObjectList(java.lang.String objListString,
                              java.lang.String hName)
Displays the object list of the application in a new frame

Specified by:
displayObjectList in interface MonSteerListener

showResponse

public void showResponse(java.lang.String resp)
Displays the response from the application

Specified by:
showResponse in interface MonSteerListener

generateTree

public javax.swing.JTree generateTree(pawn.application.discover.D_ObjectList objList)
Reusing from DISCOVER files. Used to generate a JTree of application objects


writeToInfo

public void writeToInfo(java.lang.String text)
Specified by:
writeToInfo in interface MonSteerListener

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

setSelectedUser

public void setSelectedUser()

exitAll

public void exitAll()