edu.berkeley.guir.papier_mache
Class PMacheStatePanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by edu.berkeley.guir.papier_mache.PMacheTreePanel
                      extended by edu.berkeley.guir.papier_mache.PMacheStatePanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, PhobListener, java.io.Serializable

public class PMacheStatePanel
extends PMacheTreePanel
implements PhobListener

Displays the current state of all Phobs and Producers in a JTree. The state of Phobs is maintained through this class's role as a PhobListener (it gets added to every PhobProducer that comes in). PhobProducers get added upon their creation.

Author:
Scott Klemmer ( srk(AT)cs.berkeley.edu ), Jack Li ( jack(AT)eecs{DOT}berkeley{DOT}edu )
See Also:
Serialized Form

Nested Class Summary
 class PMacheStatePanel.PhobTreeNode
           
 
Nested classes inherited from class edu.berkeley.guir.papier_mache.PMacheTreePanel
PMacheTreePanel.PMacheTreeNode, PMacheTreePanel.PMacheTreeSelectionListener
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Field Summary
 
Fields inherited from class edu.berkeley.guir.papier_mache.PMacheTreePanel
HIGHLIGHT_DELAY, highlightDelay, NEW_COLOR, objectsToNodes, REMOVE_COLOR, UPDATE_COLOR
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Method Summary
 void addPhobProducer(PhobProducer producer)
          Add the specified producer to the tree.
 void addPhobProducerClass(java.lang.Class phobGenClass)
          Called when a new type of PhobProducer is added to the tree.
static Phob getCurrentlySelectedPhob()
           
 javax.swing.JTree getPMacheStateTree()
           
 java.awt.Dimension getPreferredSize()
           
 void phobAdded(PhobEvent phobEvent)
          Upon phobAdded, a new phob node is created with state ADDED.
 void phobRemoved(PhobEvent phobEvent)
          Similar to phobUpdated, upon phobRemoved, the representative phob's node is accessed; however its state is set to REMOVED and it will be taken out of the tree after a short period.
 void phobUpdated(PhobEvent phobEvent)
          Upon phobUpdated, the representative phob's node is accessed so that its state is set to UPDATED and that it will unhighlight (be set back to NORMAL) after a short period.
 void removePhobProducer(PhobProducer producer)
          Remove the specified producer from the tree (not currently used; would be used in the destructor)
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getCurrentlySelectedPhob

public static Phob getCurrentlySelectedPhob()

getPMacheStateTree

public javax.swing.JTree getPMacheStateTree()

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class javax.swing.JComponent

addPhobProducerClass

public void addPhobProducerClass(java.lang.Class phobGenClass)
Called when a new type of PhobProducer is added to the tree.


addPhobProducer

public void addPhobProducer(PhobProducer producer)
Add the specified producer to the tree. First adds this listener to the producer so that everytime phobAdded gets called, this StatePanel will update accordingly.


removePhobProducer

public void removePhobProducer(PhobProducer producer)
Remove the specified producer from the tree (not currently used; would be used in the destructor)


phobAdded

public void phobAdded(PhobEvent phobEvent)
Upon phobAdded, a new phob node is created with state ADDED. The representative producer node is accessed so that this new phob node can be placed under it and an UnhighlightTask is scheduled

Specified by:
phobAdded in interface PhobListener
Parameters:
phobEvent - an event describing the found object

phobUpdated

public void phobUpdated(PhobEvent phobEvent)
Upon phobUpdated, the representative phob's node is accessed so that its state is set to UPDATED and that it will unhighlight (be set back to NORMAL) after a short period.

Specified by:
phobUpdated in interface PhobListener
Parameters:
phobEvent - an event with new information about the found object

phobRemoved

public void phobRemoved(PhobEvent phobEvent)
Similar to phobUpdated, upon phobRemoved, the representative phob's node is accessed; however its state is set to REMOVED and it will be taken out of the tree after a short period.

Specified by:
phobRemoved in interface PhobListener
Parameters:
phobEvent - an event referencing the removed object