ix.ip2
Class AgendaViewTable

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 ix.ip2.AgendaViewTable
All Implemented Interfaces:
AgendaViewer, AgendaListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
ActivityViewTable, IssueViewTable

public abstract class AgendaViewTable
extends javax.swing.JPanel
implements AgendaViewer, AgendaListener

A viewer for a set of AgendaItems. The items are managed by an AgendaManager (usually an Agenda). The view has the shape of a table but it not represented that way internally; instead, there are objects representing rows and columns.

See Also:
Serialized Form

Nested Class Summary
 class AgendaViewTable.ActionCellRenderer
           
(package private)  class AgendaViewTable.ItemPopupMenu
          The popup menu that appears when the user right-clicks on a item.
(package private)  class AgendaViewTable.Row
          A row of the table - corresponds to one item.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
(package private)  GridColumn actionCol
           
(package private)  TwoKeyHashMap actionShadowingTable
          Says which action to use when an item has more than one that have the same description.
(package private)  AgendaManager agendaManager
           
(package private)  GridColumn commentsCol
           
(package private)  int commentsWidth
           
(package private)  GridColumn descriptionCol
           
(package private)  int descriptionWidth
           
protected  Ip2 ip2
           
(package private)  ItemEditor itemEditor
           
(package private)  java.util.HashMap itemToRowMap
          Lets us find the Row object that represents an item.
(package private)  GridColumn priorityCol
           
(package private)  java.util.List rows
          A List of rows in the order in which they were first added to the table.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, 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
 
Constructor Summary
AgendaViewTable(Ip2 ip2)
          Constructs a viewer for the indicated agent.
 
Method Summary
protected  java.lang.String actionChoiceDescr(HandlerAction act)
           
 void addItem(AgendaItem i)
           
protected  void adjustSizes()
           
 void clearTable()
          Clears what's displayed without resetting anything else.
 void ensureItemEditor()
           
 void expandItem(AgendaItem i, Refinement instructions)
           
protected  HandlerAction findHandlerAction(AgendaItem item, java.lang.String shortDescription)
           
 void getNewItemFromUser()
           
 void itemAdded(AgendaEvent event, AgendaItem i)
           
 void itemAdded(AgendaItem i)
           
 void itemHandled(AgendaEvent e, AgendaItem i, HandlerAction h)
           
 void itemRemoved(AgendaEvent event, AgendaItem i)
           
(package private)  java.awt.event.ActionListener makeActionChoiceListener(AgendaItem item)
          Returns a listener that can be called when the user selects an item action.
 AgendaItem makeItem(LList pattern)
           
protected abstract  ItemEditor makeItemEditor()
          Creates the item editor.
(package private)  java.awt.event.MouseListener makeMouseListener(AgendaItem item)
          Returns a listener than can be called when the user clicks in the text of an item description.
(package private)  java.awt.event.ActionListener makePriorityChoiceListener(AgendaItem item)
          Returns a listener that can be called when the user selects an item priority.
 void newBindings(AgendaEvent event, java.util.Map bindings)
           
 void redisplay()
          Clears the table then puts everything back, taking account of any changes in open/closed status.
 void reset()
          Sets the viewer back to something approximating its initial state.
protected  void restoreSubtree(AgendaItem item)
          The part of the implementation of restoreTable() that restores the section of the table that corresponds to the subitem tree of an item whose row is "open".
 void restoreTable()
          Undoes a clearTable(), taking into acount any changes in open/closed status.
 void saveExpansion(Refinement data)
           
 void setAgendaManager(AgendaManager agendaManager)
           
protected  void setShadowingAction(AgendaItem item, java.lang.String shortDescription, HandlerAction action)
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, 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, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ip2

protected Ip2 ip2

agendaManager

AgendaManager agendaManager

itemEditor

ItemEditor itemEditor

descriptionCol

GridColumn descriptionCol

commentsCol

GridColumn commentsCol

priorityCol

GridColumn priorityCol

actionCol

GridColumn actionCol

descriptionWidth

final int descriptionWidth

commentsWidth

final int commentsWidth

itemToRowMap

java.util.HashMap itemToRowMap
Lets us find the Row object that represents an item. An item should not be in the table until after the fields of the row have been added to the appropriate comumns.


rows

java.util.List rows
A List of rows in the order in which they were first added to the table. Note this this is NOT the order in which they are listed in the table, because subitem rows can be added at any time and must be inserted below their parent and hence above any more recently added top-level entries (and their descendents).


actionShadowingTable

TwoKeyHashMap actionShadowingTable
Says which action to use when an item has more than one that have the same description. The two keys are the item and the description.

Constructor Detail

AgendaViewTable

public AgendaViewTable(Ip2 ip2)
Constructs a viewer for the indicated agent.

Method Detail

setAgendaManager

public void setAgendaManager(AgendaManager agendaManager)
Specified by:
setAgendaManager in interface AgendaViewer
Specified by:
setAgendaManager in interface AgendaListener

ensureItemEditor

public void ensureItemEditor()

makeItemEditor

protected abstract ItemEditor makeItemEditor()
Creates the item editor. This method is defined in subclasses to instantiate the desired ItemEditor class.


reset

public void reset()
Sets the viewer back to something approximating its initial state.

Specified by:
reset in interface AgendaViewer

clearTable

public void clearTable()
Clears what's displayed without resetting anything else.


redisplay

public void redisplay()
Clears the table then puts everything back, taking account of any changes in open/closed status.


restoreTable

public void restoreTable()
Undoes a clearTable(), taking into acount any changes in open/closed status.


restoreSubtree

protected void restoreSubtree(AgendaItem item)
The part of the implementation of restoreTable() that restores the section of the table that corresponds to the subitem tree of an item whose row is "open".


findHandlerAction

protected HandlerAction findHandlerAction(AgendaItem item,
                                          java.lang.String shortDescription)

setShadowingAction

protected void setShadowingAction(AgendaItem item,
                                  java.lang.String shortDescription,
                                  HandlerAction action)

actionChoiceDescr

protected java.lang.String actionChoiceDescr(HandlerAction act)

getNewItemFromUser

public void getNewItemFromUser()
Specified by:
getNewItemFromUser in interface AgendaViewer

makeItem

public AgendaItem makeItem(LList pattern)
Specified by:
makeItem in interface AgendaViewer

addItem

public void addItem(AgendaItem i)
Specified by:
addItem in interface AgendaViewer

saveExpansion

public void saveExpansion(Refinement data)
Specified by:
saveExpansion in interface AgendaViewer

expandItem

public void expandItem(AgendaItem i,
                       Refinement instructions)
Specified by:
expandItem in interface AgendaViewer

itemAdded

public void itemAdded(AgendaEvent event,
                      AgendaItem i)
Specified by:
itemAdded in interface AgendaListener

itemAdded

public void itemAdded(AgendaItem i)

adjustSizes

protected void adjustSizes()

itemRemoved

public void itemRemoved(AgendaEvent event,
                        AgendaItem i)
Specified by:
itemRemoved in interface AgendaListener

itemHandled

public void itemHandled(AgendaEvent e,
                        AgendaItem i,
                        HandlerAction h)
Specified by:
itemHandled in interface AgendaListener

newBindings

public void newBindings(AgendaEvent event,
                        java.util.Map bindings)
Specified by:
newBindings in interface AgendaListener

makeActionChoiceListener

java.awt.event.ActionListener makeActionChoiceListener(AgendaItem item)
Returns a listener that can be called when the user selects an item action.


makePriorityChoiceListener

java.awt.event.ActionListener makePriorityChoiceListener(AgendaItem item)
Returns a listener that can be called when the user selects an item priority.


makeMouseListener

java.awt.event.MouseListener makeMouseListener(AgendaItem item)
Returns a listener than can be called when the user clicks in the text of an item description.