ix.iface.ui.table
Class IXTable

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
All Implemented Interfaces:
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:
IXTreeTable

public class IXTable
extends javax.swing.JTable
implements java.awt.event.MouseListener, java.awt.event.FocusListener

Abstract table that listens to the mouse, has values with up to 4D and sensible column widths. The IXTable is used to provide a standard table behaviour for displaying up to fourD displays of fields (as provided by the NDRenderer), adjusted column widths, no re-ordering of columns, adding the model as a TableModelListener if it is one.

Can be used for normal tables or tree tables.

Example code for making a TreeTable happen:


   ...
     TreeNode[] tna = {};
     TreeNode[] nodes = domain.getAllRefinements().toArray(tna);
     ActionTreeTableModel tableModel = new ActionTreeTableModel(nodes);
     IXTable table = new IXTable(tableModel);
     table.setPreferredScrollableViewportSize(new Dimension(200, 100));
     JScrollPane jsp = new JScrollPane();
     jsp.getViewport().add(table);
     panel.add(jsp);
   ...
 

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
 java.util.Hashtable columnFixedWidths
           
protected  java.util.LinkedList columnToolTips
           
 java.util.Hashtable columnWidths
           
 int defaultWidth
           
 int 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
IXTable()
          Makes a single-selection table that listens to mouse, shows grid, renders 4D.
IXTable(javax.swing.table.AbstractTableModel model)
          Makes a table and sets the given model, adjusts column widths, registers model as mouse listener (if appropriate).
 
Method Summary
 void addTableMouseListener(TableMouseListener tml)
           
 void adjustWidths()
          Adjusts column widths to sensible values.
 void clearMarks()
           
protected  javax.swing.table.JTableHeader createDefaultTableHeader()
           
 javax.swing.table.TableColumn findColumn(java.lang.String header)
           
 void focusGained(java.awt.event.FocusEvent fe)
           
 void focusLost(java.awt.event.FocusEvent fe)
           
 javax.swing.table.TableCellRenderer getCellRenderer(int row, int col)
           
 javax.swing.JPopupMenu getPopup()
          Return the popup of the table if it has one
 java.lang.Object getSelectedObject()
           
 boolean hasPopup()
          Find out whether this table has a popup.
 boolean isMarkable()
           
 boolean isMarked(int row)
           
 boolean isMarkedEmpty()
           
 void markAll()
           
 void markRow(int row)
           
 void mouseClicked(java.awt.event.MouseEvent me)
          Send a cellClicked notification to all registered TableMouseListeners.
 void mouseEntered(java.awt.event.MouseEvent me)
           
 void mouseExited(java.awt.event.MouseEvent me)
           
 void mousePressed(java.awt.event.MouseEvent me)
           
 void mouseReleased(java.awt.event.MouseEvent me)
           
 void removeTableMouseListener(TableMouseListener tml)
           
 void setDefaultWidths()
           
 void setFixedWidth(java.lang.Class colClass, java.lang.Integer width)
           
 void setFixedWidth(java.lang.String title, java.lang.Integer width)
           
 void setModel(javax.swing.table.TableModel model)
           
 void setPopup(javax.swing.JPopupMenu pop)
          Set the popup of the table
 void setSelectedObject(java.lang.Object object)
           
 void setSelectedRow(int row)
           
 void setToolTipText(int columnModelIndex, java.lang.String columnTip)
           
 void setToolTipTexts(java.util.Collection columnTips)
           
 void setToolTipTexts(java.lang.String[] columnTips)
           
 void setWidth(java.lang.Class colClass, java.lang.Integer width)
           
 void setWidth(java.lang.String title, java.lang.Integer width)
           
 void setWidths()
           
 void unmarkRow(int row)
           
 
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, editingCanceled, editingStopped, 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

columnWidths

public java.util.Hashtable columnWidths

columnFixedWidths

public java.util.Hashtable columnFixedWidths

defaultWidth

public int defaultWidth

minWidth

public int minWidth

columnToolTips

protected java.util.LinkedList columnToolTips
Constructor Detail

IXTable

public IXTable()
Makes a single-selection table that listens to mouse, shows grid, renders 4D.


IXTable

public IXTable(javax.swing.table.AbstractTableModel model)
Makes a table and sets the given model, adjusts column widths, registers model as mouse listener (if appropriate).

Method Detail

setModel

public void setModel(javax.swing.table.TableModel model)
Overrides:
setModel in class javax.swing.JTable

setSelectedRow

public void setSelectedRow(int row)

setSelectedObject

public void setSelectedObject(java.lang.Object object)

getSelectedObject

public java.lang.Object getSelectedObject()

findColumn

public javax.swing.table.TableColumn findColumn(java.lang.String header)

setToolTipTexts

public void setToolTipTexts(java.lang.String[] columnTips)

setToolTipTexts

public void setToolTipTexts(java.util.Collection columnTips)

setToolTipText

public void setToolTipText(int columnModelIndex,
                           java.lang.String columnTip)

createDefaultTableHeader

protected javax.swing.table.JTableHeader createDefaultTableHeader()
Overrides:
createDefaultTableHeader in class javax.swing.JTable

getCellRenderer

public javax.swing.table.TableCellRenderer getCellRenderer(int row,
                                                           int col)
Overrides:
getCellRenderer in class javax.swing.JTable

hasPopup

public boolean hasPopup()
Find out whether this table has a popup.


getPopup

public javax.swing.JPopupMenu getPopup()
Return the popup of the table if it has one


setPopup

public void setPopup(javax.swing.JPopupMenu pop)
Set the popup of the table


setWidths

public void setWidths()

setDefaultWidths

public void setDefaultWidths()

setWidth

public void setWidth(java.lang.Class colClass,
                     java.lang.Integer width)

setWidth

public void setWidth(java.lang.String title,
                     java.lang.Integer width)

setFixedWidth

public void setFixedWidth(java.lang.Class colClass,
                          java.lang.Integer width)

setFixedWidth

public void setFixedWidth(java.lang.String title,
                          java.lang.Integer width)

adjustWidths

public void adjustWidths()
Adjusts column widths to sensible values. String: 100, FourField: 100, boolean: 25, others 50. Relative width is preserved on resizing.


isMarkable

public boolean isMarkable()

markRow

public void markRow(int row)

unmarkRow

public void unmarkRow(int row)

clearMarks

public void clearMarks()

markAll

public void markAll()

isMarked

public boolean isMarked(int row)

isMarkedEmpty

public boolean isMarkedEmpty()

addTableMouseListener

public void addTableMouseListener(TableMouseListener tml)

removeTableMouseListener

public void removeTableMouseListener(TableMouseListener tml)

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent me)
Send a cellClicked notification to all registered TableMouseListeners. Passes on the mouse event and the row/column index that has been clicked. Works for single-selection tables only.

Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

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

mouseExited

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

mousePressed

public void mousePressed(java.awt.event.MouseEvent me)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

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

focusGained

public void focusGained(java.awt.event.FocusEvent fe)
Specified by:
focusGained in interface java.awt.event.FocusListener

focusLost

public void focusLost(java.awt.event.FocusEvent fe)
Specified by:
focusLost in interface java.awt.event.FocusListener