com.l2fprod.common.propertysheet
Class PropertySheetTable

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 com.l2fprod.common.propertysheet.PropertySheetTable
All Implemented Interfaces:
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

public class PropertySheetTable
extends javax.swing.JTable

A table which allows the editing of Properties through PropertyEditors. The PropertyEditors can be changed by using the PropertyEditorRegistry.

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
 
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
PropertySheetTable()
           
PropertySheetTable(PropertySheetTableModel dm)
           
 
Method Summary
 void cancelEditing()
          Cancels on-going cell editing
 void commitEditing()
          Commits on-going cell editing
 java.awt.Color getCategoryBackground()
           
 java.awt.Color getCategoryForeground()
           
 javax.swing.table.TableCellEditor getCellEditor(int row, int column)
          Gets the CellEditor for the given row and column.
 javax.swing.table.TableCellRenderer getCellRenderer(int row, int column)
           
 PropertyEditorFactory getEditorFactory()
           
 PropertyEditorRegistry getEditorRegistry()
          Deprecated. use getEditorFactory()
 java.awt.Color getPropertyBackground()
           
 java.awt.Color getPropertyForeground()
           
 PropertyRendererFactory getRendererFactory()
           
 PropertyRendererRegistry getRendererRegistry()
          Deprecated. use getRendererFactory()
 boolean getScrollableTracksViewportHeight()
          Ensures the table uses the full height of its parent JViewport.
 java.awt.Color getSelectedCategoryBackground()
           
 java.awt.Color getSelectedCategoryForeground()
           
 java.awt.Color getSelectedPropertyBackground()
           
 java.awt.Color getSelectedPropertyForeground()
           
 PropertySheetTableModel getSheetModel()
           
 boolean getWantsExtraIndent()
           
 boolean isCellEditable(int row, int column)
           
 java.awt.Component prepareRenderer(javax.swing.table.TableCellRenderer renderer, int row, int column)
          Overriden to prevent the cell focus rect to be painted to disable (Component.setEnabled(boolean) the renderer if the Property is not editable
 void setCategoryBackground(java.awt.Color categoryBackground)
          Sets the color used to paint a Category background.
 void setCategoryForeground(java.awt.Color categoryForeground)
          Sets the color used to paint a Category foreground.
 void setEditorFactory(PropertyEditorFactory factory)
           
 void setEditorRegistry(PropertyEditorRegistry registry)
          Deprecated. use setEditorFactory(PropertyEditorFactory)
 void setModel(javax.swing.table.TableModel newModel)
          Overriden to register a listener on the model.
 void setPropertyBackground(java.awt.Color propertyBackground)
          Sets the color used to paint a Property background.
 void setPropertyForeground(java.awt.Color propertyForeground)
          Sets the color used to paint a Property foreground.
 void setRendererFactory(PropertyRendererFactory factory)
           
 void setRendererRegistry(PropertyRendererRegistry registry)
          Deprecated. use setRendererFactory(PropertyRendererFactory)
 void setSelectedCategoryBackground(java.awt.Color selectedCategoryBackground)
          Sets the color used to paint a selected/focused Category background.
 void setSelectedCategoryForeground(java.awt.Color selectedCategoryForeground)
          Sets the color used to paint a selected/focused Category foreground.
 void setSelectedPropertyBackground(java.awt.Color selectedPropertyBackground)
          Sets the color used to paint a selected/focused Property background.
 void setSelectedPropertyForeground(java.awt.Color selectedPropertyForeground)
          Sets the color used to paint a selected/focused Property foreground.
 void setWantsExtraIndent(boolean wantsExtraIndent)
          By default, properties with children are painted with the same indent level as other properties and categories.
 
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, createDefaultTableHeader, createScrollPaneForTable, doLayout, editCellAt, editCellAt, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, 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, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedColumn, getSelectedColumnCount, getSelectedColumns, getSelectedRow, getSelectedRowCount, getSelectedRows, getSelectionBackground, getSelectionForeground, getSelectionModel, getShowHorizontalLines, getShowVerticalLines, getSurrendersFocusOnKeystroke, getTableHeader, getToolTipText, getUI, getUIClassID, getUpdateSelectionOnSort, getValueAt, initializeLocalVars, isCellSelected, isColumnSelected, isEditing, isRowSelected, moveColumn, paramString, prepareEditor, 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, 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, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PropertySheetTable

public PropertySheetTable()

PropertySheetTable

public PropertySheetTable(PropertySheetTableModel dm)
Method Detail

getCategoryBackground

public java.awt.Color getCategoryBackground()

setCategoryBackground

public void setCategoryBackground(java.awt.Color categoryBackground)
Sets the color used to paint a Category background.

Parameters:
categoryBackground -

getCategoryForeground

public java.awt.Color getCategoryForeground()

setCategoryForeground

public void setCategoryForeground(java.awt.Color categoryForeground)
Sets the color used to paint a Category foreground.

Parameters:
categoryForeground -

getSelectedCategoryBackground

public java.awt.Color getSelectedCategoryBackground()

setSelectedCategoryBackground

public void setSelectedCategoryBackground(java.awt.Color selectedCategoryBackground)
Sets the color used to paint a selected/focused Category background.

Parameters:
selectedCategoryBackground -

getSelectedCategoryForeground

public java.awt.Color getSelectedCategoryForeground()

setSelectedCategoryForeground

public void setSelectedCategoryForeground(java.awt.Color selectedCategoryForeground)
Sets the color used to paint a selected/focused Category foreground.

Parameters:
selectedCategoryForeground -

getPropertyBackground

public java.awt.Color getPropertyBackground()

setPropertyBackground

public void setPropertyBackground(java.awt.Color propertyBackground)
Sets the color used to paint a Property background.

Parameters:
propertyBackground -

getPropertyForeground

public java.awt.Color getPropertyForeground()

setPropertyForeground

public void setPropertyForeground(java.awt.Color propertyForeground)
Sets the color used to paint a Property foreground.

Parameters:
propertyForeground -

getSelectedPropertyBackground

public java.awt.Color getSelectedPropertyBackground()

setSelectedPropertyBackground

public void setSelectedPropertyBackground(java.awt.Color selectedPropertyBackground)
Sets the color used to paint a selected/focused Property background.

Parameters:
selectedPropertyBackground -

getSelectedPropertyForeground

public java.awt.Color getSelectedPropertyForeground()

setSelectedPropertyForeground

public void setSelectedPropertyForeground(java.awt.Color selectedPropertyForeground)
Sets the color used to paint a selected/focused Property foreground.

Parameters:
selectedPropertyForeground -

setEditorFactory

public void setEditorFactory(PropertyEditorFactory factory)

getEditorFactory

public final PropertyEditorFactory getEditorFactory()

setEditorRegistry

public void setEditorRegistry(PropertyEditorRegistry registry)
Deprecated. use setEditorFactory(PropertyEditorFactory)

Parameters:
registry -

getEditorRegistry

public PropertyEditorRegistry getEditorRegistry()
Deprecated. use getEditorFactory()

Throws:
java.lang.ClassCastException - if the current editor factory is not a PropertyEditorRegistry

setRendererFactory

public void setRendererFactory(PropertyRendererFactory factory)

getRendererFactory

public PropertyRendererFactory getRendererFactory()

setRendererRegistry

public void setRendererRegistry(PropertyRendererRegistry registry)
Deprecated. use setRendererFactory(PropertyRendererFactory)

Parameters:
registry -

getRendererRegistry

public PropertyRendererRegistry getRendererRegistry()
Deprecated. use getRendererFactory()

Throws:
java.lang.ClassCastException - if the current renderer factory is not a PropertyRendererRegistry

isCellEditable

public boolean isCellEditable(int row,
                              int column)
Overrides:
isCellEditable in class javax.swing.JTable

getCellEditor

public javax.swing.table.TableCellEditor getCellEditor(int row,
                                                       int column)
Gets the CellEditor for the given row and column. It uses the editor registry to find a suitable editor for the property.

Overrides:
getCellEditor in class javax.swing.JTable
See Also:
JTable.getCellEditor(int, int)

getCellRenderer

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

getSheetModel

public final PropertySheetTableModel getSheetModel()

prepareRenderer

public java.awt.Component prepareRenderer(javax.swing.table.TableCellRenderer renderer,
                                          int row,
                                          int column)
Overriden
  • to prevent the cell focus rect to be painted
  • to disable (Component.setEnabled(boolean) the renderer if the Property is not editable

    Overrides:
    prepareRenderer in class javax.swing.JTable

  • setModel

    public void setModel(javax.swing.table.TableModel newModel)
    Overriden to register a listener on the model. This listener ensures editing is cancelled when editing row is being changed.

    Overrides:
    setModel in class javax.swing.JTable
    Throws:
    java.lang.IllegalArgumentException - if dataModel is not a PropertySheetTableModel
    See Also:
    JTable.setModel(javax.swing.table.TableModel)

    getWantsExtraIndent

    public boolean getWantsExtraIndent()
    See Also:
    setWantsExtraIndent(boolean)

    setWantsExtraIndent

    public void setWantsExtraIndent(boolean wantsExtraIndent)
    By default, properties with children are painted with the same indent level as other properties and categories. When nested properties exist within the set of properties, the end-user might be confused by the category and property handles. Sets this property to true to add an extra indent level to properties.

    Parameters:
    wantsExtraIndent -

    getScrollableTracksViewportHeight

    public boolean getScrollableTracksViewportHeight()
    Ensures the table uses the full height of its parent JViewport.

    Specified by:
    getScrollableTracksViewportHeight in interface javax.swing.Scrollable
    Overrides:
    getScrollableTracksViewportHeight in class javax.swing.JTable

    commitEditing

    public void commitEditing()
    Commits on-going cell editing


    cancelEditing

    public void cancelEditing()
    Cancels on-going cell editing