Class JosmTextField
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.text.JTextComponent
-
- javax.swing.JTextField
-
- org.openstreetmap.josm.gui.widgets.JosmTextField
-
- All Implemented Interfaces:
ComponentListener
,FocusListener
,ImageObserver
,MenuContainer
,PropertyChangeListener
,Serializable
,EventListener
,Accessible
,Scrollable
,SwingConstants
,Destroyable
- Direct Known Subclasses:
AutoCompletingTextField
,AutoCompTextField
,DisableShortcutsOnFocusGainedTextField
public class JosmTextField extends JTextField implements Destroyable, ComponentListener, FocusListener, PropertyChangeListener
Subclass ofJTextField
that:- adds a "native" context menu (undo/redo/cut/copy/paste/select all)
- adds an optional "hint" displayed when no text has been entered
- disables the global advanced key press detector when focused
- implements a workaround to JDK bug 6322854
This class must be used everywhere in core and plugins instead ofJTextField
.- Since:
- 5886
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JTextField
JTextField.AccessibleJTextField
-
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description private String
hint
private Icon
icon
private Point
iconPos
private PopupMenuLauncher
launcher
private OrientationAction
orientationAction
private Insets
originalMargin
-
Fields inherited from class javax.swing.JTextField
notifyAction
-
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
-
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
-
Fields inherited from class java.awt.Component
accessibleContext, 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
-
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
-
Constructor Summary
Constructors Constructor Description JosmTextField()
Constructs a newJosmTextField
.JosmTextField(int columns)
Constructs a new emptyJosmTextField
with the specified number of columns.JosmTextField(String text)
Constructs a newJosmTextField
initialized with the specified text.JosmTextField(String text, int columns)
Constructs a newJosmTextField
initialized with the specified text and columns.JosmTextField(Document doc, String text, int columns)
Constructs a newJosmTextField
that uses the given text storage model and the given number of columns.JosmTextField(Document doc, String text, int columns, boolean undoRedo)
Constructs a newJosmTextField
that uses the given text storage model and the given number of columns.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
componentHidden(ComponentEvent e)
void
componentMoved(ComponentEvent e)
void
componentResized(ComponentEvent e)
void
componentShown(ComponentEvent e)
void
destroy()
Called when the object has been destroyed.void
discardAllUndoableEdits()
Empties the internal undo manager.boolean
displayHint()
Return true if the textfield should display the hint text.void
drawHint(Graphics g)
Draws the hint text over the editor component.void
focusGained(FocusEvent e)
void
focusLost(FocusEvent e)
String
getHint()
Replies the hint displayed when no text has been entered.static Font
getHintFont()
Returns the font for hint texts.static Color
getHintTextColor()
Returns the color for hint texts.Icon
getIcon()
Returns the icon to displayvoid
paintComponent(Graphics g)
private void
positionIcon()
void
propertyChange(PropertyChangeEvent evt)
void
setComponentOrientation(ComponentOrientation o)
String
setHint(String hint)
Sets the hint to display when no text has been entered.void
setIcon(Icon icon)
Sets the icon to display-
Methods inherited from class javax.swing.JTextField
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset
-
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, viewToModel2D, write
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, 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, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, 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, doLayout, 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, 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, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
launcher
private final PopupMenuLauncher launcher
-
originalMargin
private Insets originalMargin
-
orientationAction
private OrientationAction orientationAction
-
-
Constructor Detail
-
JosmTextField
public JosmTextField(Document doc, String text, int columns)
Constructs a newJosmTextField
that uses the given text storage model and the given number of columns. This is the constructor through which the other constructors feed. If the document isnull
, a default model is created.- Parameters:
doc
- the text storage to use; if this isnull
, a default will be provided by calling thecreateDefaultModel
methodtext
- the initial string to display, ornull
columns
- the number of columns to use to calculate the preferred width >= 0; ifcolumns
is set to zero, the preferred width will be whatever naturally results from the component implementation- Throws:
IllegalArgumentException
- ifcolumns
< 0
-
JosmTextField
public JosmTextField(Document doc, String text, int columns, boolean undoRedo)
Constructs a newJosmTextField
that uses the given text storage model and the given number of columns. This is the constructor through which the other constructors feed. If the document isnull
, a default model is created.- Parameters:
doc
- the text storage to use; if this isnull
, a default will be provided by calling thecreateDefaultModel
methodtext
- the initial string to display, ornull
columns
- the number of columns to use to calculate the preferred width >= 0; ifcolumns
is set to zero, the preferred width will be whatever naturally results from the component implementationundoRedo
- Enables or not Undo/Redo feature. Not recommended for table cell editors, unless each cell provides its own editor- Throws:
IllegalArgumentException
- ifcolumns
< 0
-
JosmTextField
public JosmTextField(String text, int columns)
Constructs a newJosmTextField
initialized with the specified text and columns. A default model is created.- Parameters:
text
- the text to be displayed, ornull
columns
- the number of columns to use to calculate the preferred width; if columns is set to zero, the preferred width will be whatever naturally results from the component implementation
-
JosmTextField
public JosmTextField(String text)
Constructs a newJosmTextField
initialized with the specified text. A default model is created and the number of columns is 0.- Parameters:
text
- the text to be displayed, ornull
-
JosmTextField
public JosmTextField(int columns)
Constructs a new emptyJosmTextField
with the specified number of columns. A default model is created and the initial string is set tonull
.- Parameters:
columns
- the number of columns to use to calculate the preferred width; if columns is set to zero, the preferred width will be whatever naturally results from the component implementation
-
JosmTextField
public JosmTextField()
Constructs a newJosmTextField
. A default model is created, the initial string isnull
, and the number of columns is set to 0.
-
-
Method Detail
-
getHint
public final String getHint()
Replies the hint displayed when no text has been entered.- Returns:
- the hint
- Since:
- 7505
-
setHint
public String setHint(String hint)
Sets the hint to display when no text has been entered.- Parameters:
hint
- the hint to set- Returns:
- the old hint
- Since:
- 18221 (signature)
-
displayHint
public boolean displayHint()
Return true if the textfield should display the hint text.- Returns:
- whether to display the hint text
- Since:
- 18221
-
setIcon
public void setIcon(Icon icon)
Sets the icon to display- Parameters:
icon
- the icon to set- Since:
- 17768
-
positionIcon
private void positionIcon()
-
setComponentOrientation
public void setComponentOrientation(ComponentOrientation o)
- Overrides:
setComponentOrientation
in classJTextComponent
-
discardAllUndoableEdits
public final void discardAllUndoableEdits()
Empties the internal undo manager.- Since:
- 14977
-
getHintTextColor
public static Color getHintTextColor()
Returns the color for hint texts.- Returns:
- the Color for hint texts
-
getHintFont
public static Font getHintFont()
Returns the font for hint texts.- Returns:
- the font for hint texts
-
paintComponent
public void paintComponent(Graphics g)
- Overrides:
paintComponent
in classJComponent
-
drawHint
public void drawHint(Graphics g)
Draws the hint text over the editor component.- Parameters:
g
- the graphics context
-
focusGained
public void focusGained(FocusEvent e)
- Specified by:
focusGained
in interfaceFocusListener
-
focusLost
public void focusLost(FocusEvent e)
- Specified by:
focusLost
in interfaceFocusListener
-
destroy
public void destroy()
Description copied from interface:Destroyable
Called when the object has been destroyed.- Specified by:
destroy
in interfaceDestroyable
-
componentResized
public void componentResized(ComponentEvent e)
- Specified by:
componentResized
in interfaceComponentListener
-
componentMoved
public void componentMoved(ComponentEvent e)
- Specified by:
componentMoved
in interfaceComponentListener
-
componentShown
public void componentShown(ComponentEvent e)
- Specified by:
componentShown
in interfaceComponentListener
-
componentHidden
public void componentHidden(ComponentEvent e)
- Specified by:
componentHidden
in interfaceComponentListener
-
propertyChange
public void propertyChange(PropertyChangeEvent evt)
- Specified by:
propertyChange
in interfacePropertyChangeListener
-
-