com.jzy3d.surfedit.swing.table
Class SurfEditTable
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTable
com.jzy3d.surfedit.swing.table.SurfEditTable
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener, RowSorterListener, TableColumnModelListener, TableModelListener, Scrollable
public class SurfEditTable
- extends JTable
A simple JTable customization that filters key events, so that the 3d surface
editor keyboard shortcuts are ignored by the table.
Such low level filtering must be understood as a PRE validation. Indeed, any
key events that is not accepted won't change anything to the cell. When focus
is on table, non ignored key set the cell in edition mode.
Any ignored key event can be caught by adding KeyListener
to this
table through addIgnoredKeyEventListener(KeyListener listener)
. This
is especially usefull to continue receiving some key events, even if the
focus is on the table.
Remark: developers wishing to handle POST edition, should work with
SurfEditTableModel.setValueAt
.
This implementation forbids any key event that:
- holds a letter (to avoid conflicts with J, K, and Z).
- holds the escape key.
- Author:
- Martin Pernollet
- See Also:
that defines the actual edition keys.
,
Serialized Form
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 |
Method Summary |
protected boolean |
acceptKeyEvent(KeyEvent e)
|
void |
addIgnoredKeyEventListener(KeyListener listener)
Add a KeyListener that will be notified for each ignored key event. |
JScrollPane |
buildTableHeaderAndScrollPane(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
Should add the returned scroll pane to the parent layout and not the table itself |
void |
clearIgnoredKeyEventListeners()
|
boolean |
editCellAt(int row,
int column,
EventObject e)
Override this method to allow selecting the whole cell content which let
the user directly replace the existing content. |
protected void |
editKeyBinding()
|
protected void |
fireIgnoredKeyEvent(KeyEvent e)
|
protected static boolean |
isKeyPressed(KeyEvent e)
|
protected static boolean |
isKeyReleased(KeyEvent e)
|
protected static boolean |
isKeyTyped(KeyEvent e)
|
void |
makeColumnHeaders(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
|
JList |
makeRowHeaders(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
|
JList |
makeTableHeaders(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
|
void |
processKeyEvent(KeyEvent e)
|
void |
removeIgnoredKeyEventListener(KeyListener listener)
|
ListModel |
RowHeaderDataList(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
|
protected void |
selectAll(EventObject e)
|
protected void |
setRowHeaderSize(JList rowHeader)
|
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, editingCanceled, editingStopped, getAccessibleContext, getAutoCreateColumnsFromModel, getAutoCreateRowSorter, getAutoResizeMode, getCellEditor, getCellEditor, getCellRect, getCellRenderer, 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, setModel, 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, 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 |
listeners
protected List<KeyListener> listeners
SurfEditTable
public SurfEditTable()
buildTableHeaderAndScrollPane
public JScrollPane buildTableHeaderAndScrollPane(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
- Should add the returned scroll pane to the parent layout and not the table itself
editKeyBinding
protected void editKeyBinding()
processKeyEvent
public void processKeyEvent(KeyEvent e)
- Overrides:
processKeyEvent
in class JComponent
acceptKeyEvent
protected boolean acceptKeyEvent(KeyEvent e)
editCellAt
public boolean editCellAt(int row,
int column,
EventObject e)
- Override this method to allow selecting the whole cell content which let
the user directly replace the existing content.
- Overrides:
editCellAt
in class JTable
selectAll
protected void selectAll(EventObject e)
addIgnoredKeyEventListener
public void addIgnoredKeyEventListener(KeyListener listener)
- Add a KeyListener that will be notified for each ignored key event.
removeIgnoredKeyEventListener
public void removeIgnoredKeyEventListener(KeyListener listener)
clearIgnoredKeyEventListeners
public void clearIgnoredKeyEventListeners()
fireIgnoredKeyEvent
protected void fireIgnoredKeyEvent(KeyEvent e)
isKeyPressed
protected static boolean isKeyPressed(KeyEvent e)
isKeyReleased
protected static boolean isKeyReleased(KeyEvent e)
isKeyTyped
protected static boolean isKeyTyped(KeyEvent e)
makeTableHeaders
public JList makeTableHeaders(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
makeRowHeaders
public JList makeRowHeaders(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
setRowHeaderSize
protected void setRowHeaderSize(JList rowHeader)
makeColumnHeaders
public void makeColumnHeaders(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
RowHeaderDataList
public ListModel RowHeaderDataList(int[] xdata,
int[] ydata,
SurfEditTableLayout layout)
Copyright © 2014. All rights reserved.