ix.ip2
Class AgendaTableViewer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTable
                  extended by ix.iface.ui.table.IXTable
                      extended by ix.iface.ui.table.IXTreeTable
                          extended by ix.ip2.AgendaTableViewer
All Implemented Interfaces:
TreeTableStructureListener, AgendaViewer, AgendaListener, java.awt.event.FocusListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.CellEditorListener, javax.swing.event.ListSelectionListener, javax.swing.event.RowSorterListener, javax.swing.event.TableColumnModelListener, javax.swing.event.TableModelListener, javax.swing.Scrollable
Direct Known Subclasses:
ActivityTableViewer, IssueTableViewer

public abstract class AgendaTableViewer
extends IXTreeTable
implements AgendaViewer, AgendaListener, java.awt.event.MouseListener

A table viewer for an agenda (set of agenda items). The items are managed by an AgendaManager (usually an Agenda).

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTable
javax.swing.JTable.AccessibleJTable, javax.swing.JTable.DropLocation, javax.swing.JTable.PrintMode
 
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)  AgendaManager agendaManager
           
protected  Ip2 ip2
           
(package private)  ItemEditor itemEditor
           
(package private)  AgendaItemTableModel model
           
(package private)  ix.ip2.AgendaTableViewer.PriorityPopupMenu priorityPopup
           
 
Fields inherited from class ix.iface.ui.table.IXTable
columnFixedWidths, columnToolTips, columnWidths, defaultWidth, minWidth
 
Fields inherited from class javax.swing.JTable
AUTO_RESIZE_ALL_COLUMNS, AUTO_RESIZE_LAST_COLUMN, AUTO_RESIZE_NEXT_COLUMN, AUTO_RESIZE_OFF, AUTO_RESIZE_SUBSEQUENT_COLUMNS, autoCreateColumnsFromModel, autoResizeMode, cellEditor, cellSelectionEnabled, columnModel, dataModel, defaultEditorsByColumnClass, defaultRenderersByColumnClass, editingColumn, editingRow, editorComp, gridColor, preferredViewportSize, rowHeight, rowMargin, rowSelectionAllowed, selectionBackground, selectionForeground, selectionModel, showHorizontalLines, showVerticalLines, tableHeader
 
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
AgendaTableViewer(Ip2 ip2)
          Constructs a viewer for the indicated agent.
 
Method Summary
 void actionSelected(AgendaItem item, java.lang.String actionName)
           
 void addItem(AgendaItem i)
           
 void addItem(Priority priority, java.lang.String text)
           
 void addItem(java.lang.String text)
          Useful methods for adding test items.
 void clearTable()
          Clears what's displayed without resetting anything else.
 void editingCanceled(javax.swing.event.ChangeEvent e)
           
 void editingStopped(javax.swing.event.ChangeEvent e)
           
 void ensureItemEditor()
           
 void expandItem(AgendaItem i, Refinement instructions)
           
 HandlerAction findHandlerAction(AgendaItem item, java.lang.String shortDescription)
          Undoes a clearTable(), taking into acount any changes in open/closed status.
 void getNewItemFromUser()
           
 void handleItem(AgendaItem item, HandlerAction action)
           
 boolean isDummyEditing(int row, int column)
          Hack to make things start properly
 void itemAdded(AgendaEvent event, AgendaItem i)
           
 void itemAdded(AgendaItem i)
          Called when an itemhas been added, adds the item to the table.
 void itemHandled(AgendaEvent ae, AgendaItem item, HandlerAction act)
           
 void itemRemoved(AgendaEvent event, AgendaItem i)
           
 AgendaItem makeItem(LList pattern)
           
protected abstract  ItemEditor makeItemEditor()
           
 void mouseClicked(java.awt.event.MouseEvent me)
          If the left button was clicked on the tree-column, expand/collapse node as per model.
 void mouseEntered(java.awt.event.MouseEvent me)
           
 void mouseExited(java.awt.event.MouseEvent me)
           
 void mousePressed(java.awt.event.MouseEvent me)
          If the right button was pressed in any column bring up the item popup menu.
 void mouseReleased(java.awt.event.MouseEvent me)
           
 void newBindings(AgendaEvent event, java.util.Map bindings)
           
 void newHandlerAction(AgendaItem item, HandlerAction act)
           
 void reset()
          Sets the viewer back to something approximating its initial state.
 void saveExpansion(Refinement data)
           
 void setAgendaManager(AgendaManager agendaManager)
           
 void setItemEditor(ItemEditor itemEditor)
           
protected  void setShadowingAction(AgendaItem item, java.lang.String shortDescription, HandlerAction action)
           
(package private)  boolean shouldReplaceAction(AgendaItem item, java.lang.String actDescription)
           
 
Methods inherited from class ix.iface.ui.table.IXTreeTable
nodeStructureChanged, setModel, treeStructureChanged
 
Methods inherited from class ix.iface.ui.table.IXTable
addTableMouseListener, adjustWidths, clearMarks, createDefaultTableHeader, findColumn, focusGained, focusLost, getCellRenderer, getPopup, getSelectedObject, hasPopup, isMarkable, isMarked, isMarkedEmpty, markAll, markRow, removeTableMouseListener, setDefaultWidths, setFixedWidth, setFixedWidth, setPopup, setSelectedObject, setSelectedRow, setToolTipText, setToolTipTexts, setToolTipTexts, setWidth, setWidth, setWidths, unmarkRow
 
Methods inherited from class javax.swing.JTable
addColumn, addColumnSelectionInterval, addNotify, addRowSelectionInterval, changeSelection, clearSelection, columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, configureEnclosingScrollPane, convertColumnIndexToModel, convertColumnIndexToView, convertRowIndexToModel, convertRowIndexToView, createDefaultColumnModel, createDefaultColumnsFromModel, createDefaultDataModel, createDefaultEditors, createDefaultRenderers, createDefaultSelectionModel, createScrollPaneForTable, doLayout, editCellAt, editCellAt, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellSelectionEnabled, getColumn, getColumnClass, getColumnCount, getColumnModel, getColumnName, getColumnSelectionAllowed, getDefaultEditor, getDefaultRenderer, getDragEnabled, getDropLocation, getDropMode, getEditingColumn, getEditingRow, getEditorComponent, getFillsViewportHeight, getGridColor, getIntercellSpacing, getModel, getPreferredScrollableViewportSize, getPrintable, getRowCount, getRowHeight, getRowHeight, getRowMargin, getRowSelectionAllowed, getRowSorter, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getToolTipText, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, isCellEditable, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, prepareRenderer, print, print, print, print, print, processKeyBinding, removeColumn, removeColumnSelectionInterval, removeEditor, removeNotify, removeRowSelectionInterval, resizeAndRepaint, rowAtPoint, selectAll, setAutoCreateColumnsFromModel, setAutoCreateRowSorter, setAutoResizeMode, setCellEditor, setCellSelectionEnabled, setColumnModel, setColumnSelectionAllowed, setColumnSelectionInterval, setDefaultEditor, setDefaultRenderer, setDragEnabled, setDropMode, setEditingColumn, setEditingRow, setFillsViewportHeight, setGridColor, setIntercellSpacing, setPreferredScrollableViewportSize, setRowHeight, setRowHeight, setRowMargin, setRowSelectionAllowed, setRowSelectionInterval, setRowSorter, setSelectionBackground, setSelectionForeground, setSelectionMode, setSelectionModel, setShowGrid, setShowHorizontalLines, setShowVerticalLines, setSurrendersFocusOnKeystroke, setTableHeader, setUI, setUpdateSelectionOnSort, setValueAt, sizeColumnsToFit, sizeColumnsToFit, sorterChanged, tableChanged, unconfigureEnclosingScrollPane, updateUI, valueChanged
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, 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, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, 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

model

AgendaItemTableModel model

priorityPopup

final ix.ip2.AgendaTableViewer.PriorityPopupMenu priorityPopup
Constructor Detail

AgendaTableViewer

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

Method Detail

setItemEditor

public void setItemEditor(ItemEditor itemEditor)

ensureItemEditor

public void ensureItemEditor()

makeItemEditor

protected abstract ItemEditor makeItemEditor()

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. NOTE: the model clears its rows and nodes and notifies listeners.


findHandlerAction

public HandlerAction findHandlerAction(AgendaItem item,
                                       java.lang.String shortDescription)
Undoes a clearTable(), taking into acount any changes in open/closed status.


setShadowingAction

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

actionSelected

public void actionSelected(AgendaItem item,
                           java.lang.String actionName)

handleItem

public void handleItem(AgendaItem item,
                       HandlerAction action)

newHandlerAction

public void newHandlerAction(AgendaItem item,
                             HandlerAction act)

shouldReplaceAction

boolean shouldReplaceAction(AgendaItem item,
                            java.lang.String actDescription)

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

addItem

public void addItem(java.lang.String text)
Useful methods for adding test items. They assume that the text can be parsed w/o error. Note that the ItemEditor does not call these methods -- they are called only "internally", specifically for test items.


addItem

public void addItem(Priority priority,
                    java.lang.String text)

setAgendaManager

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

itemAdded

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

itemAdded

public void itemAdded(AgendaItem i)
Called when an itemhas been added, adds the item to the table. An AgendaViewer thing - also used by AgendaListener method.


itemRemoved

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

itemHandled

public void itemHandled(AgendaEvent ae,
                        AgendaItem item,
                        HandlerAction act)
Specified by:
itemHandled in interface AgendaListener

newBindings

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

editingCanceled

public void editingCanceled(javax.swing.event.ChangeEvent e)
Specified by:
editingCanceled in interface javax.swing.event.CellEditorListener
Overrides:
editingCanceled in class javax.swing.JTable

editingStopped

public void editingStopped(javax.swing.event.ChangeEvent e)
Specified by:
editingStopped in interface javax.swing.event.CellEditorListener
Overrides:
editingStopped in class javax.swing.JTable

isDummyEditing

public boolean isDummyEditing(int row,
                              int column)
Hack to make things start properly


mouseClicked

public void mouseClicked(java.awt.event.MouseEvent me)
If the left button was clicked on the tree-column, expand/collapse node as per model. If the left button was clicked in a non-editable column, start dummy editing to make the text mouseable.

Specified by:
mouseClicked in interface java.awt.event.MouseListener
Overrides:
mouseClicked in class IXTable

mousePressed

public void mousePressed(java.awt.event.MouseEvent me)
If the right button was pressed in any column bring up the item popup menu. If the left button was pressed on priority, show priority popup menu. If the left button was pressed on Action, show action popup menu.

Specified by:
mousePressed in interface java.awt.event.MouseListener
Overrides:
mousePressed in class IXTable

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent me)
Specified by:
mouseEntered in interface java.awt.event.MouseListener
Overrides:
mouseEntered in class IXTable

mouseExited

public void mouseExited(java.awt.event.MouseEvent me)
Specified by:
mouseExited in interface java.awt.event.MouseListener
Overrides:
mouseExited in class IXTable

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent me)
Specified by:
mouseReleased in interface java.awt.event.MouseListener
Overrides:
mouseReleased in class IXTable