public abstract class Keyboard extends java.lang.Object implements Initializable
Rule 1
.KeyProcessor.map(int)
).Rule 2
.
CTRL-SHIFT-ESC-
CTRL-ESC-
CTRL-SHIFT-
CTRL-
SHIFT-ESC-
ESC-
SHIFT-
CTRL-ESC-
CTRL-
ESC-
Key Code | Key Name |
---|---|
0 | CTRL-@ |
1 | CTRL-A |
2 | CTRL-B |
3 | CTRL-C |
4 | CTRL-D |
5 | CTRL-E |
6 | CTRL-F |
7 | CTRL-G |
8 | BACKSPACE |
9 | TAB |
10 | CTRL-J |
11 | CTRL-K |
12 | CTRL-L |
13 | RETURN |
14 | CTRL-N |
15 | CTRL-O |
16 | CTRL-P |
17 | CTRL-Q |
18 | CTRL-R |
19 | CTRL-S |
20 | CTRL-T |
21 | CTRL-U |
22 | CTRL-V |
23 | CTRL-W |
24 | CTRL-X |
25 | CTRL-Y |
26 | CTRL-Z |
27 | ESC |
28 | CTRL-\ |
29 | CTRL-] |
30 | CTRL-^ |
31 | CTRL-_ |
127 | DEL |
Key Code | Key Name |
---|---|
501 | CURSOR-UP |
502 | CURSOR-DOWN |
503 | CURSOR-RIGHT |
504 | CURSOR-LEFT |
505 | HOME |
506 | END |
507 | PAGE-UP |
508 | PAGE-DOWN |
509 | BACK-TAB |
510 | INS |
511 | HELP-KEY |
512 | DEL-CHAR |
513 | EXECUTE |
514 | PAGE |
515 | FIND |
516 | INS-LINE |
517 | DEL-LINE |
518 | LINE-ERASE |
519 | PAGE-ERASE |
520 | SHIFT-BACKSPACE |
521 | SHIFT-TAB |
522 | EXIT |
525 | SHIFT-RETURN |
535 | ERASE |
536 | WHITE |
537 | BLUE |
538 | RED |
539 | SHIFT-ESC |
541 | CTRL-BREAK |
551 | U1 |
552 | U2 |
553 | U3 |
554 | U4 |
555 | U5 |
556 | U6 |
557 | U7 |
558 | U8 |
559 | U9 |
560 | U10 |
586 | DO |
587 | SELECT |
588 | REMOVE |
589 | INSERT-HERE |
609 | MOUSE-SELECT-UP and LEFT-MOUSE-UP |
610 | MOUSE-MOVE-UP |
611 | MOUSE-MENU-UP and RIGHT-MOUSE-UP |
612 | MOUSE-EXTEND-UP |
617 | MOUSE-SELECT-DOWN and LEFT-MOUSE-DOWN |
618 | MOUSE-MOVE-DOWN |
619 | MOUSE-MENU-DOWN and RIGHT-MOUSE-DOWN |
620 | MOUSE-EXTEND-DOWN |
625 | MOUSE-SELECT-CLICK and LEFT-MOUSE-CLICK |
626 | MOUSE-MOVE-CLICK |
627 | MOUSE-MENU-CLICK and RIGHT-MOUSE-CLICK |
628 | MOUSE-EXTEND-CLICK |
633 | MOUSE-SELECT-DRAG |
634 | MOUSE-MOVE-DRAG |
635 | MOUSE-MENU-DRAG |
636 | MOUSE-EXTEND-DRAG |
640 | MOUSE-MOVE |
649 | MOUSE-SELECT-DBLCLICK and LEFT-MOUSE-DBLCLICK |
650 | MOUSE-MOVE-DBLCLICK |
651 | MOUSE-MENU-DBLCLICK and RIGHT-MOUSE-DBLCLICK |
652 | MOUSE-EXTEND-DBLCLICK |
First of all, the f2l map serves as a table of all valid key function names.
f2l map has the key function (String) as a key. Values are sets (LinkedHashSet) of key labels which have been assigned this key function. Therefore, a single key function can be mapped to multiple key labels.
l2f map has the key label (String) as a key. Values are key functions (String) assigned to those key labels. A single key label maps into a single key function, although more than one key label can be mapped into the same key function.
When a key label has to be remapped into a different key function, both maps are modified. The old mapping of this key label is queried from the l2f map. If there was some mapping found in the l2f map, the following cleanup is done:
Modifier and Type | Class and Description |
---|---|
private static class |
Keyboard.ContextContainer
Simple container that stores and returns a context-local instance of
the outer class.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ABORT |
private java.util.Map<java.lang.String,java.lang.Integer> |
altLabel
alternate key labels
|
static java.lang.String |
ANY_KEY |
static java.lang.String |
ANY_PRINTABLE |
static java.lang.String |
APPEND_LINE |
static java.lang.String |
BACK_TAB |
static java.lang.String |
BACKSPACE |
protected java.util.Map<java.lang.String,java.lang.Integer> |
basicKeyCodes
A map of each
basicKeys to their index. |
protected java.lang.String[] |
basicKeys
basic key names
|
static java.lang.String |
BELL |
private java.lang.String |
bit10
The label for the bit 10 modifier.
|
static java.lang.String |
BLOCK |
static java.lang.String |
BOTTOM_COLUMN |
static java.lang.String |
BREAK_LINE |
static java.lang.String |
CANCEL_EDIT |
static java.lang.String |
CANCEL_PICK |
static java.lang.String |
CHANGE_NODE_DIRECT |
static java.lang.String |
CHANGE_TOP_VIS_NODE |
static java.lang.String |
CHOICES |
static java.lang.String |
CHOOSE |
static java.lang.String |
CLEAR |
static java.lang.String |
CLOSE |
static java.lang.String |
COLUMN_SORTING |
static java.lang.String |
COMPILE |
static java.lang.String |
CONNECT |
static java.lang.String |
COPY |
static java.lang.String |
CURSOR_DOWN |
static java.lang.String |
CURSOR_LEFT |
static java.lang.String |
CURSOR_RIGHT |
static java.lang.String |
CURSOR_UP |
static java.lang.String |
CUT |
static int |
DE_HIGHEST
highest developer event "U10", Progress key code 560
|
static int |
DE_LOWEST
lowest developer event "U1", Progress key code 551
|
static java.lang.String |
DEFAULT_ACTION |
static java.lang.String |
DEFAULT_POP_UP |
static java.lang.String |
DELETE_CHARACTER |
static java.lang.String |
DELETE_COLUMN |
static java.lang.String |
DELETE_END_LINE |
static java.lang.String |
DELETE_FIELD |
static java.lang.String |
DELETE_LINE |
static java.lang.String |
DELETE_WORD |
static java.lang.String |
DESELECT |
static java.lang.String |
DESELECTION |
static java.lang.String |
DROP_FILE_NOTIFY |
static java.lang.String |
EDITOR_BACKTAB |
static java.lang.String |
EDITOR_TAB |
static java.lang.String |
EMPTY_SELECTION |
static java.lang.String |
END |
static java.lang.String |
END_BOX_SELECTION |
static java.lang.String |
END_EDIT |
static java.lang.String |
END_ERROR |
static java.lang.String |
END_MOVE |
static java.lang.String |
END_RESIZE |
static java.lang.String |
END_ROW_RESIZE |
static java.lang.String |
END_SEARCH |
static java.lang.String |
ENDKEY |
static java.lang.String |
ENTER_MENUBAR |
static java.lang.String |
ENTRY |
static java.lang.String |
ERROR |
static java.lang.String |
ESC_FUNC |
private static java.util.Set<java.lang.String> |
EVENT_TYPES_MOUSE_LABELS |
private static java.util.Set<java.lang.Integer> |
EVENT_TYPES_PG_CODES
event codes full list for EVENT-TYPE="PROGRESS"
|
private static java.lang.String[] |
evNames1
Event/action names.
|
static java.lang.String |
EXIT |
protected java.util.Map<java.lang.Integer,java.lang.String> |
extendedKeys
extended key names
|
protected java.util.Map<java.lang.String,java.lang.Integer> |
extendedLabels
Extended labels to their keys.
|
private java.util.Map<java.lang.String,java.util.Set<java.lang.String>> |
f2l
mapping of key functions into key labels the function is mapped to
|
static java.lang.String |
FIND |
static java.lang.String |
FIND_NEXT |
static java.lang.String |
FIND_PREVIOUS |
static java.lang.String |
GET |
static java.lang.String |
GO |
static java.lang.String |
GOTO |
static java.lang.String |
HELP |
static java.lang.String |
HOME |
static java.lang.String |
INSERT_COLUMN |
static java.lang.String |
INSERT_FIELD |
static java.lang.String |
INSERT_FIELD_DATA |
static java.lang.String |
INSERT_FIELD_LABEL |
static java.lang.String |
INSERT_MODE |
static int |
KA_APPEND_LINE
key action code
|
static int |
KA_BACK_TAB
key action code
|
static int |
KA_BACKSPACE
key action codes
|
static int |
KA_BELL
key action code
|
static int |
KA_BLOCK
key action code
|
static int |
KA_CLEAR
key action code
|
static int |
KA_COPY
key action code
|
static int |
KA_CURSOR_DOWN
key action code
|
static int |
KA_CURSOR_LEFT
key action code
|
static int |
KA_CURSOR_RIGHT
key action code
|
static int |
KA_CURSOR_UP
key action code
|
static int |
KA_CUT
key action code
|
static int |
KA_DEFAULT_POP_UP
key action code
|
static int |
KA_DELETE_CHARACTER
key action code
|
static int |
KA_DELETE_END_LINE
key action code
|
static int |
KA_DELETE_LINE
key action code
|
static int |
KA_DELETE_WORD
key action code
|
static int |
KA_EDITOR_BACKTAB
key action code
|
static int |
KA_EDITOR_TAB
key action code
|
static int |
KA_END
key action code
|
static int |
KA_END_ERROR
key action code
|
static int |
KA_ENDKEY
key action code
|
static int |
KA_ERROR
key action code
|
private static int |
KA_FIRST_CODE
Starting point for key action codes.
|
static int |
KA_GET
key action code
|
static int |
KA_GO
key action code
|
static int |
KA_HELP
key action code
|
static int |
KA_HOME
key action code
|
static int |
KA_INSERT_MODE
key action code
|
private static int |
KA_LAST_CODE
Ending point for key action codes.
|
static int |
KA_LEFT_END
key action code
|
static int |
KA_NEW_LINE
key action code
|
static int |
KA_NEXT_WORD
key action code
|
static int |
KA_OPEN_LINE_ABOVE
key action code
|
static int |
KA_PAGE_DOWN
key action code
|
static int |
KA_PAGE_LEFT
key action code
|
static int |
KA_PAGE_RIGHT
key action code
|
static int |
KA_PAGE_UP
key action code
|
static int |
KA_PASTE
key action code
|
static int |
KA_PICK
key action code
|
static int |
KA_PREV_WORD
key action code
|
static int |
KA_PUT
key action code
|
static int |
KA_RECALL
key action code
|
static int |
KA_REPLACE
key action code
|
static int |
KA_RETURN
key action code
|
static int |
KA_RIGHT_END
key action code
|
static int |
KA_STOP
key action code
|
static int |
KA_TAB
key action code
|
private static Keyboard[] |
kbs
A list of all keyboards implemented in FWD - used during parsing by
registeredEventName(String) ,
to check if a certain trigger's event is known by the FWD runtime. |
private java.util.Map<java.lang.String,java.lang.String> |
l2f
mapping of key labels into key functions that are assigned to them
|
static java.lang.String |
LEAVE |
static java.lang.String |
LEFT_END |
static java.lang.String |
LEFT_MOUSE_CLICK |
static java.lang.String |
LEFT_MOUSE_DBLCLICK |
static java.lang.String |
LEFT_MOUSE_DOWN |
static java.lang.String |
LEFT_MOUSE_UP |
static java.lang.String |
MAIN_MENU |
static java.lang.String |
MENU_DROP |
static java.lang.String |
MIDDLE_MOUSE_CLICK |
static java.lang.String |
MIDDLE_MOUSE_DBLCLICK |
static java.lang.String |
MIDDLE_MOUSE_DOWN |
static java.lang.String |
MIDDLE_MOUSE_UP |
static java.lang.String |
MODIFIED |
static java.lang.String |
MOUSE_CLICK |
static java.lang.String |
MOUSE_DBLCLICK |
static java.lang.String |
MOUSE_DOWN |
static java.lang.String |
MOUSE_EXTEND_CLICK |
static java.lang.String |
MOUSE_EXTEND_DBLCLICK |
static java.lang.String |
MOUSE_EXTEND_DOWN |
static java.lang.String |
MOUSE_EXTEND_UP |
static java.lang.String |
MOUSE_MENU_CLICK |
static java.lang.String |
MOUSE_MENU_DBLCLICK |
static java.lang.String |
MOUSE_MENU_DOWN |
static java.lang.String |
MOUSE_MENU_UP |
static java.lang.String |
MOUSE_MOVE |
static java.lang.String |
MOUSE_MOVE_CLICK |
static java.lang.String |
MOUSE_MOVE_DBLCLICK |
static java.lang.String |
MOUSE_MOVE_DOWN |
static java.lang.String |
MOUSE_MOVE_UP |
static java.lang.String |
MOUSE_SELECT_CLICK |
static java.lang.String |
MOUSE_SELECT_DBLCLICK |
static java.lang.String |
MOUSE_SELECT_DOWN |
static java.lang.String |
MOUSE_SELECT_UP |
static java.lang.String |
MOUSE_UP |
static java.lang.String |
MOVE |
static java.lang.String |
NEW |
static java.lang.String |
NEW_LINE |
static java.lang.String |
NEXT_ERROR |
static java.lang.String |
NEXT_FRAME |
static java.lang.String |
NEXT_WORD |
static java.lang.String |
NODE_AFTER_EDIT |
static java.lang.String |
NODE_BEFORE_EDIT |
static java.lang.String |
NODE_CHECK |
static java.lang.String |
NODE_CLICK |
static java.lang.String |
NODE_COLLAPSED |
static java.lang.String |
NODE_COLLAPSING |
static java.lang.String |
NODE_EXPANDED |
static java.lang.String |
NODE_EXPANDING |
static java.lang.String |
OBJECT_CLICKED |
static java.lang.String |
OBJECT_LOST_FOCUS |
static java.lang.String |
OBJECT_VALUE_CHANGED |
static java.lang.String |
OFF_END |
static java.lang.String |
OFF_HOME |
static java.lang.String |
OLE_COMPLETE_DRAG |
static java.lang.String |
OLE_DRAG_DROP |
static java.lang.String |
OLE_DRAG_OVER |
static java.lang.String |
OLE_GIVE_FEEDBACK |
static java.lang.String |
OLE_SET_DATA |
static java.lang.String |
OLE_START_DRAG |
static java.lang.String |
OPEN_LINE_ABOVE |
static java.lang.String |
OPTIONS |
private java.util.Map<java.lang.Integer,java.lang.String> |
osEvents
Map of events generated by 4GL from OS events.
|
private java.util.Map<java.lang.String,java.lang.Integer> |
osEventsCodes
Map of events to codes generated by 4GL from OS events.
|
static java.lang.String |
PAGE_DOWN |
static java.lang.String |
PAGE_LEFT |
static java.lang.String |
PAGE_RIGHT |
static java.lang.String |
PAGE_UP |
static java.lang.String |
PARENT_WINDOW_CLOSE |
static java.lang.String |
PASTE |
static java.lang.String |
PEN_DOWN |
static java.lang.String |
PEN_UP |
static java.lang.String |
PICK |
static java.lang.String |
PICK_AREA |
static java.lang.String |
PICK_BOTH |
static java.lang.String |
PREV_FRAME |
static java.lang.String |
PREV_WORD |
static java.lang.String |
PROCEDURE_COMPLETE |
static java.lang.String |
PUT |
static java.lang.String |
READ_RESPONSE |
static java.lang.String |
RECALL |
static java.lang.String |
REPLACE |
static java.lang.String |
REPORTS |
static java.lang.String |
RESUME_DISPLAY |
static java.lang.String |
RETURN |
static java.lang.String |
RIGHT_END |
static java.lang.String |
RIGHT_MOUSE_CLICK |
static java.lang.String |
RIGHT_MOUSE_DBLCLICK |
static java.lang.String |
RIGHT_MOUSE_DOWN |
static java.lang.String |
RIGHT_MOUSE_UP |
static java.lang.String |
ROW_DISPLAY |
static java.lang.String |
ROW_ENTRY |
static java.lang.String |
ROW_LEAVE |
static java.lang.String |
SAVE_AS |
static java.lang.String |
SCROLL_LEFT |
static java.lang.String |
SCROLL_MODE |
static java.lang.String |
SCROLL_NOTIFY |
static java.lang.String |
SCROLL_RIGHT |
static int |
SE_ANY_KEY
synthetic event code
|
static int |
SE_ANY_PRINTABLE
synthetic event code
|
static int |
SE_CANCEL_EDIT
synthetic event codes related to SPREADSHEET widget
|
static int |
SE_CHANGE_NODE_DIRECT |
static int |
SE_CHANGE_TOP_VISIBLE_NODE |
static int |
SE_CHOOSE
synthetic event code
|
static int |
SE_COLUMN_SORTING |
static int |
SE_CONNECT
synthetic event code
|
static int |
SE_DEFAULT_ACTION
synthetic event code
|
static int |
SE_DESELECT |
static int |
SE_DESELECTION
synthetic event codes related to direct manipulation.
|
static int |
SE_DROP_FILE_NOTIFY
synthetic event codes related to file list drag and drop.
|
static int |
SE_EMPTY_SELECTION |
static int |
SE_END_BOX_SELECTION |
static int |
SE_END_EDIT |
static int |
SE_END_MOVE |
static int |
SE_END_RESIZE |
static int |
SE_END_ROW_RESIZE |
static int |
SE_END_SEARCH
synthetic event code
|
static int |
SE_ENTRY
synthetic event code
|
static int |
SE_LEAVE
synthetic event code
|
static int |
SE_MENU_DROP
synthetic event code
|
static int |
SE_MODIFIED |
static int |
SE_MOUSE_CLICK
synthetic event codes related to PROGRESS_BAR widget
|
static int |
SE_MOUSE_DBLCLICK |
static int |
SE_MOUSE_DOWN |
static int |
SE_MOUSE_MOVE |
static int |
SE_MOUSE_SELECT_DOWN
The virtual key code for MOUSE_SELECT_DOWN
|
static int |
SE_MOUSE_SELECT_UP
The virtual key code for MOUSE_SELECT_UP
|
static int |
SE_MOUSE_UP |
static int |
SE_NEXT_FRAME
synthetic event code
|
static int |
SE_NODE_AFTER_EDIT |
static int |
SE_NODE_BEFORE_EDIT |
static int |
SE_NODE_CHECK |
static int |
SE_NODE_CLICK |
static int |
SE_NODE_COLLAPSED |
static int |
SE_NODE_COLLAPSING |
static int |
SE_NODE_EXPANDED |
static int |
SE_NODE_EXPANDING
synthetic event codes related to TREEVIEW widget
|
static int |
SE_OBJECT_CLICKED |
static int |
SE_OBJECT_LOST_FOCUS |
static int |
SE_OBJECT_VALUE_CHANGED |
static int |
SE_OFF_END |
static int |
SE_OLE_COMPLETE_DRAG
synthetic event codes related to OLE Drga & Drop
|
static int |
SE_OLE_DRAG_DROP |
static int |
SE_OLE_DRAG_OVER |
static int |
SE_OLE_GIVE_FEEDBACK |
static int |
SE_OLE_SET_DATA |
static int |
SE_OLE_START_DRAG |
static int |
SE_PEN_DOWN
synthetic event codes related to SIGNATURE widget
|
static int |
SE_PEN_UP |
static int |
SE_PREV_FRAME
synthetic event code
|
static int |
SE_PROCEDURE_COMPLETE
synthetic event code
|
static int |
SE_READ_RESPONSE
synthetic event code
|
static int |
SE_ROW_DISPLAY
synthetic event code
|
static int |
SE_ROW_ENTRY |
static int |
SE_ROW_LEAVE |
static int |
SE_SELECT |
static int |
SE_SELECTION |
static int |
SE_SELECTION_CHANGED |
static int |
SE_START_BOX_SELECTION |
static int |
SE_START_EDIT |
static int |
SE_START_MOVE |
static int |
SE_START_RESIZE |
static int |
SE_START_ROW_RESIZE |
static int |
SE_START_SEARCH
synthetic event code
|
static int |
SE_TOP_LEFT_CHANGED |
static int |
SE_VALUE_CHANGED
synthetic event code
|
static int |
SE_WINDOW_CLOSE
codes for window events generated by 4GL
|
static int |
SE_WINDOW_MAXIMIZED |
static int |
SE_WINDOW_MINIMIZED |
static int |
SE_WINDOW_RESIZED |
static int |
SE_WINDOW_RESTORED |
static java.lang.String |
SELECT |
static java.lang.String |
SELECTION |
static java.lang.String |
SELECTION_CHANGED |
static java.lang.String |
SETTINGS |
static java.lang.String |
START_BOX_SELECTION |
static java.lang.String |
START_EDIT |
static java.lang.String |
START_MOVE |
static java.lang.String |
START_RESIZE |
static java.lang.String |
START_ROW_RESIZE |
static java.lang.String |
START_SEARCH |
static java.lang.String |
STOP |
static java.lang.String |
STOP_DISPLAY |
static java.lang.String |
TAB |
static java.lang.String |
TOP_COLUMN |
static java.lang.String |
TOP_LEFT_CHANGED |
static java.lang.String |
UNIX_END |
static java.lang.String |
VALUE_CHANGED |
static int |
VK_FIVE_EIGHTHS |
static int |
VK_LEFT_SINGLE_QUOTATION_MARK |
static int |
VK_ONE_EIGHTH |
static int |
VK_RIGHT_SINGLE_QUOTATION_MARK |
static int |
VK_SEVEN_EIGHTHS |
static int |
VK_THREE_EIGHTHS |
static java.lang.String |
WINDOW_CLOSE |
static java.lang.String |
WINDOW_MAXIMIZED |
static java.lang.String |
WINDOW_MINIMIZED |
static java.lang.String |
WINDOW_RESIZED |
static java.lang.String |
WINDOW_RESTORED |
private static Keyboard.ContextContainer |
work
Stores context-local state variables.
|
Constructor and Description |
---|
Keyboard(java.lang.String bit10)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addAltLabel(java.lang.String label,
int code)
Creates an entry in the alternate key label map.
|
protected void |
addFunc(java.lang.String func,
java.lang.String[] labels)
Creates an entry in the key function map.
|
protected void |
addOSEvent(java.lang.String label,
int code)
Creates an entry in the alternate key label map.
|
private java.lang.String |
applyRule1(int code)
Applies rule 1 translation to the code and returns a label.
|
private java.lang.String |
applyRule2(int code)
Applies rule 2 translation to the code and returns a label.
|
private java.lang.String |
applyRule3(int code)
Applies rule 3 translation to the code and returns a label.
|
private java.lang.String |
basicName1(int code)
Returns the basic name for keys in the rage 0-511.
|
private java.lang.String |
basicName2(int code)
Returns the basic name for keys in the rage 512-655.
|
static int |
encodeEvent(java.lang.String event)
Converts a named event into a numeric event code.
|
static int |
eventCode(java.lang.String name)
Find the action code corresponding to a given event name.
|
static java.lang.String |
eventName(int code)
Translates the event code for the high level events and returns the
symbolic name of the event.
|
private int |
findKey(java.lang.String label)
Looks up the basic key names table for an exact match and returns the
index.
|
private int |
findKeyEnd(java.lang.String label)
Looks up the basic key names table for an ending match and returns the
code that takes into account all valid prefixes.
|
void |
init()
Initialize this keyboard.
|
protected void |
initBasicKeyCodes()
Initialize the
basicKeyCodes map from the basicKeys arrays. |
static boolean |
isControlKey(int key)
Test if this code represents a control key from this range CTRL+A, ..., CTRL+Z.
|
static boolean |
isDevEvent(int lastkey)
Checks whether the event - is developer event (U1 - U10)
|
static boolean |
isFunctionKey(int key)
Detects function keys from this range from F1 to F12.
|
private static boolean |
isInRangeOfKeys(int key,
int low,
int high)
Tests that the given key is in the target range of keys after its key code has been modified to strip
CTRL, ALT and SHIFT modifiers away.
|
static boolean |
isMnemonic(int key)
Check if the specified key can behave as a mnemonic activator for widgets (not menus).
|
static boolean |
isMouseEvent(int lastkey)
Checks if the argument is LASTKEY, that conforms to EVENT-TYPE="MOUSE".
|
static boolean |
isNavigationKey(int key)
Test if this code represents a keyboard navigation key.
|
static boolean |
isPGEvent(int lastkey)
Checks if the argument is LASTKEY, that conforms to EVENT-TYPE="PROGRESS".
|
static boolean |
isPrintable(java.lang.String event)
Detects if the event is one of those that can be described as
"printable" in Progress terms.
|
static boolean |
isPrintableKey(int key,
boolean isReal)
Determine if the given key is a printable key.
|
static boolean |
isPrintableKey(KeyInput evt)
Determine if the given key is a printable key.
|
static boolean |
isPrintableUserKey(int key,
boolean isReal)
Determine if the given key is a printable key.
|
static boolean |
isQuotientOfEightKey(int key)
Test if this code represents an irreducible quotient of eight.
|
static boolean |
isSingleQuotation(int key)
Test if this code represents a single quotation mark.
|
static java.lang.String |
kbLabel(java.lang.String function)
Translates a string of text, which is a key function, into the key label
of a keyboard key, currently assigned for this function.
|
static int |
keyAction(int code)
Evaluates key code and returns a generic action code.
|
static int |
keyCode(java.lang.String label)
Translates a key label into a numeric key code.
|
static int |
keyCodeForAction(int action)
Translates a key action into a typical key code.
|
static java.lang.String |
keyFunction(int code)
Evaluates key code and returns event name assigned to specified key.
|
static java.lang.String |
keyFunction(java.lang.String label)
Returns the key function assigned to this key label.
|
static java.lang.String |
keyLabel(int code)
Translates a numeric key code into a key label.
|
java.lang.String |
keyName(int code)
Get key name from a keyboard or null if not found.
|
static java.lang.String |
keyName(java.lang.String keyLabel)
Get key name from a keyboard.
|
static void |
main(java.lang.String[] args)
Simple command line test driver which prints out a report of our
key mappings.
|
protected boolean |
mnemonic(int key)
Check if the specified key can behave as a mnemonic activator for widgets (not menus).
|
static boolean |
registeredEventName(java.lang.String event)
Check if the given event name is registered in any keyboard implementation.
|
static void |
remapKey(java.lang.String keyLabel,
java.lang.String keyFunction)
Defines a specific action for the key.
|
static void |
resetKeyboard()
Resets the Keyboard class.
|
protected abstract java.util.Map<java.lang.String,java.lang.String[]> |
standardKeyFunctions()
Get the mappings of standard functions to their associated keys.
|
protected boolean |
useRule1(int code)
Check if the given key code is treated by rule 1.
|
protected boolean |
useRule3(int code)
Check if the given key code is treated by rule 3.
|
public static final java.lang.String ABORT
public static final java.lang.String APPEND_LINE
public static final java.lang.String BACK_TAB
public static final java.lang.String BACKSPACE
public static final java.lang.String BELL
public static final java.lang.String BLOCK
public static final java.lang.String BOTTOM_COLUMN
public static final java.lang.String BREAK_LINE
public static final java.lang.String CANCEL_PICK
public static final java.lang.String CHOICES
public static final java.lang.String CLEAR
public static final java.lang.String CLOSE
public static final java.lang.String COMPILE
public static final java.lang.String COPY
public static final java.lang.String CURSOR_DOWN
public static final java.lang.String CURSOR_LEFT
public static final java.lang.String CURSOR_RIGHT
public static final java.lang.String CURSOR_UP
public static final java.lang.String CUT
public static final java.lang.String DEFAULT_POP_UP
public static final java.lang.String DELETE_CHARACTER
public static final java.lang.String DELETE_COLUMN
public static final java.lang.String DELETE_END_LINE
public static final java.lang.String DELETE_FIELD
public static final java.lang.String DELETE_LINE
public static final java.lang.String DELETE_WORD
public static final java.lang.String EDITOR_BACKTAB
public static final java.lang.String EDITOR_TAB
public static final java.lang.String END
public static final java.lang.String END_ERROR
public static final java.lang.String ENTER_MENUBAR
public static final java.lang.String ESC_FUNC
public static final java.lang.String EXIT
public static final java.lang.String FIND
public static final java.lang.String FIND_NEXT
public static final java.lang.String FIND_PREVIOUS
public static final java.lang.String GET
public static final java.lang.String GO
public static final java.lang.String GOTO
public static final java.lang.String HELP
public static final java.lang.String HOME
public static final java.lang.String INSERT_COLUMN
public static final java.lang.String INSERT_FIELD
public static final java.lang.String INSERT_FIELD_DATA
public static final java.lang.String INSERT_FIELD_LABEL
public static final java.lang.String INSERT_MODE
public static final java.lang.String LEFT_END
public static final java.lang.String MAIN_MENU
public static final java.lang.String MENU_DROP
public static final java.lang.String MOVE
public static final java.lang.String NEW
public static final java.lang.String NEW_LINE
public static final java.lang.String NEXT_ERROR
public static final java.lang.String NEXT_FRAME
public static final java.lang.String NEXT_WORD
public static final java.lang.String OPEN_LINE_ABOVE
public static final java.lang.String OPTIONS
public static final java.lang.String PAGE_DOWN
public static final java.lang.String PAGE_LEFT
public static final java.lang.String PAGE_RIGHT
public static final java.lang.String PAGE_UP
public static final java.lang.String PASTE
public static final java.lang.String PICK
public static final java.lang.String PICK_AREA
public static final java.lang.String PICK_BOTH
public static final java.lang.String PREV_FRAME
public static final java.lang.String PREV_WORD
public static final java.lang.String PUT
public static final java.lang.String RECALL
public static final java.lang.String REPLACE
public static final java.lang.String REPORTS
public static final java.lang.String RESUME_DISPLAY
public static final java.lang.String RETURN
public static final java.lang.String RIGHT_END
public static final java.lang.String SAVE_AS
public static final java.lang.String SCROLL_LEFT
public static final java.lang.String SCROLL_MODE
public static final java.lang.String SCROLL_RIGHT
public static final java.lang.String SETTINGS
public static final java.lang.String STOP
public static final java.lang.String STOP_DISPLAY
public static final java.lang.String TAB
public static final java.lang.String TOP_COLUMN
public static final java.lang.String UNIX_END
public static final java.lang.String ENDKEY
public static final java.lang.String ERROR
public static final java.lang.String ANY_KEY
public static final java.lang.String ANY_PRINTABLE
public static final java.lang.String CHOOSE
public static final java.lang.String DEFAULT_ACTION
public static final java.lang.String ENTRY
public static final java.lang.String LEAVE
public static final java.lang.String ROW_DISPLAY
public static final java.lang.String VALUE_CHANGED
public static final java.lang.String WINDOW_CLOSE
public static final java.lang.String ROW_LEAVE
public static final java.lang.String ROW_ENTRY
public static final java.lang.String START_SEARCH
public static final java.lang.String END_SEARCH
public static final java.lang.String WINDOW_MAXIMIZED
public static final java.lang.String WINDOW_MINIMIZED
public static final java.lang.String WINDOW_RESIZED
public static final java.lang.String WINDOW_RESTORED
public static final java.lang.String MOUSE_EXTEND_DOWN
public static final java.lang.String MOUSE_EXTEND_UP
public static final java.lang.String MOUSE_EXTEND_CLICK
public static final java.lang.String MOUSE_EXTEND_DBLCLICK
public static final java.lang.String MOUSE_SELECT_DOWN
public static final java.lang.String MOUSE_SELECT_UP
public static final java.lang.String MOUSE_SELECT_CLICK
public static final java.lang.String MOUSE_SELECT_DBLCLICK
public static final java.lang.String MOUSE_MENU_DOWN
public static final java.lang.String MOUSE_MENU_UP
public static final java.lang.String MOUSE_MENU_CLICK
public static final java.lang.String MOUSE_MENU_DBLCLICK
public static final java.lang.String MOUSE_MOVE_DOWN
public static final java.lang.String MOUSE_MOVE_UP
public static final java.lang.String MOUSE_MOVE_CLICK
public static final java.lang.String MOUSE_MOVE_DBLCLICK
public static final java.lang.String LEFT_MOUSE_DOWN
public static final java.lang.String LEFT_MOUSE_UP
public static final java.lang.String LEFT_MOUSE_CLICK
public static final java.lang.String LEFT_MOUSE_DBLCLICK
public static final java.lang.String RIGHT_MOUSE_DOWN
public static final java.lang.String RIGHT_MOUSE_UP
public static final java.lang.String RIGHT_MOUSE_CLICK
public static final java.lang.String RIGHT_MOUSE_DBLCLICK
public static final java.lang.String MIDDLE_MOUSE_DOWN
public static final java.lang.String MIDDLE_MOUSE_UP
public static final java.lang.String MIDDLE_MOUSE_CLICK
public static final java.lang.String MIDDLE_MOUSE_DBLCLICK
public static final java.lang.String DESELECTION
public static final java.lang.String EMPTY_SELECTION
public static final java.lang.String END_BOX_SELECTION
public static final java.lang.String END_MOVE
public static final java.lang.String END_RESIZE
public static final java.lang.String END_ROW_RESIZE
public static final java.lang.String SELECTION
public static final java.lang.String START_BOX_SELECTION
public static final java.lang.String START_MOVE
public static final java.lang.String START_RESIZE
public static final java.lang.String START_ROW_RESIZE
public static final java.lang.String DROP_FILE_NOTIFY
public static final java.lang.String PROCEDURE_COMPLETE
public static final java.lang.String CONNECT
public static final java.lang.String READ_RESPONSE
public static final java.lang.String NODE_EXPANDING
public static final java.lang.String NODE_EXPANDED
public static final java.lang.String NODE_COLLAPSING
public static final java.lang.String NODE_COLLAPSED
public static final java.lang.String NODE_CHECK
public static final java.lang.String NODE_CLICK
public static final java.lang.String COLUMN_SORTING
public static final java.lang.String CHANGE_NODE_DIRECT
public static final java.lang.String CHANGE_TOP_VIS_NODE
public static final java.lang.String NODE_BEFORE_EDIT
public static final java.lang.String NODE_AFTER_EDIT
public static final java.lang.String MOUSE_CLICK
public static final java.lang.String MOUSE_DBLCLICK
public static final java.lang.String MOUSE_DOWN
public static final java.lang.String MOUSE_UP
public static final java.lang.String MOUSE_MOVE
public static final java.lang.String OLE_COMPLETE_DRAG
public static final java.lang.String OLE_DRAG_DROP
public static final java.lang.String OLE_DRAG_OVER
public static final java.lang.String OLE_GIVE_FEEDBACK
public static final java.lang.String OLE_SET_DATA
public static final java.lang.String OLE_START_DRAG
public static final java.lang.String CANCEL_EDIT
public static final java.lang.String END_EDIT
public static final java.lang.String MODIFIED
public static final java.lang.String OBJECT_CLICKED
public static final java.lang.String OBJECT_LOST_FOCUS
public static final java.lang.String OBJECT_VALUE_CHANGED
public static final java.lang.String SELECTION_CHANGED
public static final java.lang.String START_EDIT
public static final java.lang.String TOP_LEFT_CHANGED
public static final java.lang.String PEN_DOWN
public static final java.lang.String PEN_UP
public static final java.lang.String SCROLL_NOTIFY
public static final java.lang.String OFF_END
public static final java.lang.String OFF_HOME
public static final java.lang.String DESELECT
public static final java.lang.String SELECT
public static final java.lang.String PARENT_WINDOW_CLOSE
public static final int VK_ONE_EIGHTH
public static final int VK_THREE_EIGHTHS
public static final int VK_FIVE_EIGHTHS
public static final int VK_SEVEN_EIGHTHS
public static final int VK_LEFT_SINGLE_QUOTATION_MARK
public static final int VK_RIGHT_SINGLE_QUOTATION_MARK
private static java.lang.String[] evNames1
private static final int KA_FIRST_CODE
private static final int KA_LAST_CODE
public static final int KA_BACKSPACE
public static final int KA_BACK_TAB
public static final int KA_BELL
public static final int KA_CLEAR
public static final int KA_CURSOR_DOWN
public static final int KA_CURSOR_LEFT
public static final int KA_CURSOR_RIGHT
public static final int KA_CURSOR_UP
public static final int KA_DELETE_CHARACTER
public static final int KA_DEFAULT_POP_UP
public static final int KA_ENDKEY
public static final int KA_END_ERROR
public static final int KA_ERROR
public static final int KA_GO
public static final int KA_HELP
public static final int KA_HOME
public static final int KA_INSERT_MODE
public static final int KA_LEFT_END
public static final int KA_RECALL
public static final int KA_RETURN
public static final int KA_RIGHT_END
public static final int KA_STOP
public static final int KA_TAB
public static final int KA_PAGE_UP
public static final int KA_PAGE_DOWN
public static final int KA_REPLACE
public static final int KA_EDITOR_TAB
public static final int KA_APPEND_LINE
public static final int KA_DELETE_END_LINE
public static final int KA_DELETE_LINE
public static final int KA_DELETE_WORD
public static final int KA_EDITOR_BACKTAB
public static final int KA_END
public static final int KA_NEW_LINE
public static final int KA_NEXT_WORD
public static final int KA_OPEN_LINE_ABOVE
public static final int KA_PAGE_LEFT
public static final int KA_PAGE_RIGHT
public static final int KA_PREV_WORD
public static final int KA_COPY
public static final int KA_PASTE
public static final int KA_CUT
public static final int KA_GET
public static final int KA_PUT
public static final int KA_BLOCK
public static final int KA_PICK
public static final int SE_NEXT_FRAME
public static final int SE_PREV_FRAME
public static final int SE_ROW_DISPLAY
public static final int SE_ENTRY
public static final int SE_LEAVE
public static final int SE_CHOOSE
public static final int SE_VALUE_CHANGED
public static final int SE_DEFAULT_ACTION
public static final int SE_PROCEDURE_COMPLETE
public static final int SE_CONNECT
public static final int SE_READ_RESPONSE
public static final int SE_ANY_KEY
public static final int SE_ANY_PRINTABLE
public static final int SE_END_SEARCH
public static final int SE_START_SEARCH
public static final int SE_MENU_DROP
public static final int DE_LOWEST
public static final int DE_HIGHEST
public static final int SE_WINDOW_CLOSE
public static final int SE_WINDOW_MAXIMIZED
public static final int SE_WINDOW_MINIMIZED
public static final int SE_WINDOW_RESTORED
public static final int SE_WINDOW_RESIZED
public static final int SE_DESELECTION
public static final int SE_DESELECT
public static final int SE_EMPTY_SELECTION
public static final int SE_END_BOX_SELECTION
public static final int SE_END_MOVE
public static final int SE_END_RESIZE
public static final int SE_END_ROW_RESIZE
public static final int SE_SELECTION
public static final int SE_SELECT
public static final int SE_START_BOX_SELECTION
public static final int SE_START_MOVE
public static final int SE_START_RESIZE
public static final int SE_START_ROW_RESIZE
public static final int SE_DROP_FILE_NOTIFY
public static final int SE_ROW_LEAVE
public static final int SE_ROW_ENTRY
public static final int SE_OFF_END
public static final int SE_NODE_EXPANDING
public static final int SE_NODE_EXPANDED
public static final int SE_NODE_COLLAPSING
public static final int SE_NODE_COLLAPSED
public static final int SE_NODE_CHECK
public static final int SE_NODE_CLICK
public static final int SE_COLUMN_SORTING
public static final int SE_CHANGE_NODE_DIRECT
public static final int SE_CHANGE_TOP_VISIBLE_NODE
public static final int SE_NODE_BEFORE_EDIT
public static final int SE_NODE_AFTER_EDIT
public static final int SE_MOUSE_CLICK
public static final int SE_MOUSE_DBLCLICK
public static final int SE_MOUSE_UP
public static final int SE_MOUSE_DOWN
public static final int SE_MOUSE_MOVE
public static final int SE_OLE_COMPLETE_DRAG
public static final int SE_OLE_DRAG_DROP
public static final int SE_OLE_DRAG_OVER
public static final int SE_OLE_GIVE_FEEDBACK
public static final int SE_OLE_SET_DATA
public static final int SE_OLE_START_DRAG
public static final int SE_MOUSE_SELECT_DOWN
public static final int SE_MOUSE_SELECT_UP
public static final int SE_CANCEL_EDIT
public static final int SE_END_EDIT
public static final int SE_MODIFIED
public static final int SE_OBJECT_CLICKED
public static final int SE_OBJECT_LOST_FOCUS
public static final int SE_OBJECT_VALUE_CHANGED
public static final int SE_SELECTION_CHANGED
public static final int SE_START_EDIT
public static final int SE_TOP_LEFT_CHANGED
public static final int SE_PEN_DOWN
public static final int SE_PEN_UP
private static final java.util.Set<java.lang.Integer> EVENT_TYPES_PG_CODES
private static java.util.Set<java.lang.String> EVENT_TYPES_MOUSE_LABELS
private static Keyboard.ContextContainer work
private static Keyboard[] kbs
registeredEventName(String)
,
to check if a certain trigger's event is known by the FWD runtime.private java.util.Map<java.lang.String,java.util.Set<java.lang.String>> f2l
private java.util.Map<java.lang.String,java.lang.String> l2f
private java.util.Map<java.lang.String,java.lang.Integer> altLabel
private java.util.Map<java.lang.Integer,java.lang.String> osEvents
private java.util.Map<java.lang.String,java.lang.Integer> osEventsCodes
private final java.lang.String bit10
protected java.lang.String[] basicKeys
protected java.util.Map<java.lang.String,java.lang.Integer> basicKeyCodes
basicKeys
to their index.protected java.util.Map<java.lang.Integer,java.lang.String> extendedKeys
protected java.util.Map<java.lang.String,java.lang.Integer> extendedLabels
public Keyboard(java.lang.String bit10)
bit10
- The label for the bit 10 modifier.public static boolean registeredEventName(java.lang.String event)
event
- The event name, as passed to the trigger.true
if EventList.eventCode(java.lang.String)
can resolve this event's ID.public static int encodeEvent(java.lang.String event)
event
- Progress event namepublic static java.lang.String eventName(int code)
This method has no corresponding function in Progress.
code
- The event code to translate.public static int eventCode(java.lang.String name)
name
- Event name.public static int keyCode(java.lang.String label)
The rules of this translation are:
This method corresponds to the Progress built-in function:
KEYCODE
TODO: this method can return incorrect values for #osEvents,
for example it must return -1 instead of 1079 for "MENU-DROP".
Check and fix it.
label
- Label to evaluate.public static java.lang.String keyLabel(int code)
Negative codes produce empty label. Codes above 4095 produce a label of the code modulo 4096.
This method corresponds to the Progress built-in function:
KEYLABEL
code
- key code to translatepublic static java.lang.String keyName(java.lang.String keyLabel)
keyLabel(int)
.keyLabel
- Progress key label.public static java.lang.String kbLabel(java.lang.String function)
This method corresponds to the Progress built-in function:
KBLABEL
The main data structure is a Map where the function name is the key and the value is an ordered Set, containing key labels this key function is assigned to. This Map corresponds to the Table 6-4 of the Progress Programming Handbook, p.6-19. This map is used for the translation. The first key label in the Set for this function is returned. If the set is empty (no assignment) or no such key function is found in the map (unrecognizable function), the original function name is returned in upper case.
function
- text, describing the key function. case doesn't matterpublic static java.lang.String keyFunction(int code)
This method corresponds to the Progress built-in function:
KEYFUNCTION
code
- Code to evaluate.public static java.lang.String keyFunction(java.lang.String label)
label
- key labelpublic static void remapKey(java.lang.String keyLabel, java.lang.String keyFunction)
This method corresponds to the Progress statement:
ON key-label key-function
keyLabel
- the label of the keykeyFunction
- the action to take when the user presses the keypublic static int keyAction(int code)
code
- key code to evaluate.public static int keyCodeForAction(int action)
KeyEvent.CHAR_UNDEFINED
.action
- key action code to translatepublic static void resetKeyboard()
public static boolean isMnemonic(int key)
key
- The key code to be checked.true
if the key can activate a mnemonic, for widget's labels.public static boolean isPrintableKey(KeyInput evt)
evt
- The event to test.true
if the key is in the [0x20, 0xff]
interval.public static boolean isPrintableKey(int key, boolean isReal)
If this is not a real key, then isPrintable(String)
will decide if the key is printable, as the
key code may be from a legacy event (via a APPLY
) statement, which can collide with a UTF-8
printable key code.
key
- The key code to test.isReal
- Flag indicating that this is a real key incoming from the Keyboard.true
if the key is printable.public static boolean isPrintableUserKey(int key, boolean isReal)
If this is not a real key, then isPrintable(String)
will decide if the key is printable, as the
key code may be from a legacy event (via a APPLY
) statement, which can collide with a UTF-8
printable key code.
key
- The key code to test.isReal
- Flag indicating that this is a real key incoming from the Keyboard.true
if the key is printable.public static boolean isQuotientOfEightKey(int key)
key
- The key code to test.public static boolean isSingleQuotation(int key)
key
- The key code to test.public static boolean isNavigationKey(int key)
key
- The key code to test.public static boolean isControlKey(int key)
key
- The key code to test.public static boolean isFunctionKey(int key)
true
if
the key has modifier bits set (CTRL, ALT and SHIFT).key
- The 4GL key code to testprivate static boolean isInRangeOfKeys(int key, int low, int high)
key
- The 4GL key code to testlow
- The lower limit of the target key rangehigh
- The upper limit of the target key rangepublic static boolean isPrintable(java.lang.String event)
This method has not been well tested in comparison to Progress as of 03/14/2008.
event
- The name of the event to check. Must not be
null
.true
if this is a single character name whose
character is not an ISO control code (based on a query to
the Character
class.public static boolean isPGEvent(int lastkey)
lastkey
- -
integer key codeTRUE
- if the key is synthetic,
FALSE
- otherwise.public static boolean isMouseEvent(int lastkey)
lastkey
- integer key codeTRUE
- if the key is a mouse event,
FALSE
- otherwise.public static boolean isDevEvent(int lastkey)
lastkey
- -
integer key code of last actionTRUE
- if the event is on of developer events
FALSE
- otherwiseprotected abstract java.util.Map<java.lang.String,java.lang.String[]> standardKeyFunctions()
public void init()
init
in interface Initializable
protected boolean mnemonic(int key)
key
- The key code to be checked.true
if the key can activate a mnemonic, for widget's labels.
By default this returns false
. Sub-classes will override this
depending on the client type, if it supports label mnemonics or not.protected boolean useRule1(int code)
code
- The key code to check.true
if rule 1 must be applied to the key code.protected boolean useRule3(int code)
code
- The key code to check.true
if rule 3 must be applied to the key code.protected void addFunc(java.lang.String func, java.lang.String[] labels)
func
- key functionlabels
- array of key labels this function is assigned toprotected void addAltLabel(java.lang.String label, int code)
label
- alternate key label in upper casecode
- key codeprotected void addOSEvent(java.lang.String label, int code)
label
- alternate key label in upper casecode
- key codepublic java.lang.String keyName(int code)
code
- Progress key code.private int findKey(java.lang.String label)
label
- label to find the match forprivate int findKeyEnd(java.lang.String label)
label
- label to find the match forprivate java.lang.String applyRule1(int code)
Rule 1 means the code is within a range where:
code
- key code to translateprivate java.lang.String applyRule2(int code)
Rule 2 means the code is within a range where:
code
- key code to translateprivate java.lang.String applyRule3(int code)
Rule 3 means the code is within a range where the result is always an empty string.
code
- key code to translateprivate java.lang.String basicName1(int code)
code
- key code to translateprivate java.lang.String basicName2(int code)
code
- key code to translateprotected void initBasicKeyCodes()
basicKeyCodes
map from the basicKeys
arrays.
WARNING: this is called multiple times during init()
(and for the subclasses), as the
basicKeys
array is initialized in phases. After each phase, findKey(String)
or
findKeyEnd(String)
can be used and the basicKeyCodes
map must reflect the correct
state of basicKeys
.
public static void main(java.lang.String[] args)
Optionally, the starting and ending key code as integer values can be passed as arguments. If not passed a report from 0 through 255 will be displayed.
Syntax: Keyboard [startCode endCode]
args
- Command line arguments array.