Class TagTable
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTable
-
- org.openstreetmap.josm.gui.widgets.JosmTable
-
- org.openstreetmap.josm.gui.tagging.TagTable
-
- 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
,TagEditorModel.EndEditListener
public class TagTable extends JosmTable implements TagEditorModel.EndEditListener
This is the tabular editor component for OSM tags.- Since:
- 1762
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
TagTable.AddAction
Action to be run when the user adds a new tag.(package private) class
TagTable.CellEditorRemover
This is a custom implementation of the CellEditorRemover used in JTable to handle the client propertyterminateEditOnFocusLost
.(package private) class
TagTable.DeleteAction
Action to be run when the user invokes a delete action on the table, for instance by pressing DEL.(package private) class
TagTable.PasteAction
Action to be run when the user wants to paste tags from buffer(package private) class
TagTable.SelectNextColumnCellAction
Action to be run when the user navigates to the next cell in the table, for instance by pressing TAB or ENTER.(package private) class
TagTable.SelectPreviousColumnCellAction
Action to be run when the user navigates to the previous cell in the table, for instance by pressing Shift-TAB-
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
-
-
Field Summary
Fields Modifier and Type Field Description private TagTable.AddAction
addAction
the add actionprivate TagTable.DeleteAction
deleteAction
the delete actionprivate java.util.concurrent.CopyOnWriteArrayList<java.awt.Component>
doNotStopCellEditingWhenFocused
a list of components to which focus can be transferred without stopping cell editing this table.private TagCellEditor
editor
the table cell editor used by this tableprivate TagTable.CellEditorRemover
editorRemover
private TagEditorModel
model
private java.awt.Component
nextFocusComponent
private TagTable.PasteAction
pasteAction
the tag paste action-
Fields inherited from class org.openstreetmap.josm.gui.widgets.JosmTable
selectNextColumnCellAction, selectPreviousColumnCellAction
-
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
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description TagTable(TagEditorModel model, int maxCharacters)
Creates a new tag table
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addComponentNotStoppingCellEditing(java.awt.Component component)
Marks a component that may be focused without stopping the cell editingboolean
editCellAt(int row, int column, java.util.EventObject e)
void
endCellEditing()
Requests to end the editing of any cells on this modelTagTable.AddAction
getAddAction()
Returns the add action.AutoCompletionList
getAutoCompletionList()
Gets theAutoCompletionList
the cell editor is synchronized withTagTable.DeleteAction
getDeleteAction()
Returns the delete action.TagTable.PasteAction
getPasteAction()
Returns the paste action.java.awt.Dimension
getPreferredSize()
TagCellEditor
getTableCellEditor()
Gets the editor that is used for the table cellsprotected void
init(int maxCharacters)
initialize the tableprotected boolean
processKeyBinding(javax.swing.KeyStroke ks, java.awt.event.KeyEvent e, int condition, boolean pressed)
void
removeComponentNotStoppingCellEditing(java.awt.Component component)
Removes a component added withaddComponentNotStoppingCellEditing(Component)
void
removeEditor()
void
removeNotify()
void
requestFocusInCell(int row, int col)
Request the focus in a specific cellvoid
setAutoCompletionList(AutoCompletionList autoCompletionList)
Sets the editor autocompletion listvoid
setAutoCompletionManager(AutoCompletionManager autocomplete)
Sets the autocompletion manager that should be used for editing the cellsvoid
setNextFocusComponent(java.awt.Component nextFocusComponent)
Sets the next component to request focus after navigation (with tab or enter).void
setTagCellEditor(TagCellEditor editor)
Inject a tag cell editor in the tag table-
Methods inherited from class org.openstreetmap.josm.gui.widgets.JosmTable
getPreferredFullWidthSize, installCustomNavigation
-
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, removeColumn, removeColumnSelectionInterval, 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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
editor
private TagCellEditor editor
the table cell editor used by this table
-
model
private final TagEditorModel model
-
nextFocusComponent
private java.awt.Component nextFocusComponent
-
doNotStopCellEditingWhenFocused
private final java.util.concurrent.CopyOnWriteArrayList<java.awt.Component> doNotStopCellEditingWhenFocused
a list of components to which focus can be transferred without stopping cell editing this table.
-
editorRemover
private transient TagTable.CellEditorRemover editorRemover
-
deleteAction
private TagTable.DeleteAction deleteAction
the delete action
-
addAction
private TagTable.AddAction addAction
the add action
-
pasteAction
private TagTable.PasteAction pasteAction
the tag paste action
-
-
Constructor Detail
-
TagTable
public TagTable(TagEditorModel model, int maxCharacters)
Creates a new tag table- Parameters:
model
- the tag editor modelmaxCharacters
- maximum number of characters allowed for keys and values, 0 for unlimited
-
-
Method Detail
-
getDeleteAction
public TagTable.DeleteAction getDeleteAction()
Returns the delete action.- Returns:
- the delete action used by this table
-
getAddAction
public TagTable.AddAction getAddAction()
Returns the add action.- Returns:
- the add action used by this table
-
getPasteAction
public TagTable.PasteAction getPasteAction()
Returns the paste action.- Returns:
- the paste action used by this table
-
init
protected final void init(int maxCharacters)
initialize the table- Parameters:
maxCharacters
- maximum number of characters allowed for keys and values, 0 for unlimited
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
- Overrides:
getPreferredSize
in classjavax.swing.JComponent
-
processKeyBinding
protected boolean processKeyBinding(javax.swing.KeyStroke ks, java.awt.event.KeyEvent e, int condition, boolean pressed)
- Overrides:
processKeyBinding
in classjavax.swing.JTable
-
setAutoCompletionList
public void setAutoCompletionList(AutoCompletionList autoCompletionList)
Sets the editor autocompletion list- Parameters:
autoCompletionList
- autocompletion list
-
setAutoCompletionManager
public void setAutoCompletionManager(AutoCompletionManager autocomplete)
Sets the autocompletion manager that should be used for editing the cells- Parameters:
autocomplete
- TheAutoCompletionManager
-
getAutoCompletionList
public AutoCompletionList getAutoCompletionList()
Gets theAutoCompletionList
the cell editor is synchronized with- Returns:
- The list
-
setNextFocusComponent
public void setNextFocusComponent(java.awt.Component nextFocusComponent)
Sets the next component to request focus after navigation (with tab or enter).- Parameters:
nextFocusComponent
- next component to request focus after navigation (with tab or enter)
-
getTableCellEditor
public TagCellEditor getTableCellEditor()
Gets the editor that is used for the table cells- Returns:
- The editor that is used when the user wants to enter text into a cell
-
setTagCellEditor
public void setTagCellEditor(TagCellEditor editor)
Inject a tag cell editor in the tag table- Parameters:
editor
- tag cell editor
-
requestFocusInCell
public void requestFocusInCell(int row, int col)
Request the focus in a specific cell- Parameters:
row
- The row indexcol
- The column index
-
addComponentNotStoppingCellEditing
public void addComponentNotStoppingCellEditing(java.awt.Component component)
Marks a component that may be focused without stopping the cell editing- Parameters:
component
- The component
-
removeComponentNotStoppingCellEditing
public void removeComponentNotStoppingCellEditing(java.awt.Component component)
Removes a component added withaddComponentNotStoppingCellEditing(Component)
- Parameters:
component
- The component
-
editCellAt
public boolean editCellAt(int row, int column, java.util.EventObject e)
- Overrides:
editCellAt
in classjavax.swing.JTable
-
endCellEditing
public void endCellEditing()
Description copied from interface:TagEditorModel.EndEditListener
Requests to end the editing of any cells on this model- Specified by:
endCellEditing
in interfaceTagEditorModel.EndEditListener
-
removeEditor
public void removeEditor()
- Overrides:
removeEditor
in classjavax.swing.JTable
-
removeNotify
public void removeNotify()
- Overrides:
removeNotify
in classjavax.swing.JTable
-
-