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:
java.awt.event.ComponentListener,java.awt.event.FocusListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.beans.PropertyChangeListener,java.io.Serializable,java.util.EventListener,javax.accessibility.Accessible,javax.swing.Scrollable,javax.swing.SwingConstants,Destroyable
- Direct Known Subclasses:
AutoCompletingTextField,AutoCompTextField,DisableShortcutsOnFocusGainedTextField
public class JosmTextField extends javax.swing.JTextField implements Destroyable, java.awt.event.ComponentListener, java.awt.event.FocusListener, java.beans.PropertyChangeListener
Subclass ofJTextFieldthat:- 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
javax.swing.JTextField.AccessibleJTextField
-
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Stringhintprivate javax.swing.Iconiconprivate java.awt.PointiconPosprivate PopupMenuLauncherlauncherprivate OrientationActionorientationActionprivate java.awt.InsetsoriginalMargin-
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
-
-
Constructor Summary
Constructors Constructor Description JosmTextField()Constructs a newJosmTextField.JosmTextField(int columns)Constructs a new emptyJosmTextFieldwith the specified number of columns.JosmTextField(java.lang.String text)Constructs a newJosmTextFieldinitialized with the specified text.JosmTextField(java.lang.String text, int columns)Constructs a newJosmTextFieldinitialized with the specified text and columns.JosmTextField(javax.swing.text.Document doc, java.lang.String text, int columns)Constructs a newJosmTextFieldthat uses the given text storage model and the given number of columns.JosmTextField(javax.swing.text.Document doc, java.lang.String text, int columns, boolean undoRedo)Constructs a newJosmTextFieldthat 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 voidcomponentHidden(java.awt.event.ComponentEvent e)voidcomponentMoved(java.awt.event.ComponentEvent e)voidcomponentResized(java.awt.event.ComponentEvent e)voidcomponentShown(java.awt.event.ComponentEvent e)voiddestroy()Called when the object has been destroyed.voiddiscardAllUndoableEdits()Empties the internal undo manager.booleandisplayHint()Return true if the textfield should display the hint text.voiddrawHint(java.awt.Graphics g)Draws the hint text over the editor component.voidfocusGained(java.awt.event.FocusEvent e)voidfocusLost(java.awt.event.FocusEvent e)java.lang.StringgetHint()Replies the hint displayed when no text has been entered.static java.awt.FontgetHintFont()Returns the font for hint texts.static java.awt.ColorgetHintTextColor()Returns the color for hint texts.javax.swing.IcongetIcon()Returns the icon to displayvoidpaintComponent(java.awt.Graphics g)private voidpositionIcon()voidpropertyChange(java.beans.PropertyChangeEvent evt)voidsetComponentOrientation(java.awt.ComponentOrientation o)java.lang.StringsetHint(java.lang.String hint)Sets the hint to display when no text has been entered.voidsetIcon(javax.swing.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
-
hint
private java.lang.String hint
-
icon
private javax.swing.Icon icon
-
iconPos
private java.awt.Point iconPos
-
originalMargin
private java.awt.Insets originalMargin
-
orientationAction
private OrientationAction orientationAction
-
-
Constructor Detail
-
JosmTextField
public JosmTextField(javax.swing.text.Document doc, java.lang.String text, int columns)
Constructs a newJosmTextFieldthat 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 thecreateDefaultModelmethodtext- the initial string to display, ornullcolumns- the number of columns to use to calculate the preferred width >= 0; ifcolumnsis set to zero, the preferred width will be whatever naturally results from the component implementation- Throws:
java.lang.IllegalArgumentException- ifcolumns< 0
-
JosmTextField
public JosmTextField(javax.swing.text.Document doc, java.lang.String text, int columns, boolean undoRedo)
Constructs a newJosmTextFieldthat 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 thecreateDefaultModelmethodtext- the initial string to display, ornullcolumns- the number of columns to use to calculate the preferred width >= 0; ifcolumnsis 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:
java.lang.IllegalArgumentException- ifcolumns< 0
-
JosmTextField
public JosmTextField(java.lang.String text, int columns)
Constructs a newJosmTextFieldinitialized with the specified text and columns. A default model is created.- Parameters:
text- the text to be displayed, ornullcolumns- 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(java.lang.String text)
Constructs a newJosmTextFieldinitialized 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 emptyJosmTextFieldwith 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 java.lang.String getHint()
Replies the hint displayed when no text has been entered.- Returns:
- the hint
- Since:
- 7505
-
setHint
public java.lang.String setHint(java.lang.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
-
getIcon
public javax.swing.Icon getIcon()
Returns the icon to display- Returns:
- the icon to display
- Since:
- 17768
-
setIcon
public void setIcon(javax.swing.Icon icon)
Sets the icon to display- Parameters:
icon- the icon to set- Since:
- 17768
-
positionIcon
private void positionIcon()
-
setComponentOrientation
public void setComponentOrientation(java.awt.ComponentOrientation o)
- Overrides:
setComponentOrientationin classjavax.swing.text.JTextComponent
-
discardAllUndoableEdits
public final void discardAllUndoableEdits()
Empties the internal undo manager.- Since:
- 14977
-
getHintTextColor
public static java.awt.Color getHintTextColor()
Returns the color for hint texts.- Returns:
- the Color for hint texts
-
getHintFont
public static java.awt.Font getHintFont()
Returns the font for hint texts.- Returns:
- the font for hint texts
-
paintComponent
public void paintComponent(java.awt.Graphics g)
- Overrides:
paintComponentin classjavax.swing.JComponent
-
drawHint
public void drawHint(java.awt.Graphics g)
Draws the hint text over the editor component.- Parameters:
g- the graphics context
-
focusGained
public void focusGained(java.awt.event.FocusEvent e)
- Specified by:
focusGainedin interfacejava.awt.event.FocusListener
-
focusLost
public void focusLost(java.awt.event.FocusEvent e)
- Specified by:
focusLostin interfacejava.awt.event.FocusListener
-
destroy
public void destroy()
Description copied from interface:DestroyableCalled when the object has been destroyed.- Specified by:
destroyin interfaceDestroyable
-
componentResized
public void componentResized(java.awt.event.ComponentEvent e)
- Specified by:
componentResizedin interfacejava.awt.event.ComponentListener
-
componentMoved
public void componentMoved(java.awt.event.ComponentEvent e)
- Specified by:
componentMovedin interfacejava.awt.event.ComponentListener
-
componentShown
public void componentShown(java.awt.event.ComponentEvent e)
- Specified by:
componentShownin interfacejava.awt.event.ComponentListener
-
componentHidden
public void componentHidden(java.awt.event.ComponentEvent e)
- Specified by:
componentHiddenin interfacejava.awt.event.ComponentListener
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent evt)
- Specified by:
propertyChangein interfacejava.beans.PropertyChangeListener
-
-