1
|
=== modified file 'src/com/goldencode/p2j/ui/client/driver/web/res/p2j.js'
|
2
|
--- src/com/goldencode/p2j/ui/client/driver/web/res/p2j.js 2016-06-03 10:10:16 +0000
|
3
|
+++ src/com/goldencode/p2j/ui/client/driver/web/res/p2j.js 2016-06-03 18:03:10 +0000
|
4
|
@@ -31,7 +31,8 @@
|
5
|
** functions). Can be used only when the P2J client runs embedded in a
|
6
|
** customer-specific application.
|
7
|
** 011 SBI 20160519 Added the Safari detection.
|
8
|
-** SBI 20160603 Added createDialog function to open the modal dialog, added prompts and hints.
|
9
|
+** SBI 20160603 Added createDialog function to open the modal dialog, added prompts and hints,
|
10
|
+** added createKeyEvent.
|
11
|
*/
|
12
|
|
13
|
"use strict";
|
14
|
@@ -480,6 +481,92 @@
|
15
|
me.consumeEvent = consumeEvent;
|
16
|
|
17
|
/**
|
18
|
+ * Create a key event.
|
19
|
+ *
|
20
|
+ * @param {String} type
|
21
|
+ * The event type.
|
22
|
+ * @param {Boolean} bubbles
|
23
|
+ * The bubbled event.
|
24
|
+ * @param {Boolean} cancelable
|
25
|
+ * The cancelable event.
|
26
|
+ * @param {Window} view
|
27
|
+ * The window.
|
28
|
+ * @param {Boolean} ctrlKey
|
29
|
+ * True iff the Ctrl (left or right) key is on.
|
30
|
+ * @param {Boolean} altKey
|
31
|
+ * True iff the Alt (left or right) key is on.
|
32
|
+ * @param {Boolean} shiftKey
|
33
|
+ * True iff the Alt (left or right) key is on.
|
34
|
+ * @param {Boolean} metaKey
|
35
|
+ * True iff the Meta (left or right) key is on.
|
36
|
+ * @param {Number} keyCode
|
37
|
+ * The key code.
|
38
|
+ * @param {Number} charCode
|
39
|
+ * The char code.
|
40
|
+ *
|
41
|
+ * @returns {Event}
|
42
|
+ * The target keyboard event.
|
43
|
+ */
|
44
|
+ function createKeyEvent(type, bubbles, cancelable, view, ctrlKey,
|
45
|
+ altKey, shiftKey, metaKey, keyCode, charCode)
|
46
|
+ {
|
47
|
+ var event;
|
48
|
+ if (document.createEvent !== undefined)
|
49
|
+ {
|
50
|
+ try
|
51
|
+ {
|
52
|
+ event = document.createEvent("KeysEvent");
|
53
|
+
|
54
|
+ event.initKeyEvent(type, bubbles, cancelable, view, ctrlKey,
|
55
|
+ altKey, shiftKey, metaKey, keyCode, charCode);
|
56
|
+ }
|
57
|
+ catch (ex1)
|
58
|
+ {
|
59
|
+ try
|
60
|
+ {
|
61
|
+ event = document.createEvent("Events");
|
62
|
+ }
|
63
|
+ catch (ex2)
|
64
|
+ {
|
65
|
+ event = document.createEvent("UIEvents");
|
66
|
+ }
|
67
|
+ finally
|
68
|
+ {
|
69
|
+ event.initEvent(type, bubbles, cancelable);
|
70
|
+
|
71
|
+ //initialize
|
72
|
+ event.view = view;
|
73
|
+ event.altKey = altKey;
|
74
|
+ event.ctrlKey = ctrlKey;
|
75
|
+ event.shiftKey = shiftKey;
|
76
|
+ event.metaKey = metaKey;
|
77
|
+ event.keyCode = keyCode;
|
78
|
+ event.charCode = charCode;
|
79
|
+ }
|
80
|
+ }
|
81
|
+ }
|
82
|
+ else if (document.createEventObject !== undefined)
|
83
|
+ {
|
84
|
+ event = document.createEventObject();
|
85
|
+
|
86
|
+ event.bubbles = bubbles;
|
87
|
+ event.cancelable = cancelable;
|
88
|
+ event.view = view;
|
89
|
+ event.ctrlKey = ctrlKey;
|
90
|
+ event.altKey = altKey;
|
91
|
+ event.shiftKey = shiftKey;
|
92
|
+ event.metaKey = metaKey;
|
93
|
+
|
94
|
+ event.keyCode = (charCode > 0) ? charCode : keyCode;
|
95
|
+ event.type = type;
|
96
|
+ }
|
97
|
+
|
98
|
+ return event;
|
99
|
+ };
|
100
|
+
|
101
|
+ me.createKeyEvent = createKeyEvent;
|
102
|
+
|
103
|
+ /**
|
104
|
* Creates and displays the modal dialog.
|
105
|
*
|
106
|
* @param {String} id
|
107
|
|
108
|
=== modified file 'src/com/goldencode/p2j/ui/client/driver/web/res/p2j.keyboard.js'
|
109
|
--- src/com/goldencode/p2j/ui/client/driver/web/res/p2j.keyboard.js 2016-06-03 10:10:16 +0000
|
110
|
+++ src/com/goldencode/p2j/ui/client/driver/web/res/p2j.keyboard.js 2016-06-03 18:02:28 +0000
|
111
|
@@ -31,7 +31,8 @@
|
112
|
** 012 SBI 20160119 Changed to support Chrome and IE.
|
113
|
** SBI 20160125 Fixed CTRL + CTRL + key, the permitted default actions are copy, paste and cut.
|
114
|
** 013 SBI 20160523 Fixed copy/cut/paste work flow.
|
115
|
-** SBI 20160603 Changed to process Safari COMMAND as it would be a CTRL key pressed.
|
116
|
+** SBI 20160603 Changed to process Safari COMMAND as it would be a CTRL key pressed, fixed
|
117
|
+** automatic repeats for Safari.
|
118
|
*/
|
119
|
|
120
|
"use strict";
|
121
|
@@ -650,22 +651,36 @@
|
122
|
}
|
123
|
return permitted;
|
124
|
}
|
125
|
- else if (last.keyCode === evt.keyCode)
|
126
|
+ else if (last.keyCode === evt.keyCode || evt.keyCode === keys.IME_PROCESSKEY)
|
127
|
{
|
128
|
console.debug(last.ctrlCount);
|
129
|
+ var repeatCode = last.keyCode;
|
130
|
// auto-repeats that have no typed keys.
|
131
|
last = {
|
132
|
- keyCode : evt.keyCode,
|
133
|
- shiftKey : evt.shiftKey,
|
134
|
- altKey : evt.altKey,
|
135
|
- ctrlKey : evt.ctrlKey,
|
136
|
- metaKey : evt.metaKey,
|
137
|
- charCode : evt.charCode,
|
138
|
- ctrlCount : last.ctrlCount
|
139
|
- };
|
140
|
-
|
141
|
- queue.push(last);
|
142
|
- onkeyup(evt);
|
143
|
+ keyCode : repeatCode,
|
144
|
+ shiftKey : evt.shiftKey,
|
145
|
+ altKey : evt.altKey,
|
146
|
+ ctrlKey : evt.ctrlKey,
|
147
|
+ metaKey : evt.metaKey,
|
148
|
+ charCode : evt.charCode,
|
149
|
+ ctrlCount : last.ctrlCount
|
150
|
+ };
|
151
|
+
|
152
|
+ if (repeatCode !== keys.IME_PROCESSKEY)
|
153
|
+ {
|
154
|
+ queue.push(last);
|
155
|
+ if (evt.keyCode === keys.IME_PROCESSKEY)
|
156
|
+ {
|
157
|
+ var keyUpEvt = p2j.createKeyEvent("keyup", false, true, null, evt.ctrlKey,
|
158
|
+ evt.altKey, evt.shiftKey, evt.metaKey, repeatCode, 0);
|
159
|
+ onkeyup(keyUpEvt);
|
160
|
+ }
|
161
|
+ else
|
162
|
+ {
|
163
|
+ onkeyup(evt);
|
164
|
+ }
|
165
|
+ }
|
166
|
+
|
167
|
var permitted = permittedKeyStrokes(last);
|
168
|
if (!permitted)
|
169
|
{
|
170
|
@@ -687,6 +702,7 @@
|
171
|
}
|
172
|
}
|
173
|
queue.push(last);
|
174
|
+
|
175
|
var permitted = permittedKeyStrokes(last);
|
176
|
if (!permitted)
|
177
|
{
|
178
|
@@ -807,6 +823,7 @@
|
179
|
{
|
180
|
return false;
|
181
|
}
|
182
|
+
|
183
|
var lastKey = queue.pop();
|
184
|
|
185
|
if (lastKey === undefined)
|
186
|
@@ -1015,6 +1032,7 @@
|
187
|
{
|
188
|
return false;
|
189
|
}
|
190
|
+
|
191
|
var lastKey = findKeyEventByKeyCode(evt.keyCode);
|
192
|
|
193
|
if (lastKey === undefined)
|
194
|
@@ -1041,10 +1059,10 @@
|
195
|
{
|
196
|
var evt = queue[pos];
|
197
|
// modifier key down events are merged
|
198
|
- if ((evt.keyCode === keyCode) ||
|
199
|
- (evt.altKey && keyCode == keys.ALT) ||
|
200
|
- (evt.shiftKey && keyCode == keys.SHIFT) ||
|
201
|
- (evt.ctrlKey && keyCode == keys.CTRL) ||
|
202
|
+ if ((evt.keyCode === keyCode) ||
|
203
|
+ (evt.altKey && keyCode === keys.ALT) ||
|
204
|
+ (evt.shiftKey && keyCode === keys.SHIFT) ||
|
205
|
+ (evt.ctrlKey && keyCode === keys.CTRL) ||
|
206
|
(evt.metaKey && keyCode === keys.LEFT_WINDOW) ||
|
207
|
(evt.metaKey && keyCode === keys.RIGHT_WINDOW))
|
208
|
{
|
209
|
|
210
|
=== modified file 'src/com/goldencode/p2j/ui/client/driver/web/res/p2j.keymap.js'
|
211
|
--- src/com/goldencode/p2j/ui/client/driver/web/res/p2j.keymap.js 2016-06-03 10:10:16 +0000
|
212
|
+++ src/com/goldencode/p2j/ui/client/driver/web/res/p2j.keymap.js 2016-06-03 18:05:21 +0000
|
213
|
@@ -20,7 +20,8 @@
|
214
|
** 008 SBI 20151011 Added SHIFT + DEL key label to return 639 as its key code.
|
215
|
** 009 SBI 20160120 Chrome and IE support.
|
216
|
** SBI 20160212 Fixes for copy/paste and cut default actions.
|
217
|
-** 010 SBI 20160603 Changed to process Safari COMMAND as it would be a CTRL key pressed.
|
218
|
+** 010 SBI 20160603 Changed to process Safari COMMAND as it would be a CTRL key pressed, added
|
219
|
+** a virtual key, IME_PROCESSKEY, identified by the 229 code.
|
220
|
*/
|
221
|
|
222
|
"use strict";
|
223
|
@@ -107,7 +108,8 @@
|
224
|
RIGHT_DPAD : 178,
|
225
|
C : 67,
|
226
|
V : 86,
|
227
|
- X : 88
|
228
|
+ X : 88,
|
229
|
+ IME_PROCESSKEY : 229
|
230
|
};
|
231
|
|
232
|
var basicKeys = [];
|
233
|
|