Package org.openstreetmap.josm.gui.util
Class AdvancedKeyPressDetector
- java.lang.Object
-
- org.openstreetmap.josm.gui.util.AdvancedKeyPressDetector
-
- All Implemented Interfaces:
java.awt.event.AWTEventListener
,java.util.EventListener
public class AdvancedKeyPressDetector extends java.lang.Object implements java.awt.event.AWTEventListener
Helper object that allows cross-platform detection of key press and release events instance is available globally asMain.map.keyDetector
.- Since:
- 7217
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
enabled
private java.util.List<KeyPressReleaseListener>
keyListeners
private ListenerList<ModifierExListener>
modifierExListeners
private int
previousModifiersEx
private java.awt.event.KeyEvent
releaseEvent
private java.util.Set<java.lang.Integer>
set
private javax.swing.Timer
timer
-
Constructor Summary
Constructors Constructor Description AdvancedKeyPressDetector()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addKeyListener(KeyPressReleaseListener l)
Adds an object that wants to receive key press and release events.void
addModifierExListener(ModifierExListener l)
Adds an object that wants to receive extended key modifier changed events.void
eventDispatched(java.awt.AWTEvent e)
private static boolean
isFocusInMainWindow()
boolean
isKeyPressed(int keyCode)
Allows to determine if the key with specific code is pressed nowprivate void
processKeyEvent(java.awt.event.KeyEvent e)
void
register()
Register this object as AWTEventListenervoid
removeKeyListener(KeyPressReleaseListener l)
Removes the listener.void
removeModifierExListener(ModifierExListener l)
Removes the extended key modifier listener.void
setEnabled(boolean enabled)
Sets the enabled state of the key detector.void
unregister()
Unregister this object as AWTEventListener lists of listeners are not cleared!
-
-
-
Field Detail
-
set
private final java.util.Set<java.lang.Integer> set
-
releaseEvent
private java.awt.event.KeyEvent releaseEvent
-
timer
private javax.swing.Timer timer
-
keyListeners
private final java.util.List<KeyPressReleaseListener> keyListeners
-
modifierExListeners
private final ListenerList<ModifierExListener> modifierExListeners
-
previousModifiersEx
private int previousModifiersEx
-
enabled
private boolean enabled
-
-
Constructor Detail
-
AdvancedKeyPressDetector
public AdvancedKeyPressDetector()
-
-
Method Detail
-
addKeyListener
public void addKeyListener(KeyPressReleaseListener l)
Adds an object that wants to receive key press and release events.- Parameters:
l
- listener to add
-
addModifierExListener
public void addModifierExListener(ModifierExListener l)
Adds an object that wants to receive extended key modifier changed events.- Parameters:
l
- listener to add- Since:
- 12517
-
removeKeyListener
public void removeKeyListener(KeyPressReleaseListener l)
Removes the listener.- Parameters:
l
- listener to remove
-
removeModifierExListener
public void removeModifierExListener(ModifierExListener l)
Removes the extended key modifier listener.- Parameters:
l
- listener to remove- Since:
- 12517
-
register
public void register()
Register this object as AWTEventListener
-
unregister
public void unregister()
Unregister this object as AWTEventListener lists of listeners are not cleared!
-
processKeyEvent
private void processKeyEvent(java.awt.event.KeyEvent e)
-
eventDispatched
public void eventDispatched(java.awt.AWTEvent e)
- Specified by:
eventDispatched
in interfacejava.awt.event.AWTEventListener
-
isKeyPressed
public boolean isKeyPressed(int keyCode)
Allows to determine if the key with specific code is pressed now- Parameters:
keyCode
- the key code, for example KeyEvent.VK_ENTER- Returns:
- true if the key is pressed now
-
setEnabled
public final void setEnabled(boolean enabled)
Sets the enabled state of the key detector. We need to disable it when text fields that disable shortcuts gain focus.- Parameters:
enabled
- iftrue
, enables this key detector. Iffalse
, disables it- Since:
- 7539
-
isFocusInMainWindow
private static boolean isFocusInMainWindow()
-
-