mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			343 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			343 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| Licensed to the Apache Software Foundation (ASF) under one
 | |
| or more contributor license agreements.  See the NOTICE file
 | |
| distributed with this work for additional information
 | |
| regarding copyright ownership.  The ASF licenses this file
 | |
| to you under the Apache License, Version 2.0 (the
 | |
| "License"); you may not use this file except in compliance
 | |
| with the License.  You may obtain a copy of the License at
 | |
| 
 | |
|   http://www.apache.org/licenses/LICENSE-2.0
 | |
| 
 | |
| Unless required by applicable law or agreed to in writing,
 | |
| software distributed under the License is distributed on an
 | |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | |
| KIND, either express or implied.  See the License for the
 | |
| specific language governing permissions and limitations
 | |
| under the License.
 | |
| */
 | |
| 
 | |
| /*
 | |
|  * This var contains the limited keyboard translation tables.
 | |
|  * This is the table that users can modify to make special keyboard to work properly.
 | |
|  * They are used by the ajaxviewer.js
 | |
|  */
 | |
| 
 | |
| //client event type. corresponds to events in ajaxviewer.
 | |
| 
 | |
| 
 | |
| //use java AWT key modifier masks
 | |
| JS_KEY_BACKSPACE = 8;
 | |
| JS_KEY_TAB = 9;
 | |
| JS_KEY_ENTER = 13;
 | |
| JS_KEY_SHIFT = 16;
 | |
| JS_KEY_CTRL = 17;
 | |
| JS_KEY_ALT = 18;
 | |
| JS_KEY_CAPSLOCK = 20;
 | |
| JS_KEY_ESCAPE = 27;
 | |
| JS_KEY_PAGEUP = 33;
 | |
| JS_KEY_PAGEDOWN = 34;
 | |
| JS_KEY_END = 35;
 | |
| JS_KEY_HOME = 36;
 | |
| JS_KEY_LEFT = 37;
 | |
| JS_KEY_UP = 38;
 | |
| JS_KEY_RIGHT = 39;
 | |
| JS_KEY_DOWN = 40;
 | |
| JS_KEY_INSERT = 45;
 | |
| JS_KEY_DELETE = 46;
 | |
| JS_KEY_SELECT_KEY = 93;
 | |
| JS_KEY_NUMPAD0 = 96;
 | |
| JS_KEY_NUMPAD1 = 97;
 | |
| JS_KEY_NUMPAD2 = 98;
 | |
| JS_KEY_NUMPAD3 = 99;
 | |
| JS_KEY_NUMPAD4 = 100;
 | |
| JS_KEY_NUMPAD5 = 101;
 | |
| JS_KEY_NUMPAD6 = 102;
 | |
| JS_KEY_NUMPAD7 = 103;
 | |
| JS_KEY_NUMPAD8 = 104;
 | |
| JS_KEY_NUMPAD9 = 105;
 | |
| JS_KEY_MULTIPLY = 106;
 | |
| JS_KEY_ADD = 107;
 | |
| JS_KEY_SUBSTRACT = 109;
 | |
| JS_KEY_DECIMAL_POINT = 110;
 | |
| JS_KEY_DIVIDE = 111;
 | |
| JS_KEY_F1 = 112;
 | |
| JS_KEY_F2 = 113;
 | |
| JS_KEY_F3 = 114;
 | |
| JS_KEY_F4 = 115;
 | |
| JS_KEY_F5 = 116;
 | |
| JS_KEY_F6 = 117;
 | |
| JS_KEY_F7 = 118;
 | |
| JS_KEY_F8 = 119;
 | |
| JS_KEY_F9 = 120;
 | |
| JS_KEY_F10 = 121;
 | |
| JS_KEY_F11 = 122;
 | |
| JS_KEY_F12 = 123;
 | |
| JS_KEY_SEMI_COLON = 186;			// ;
 | |
| JS_KEY_COMMA = 188;				// ,
 | |
| JS_KEY_DASH = 189;				// -
 | |
| JS_KEY_PERIOD = 190;				// .
 | |
| JS_KEY_FORWARD_SLASH = 191;		// /
 | |
| JS_KEY_GRAVE_ACCENT = 192;		// `
 | |
| JS_KEY_OPEN_BRACKET = 219;		// [
 | |
| JS_KEY_BACK_SLASH = 220;			// \
 | |
| JS_KEY_CLOSE_BRACKET = 221;		// ]
 | |
| JS_KEY_SINGLE_QUOTE = 222;		// '
 | |
| 
 | |
| 
 | |
| //X11 keysym definitions
 | |
| X11_KEY_CAPSLOCK = 0xffe5;
 | |
| X11_KEY_BACKSPACE = 0xff08;
 | |
| X11_KEY_TAB = 0xff09;
 | |
| X11_KEY_ENTER = 0xff0d;
 | |
| X11_KEY_ESCAPE = 0xff1b;
 | |
| X11_KEY_INSERT = 0xff63;
 | |
| X11_KEY_DELETE = 0xffff;
 | |
| X11_KEY_HOME = 0xff50;
 | |
| X11_KEY_END = 0xff57;
 | |
| X11_KEY_PAGEUP = 0xff55;
 | |
| X11_KEY_PAGEDOWN = 0xff56;
 | |
| X11_KEY_LEFT = 0xff51;
 | |
| X11_KEY_UP = 0xff52;
 | |
| X11_KEY_RIGHT = 0xff53;
 | |
| X11_KEY_DOWN = 0xff54;
 | |
| X11_KEY_F1 = 0xffbe;
 | |
| X11_KEY_F2 = 0xffbf;
 | |
| X11_KEY_F3 = 0xffc0;
 | |
| X11_KEY_F4 = 0xffc1;
 | |
| X11_KEY_F5 = 0xffc2;
 | |
| X11_KEY_F6 = 0xffc3;
 | |
| X11_KEY_F7 = 0xffc4;
 | |
| X11_KEY_F8 = 0xffc5;
 | |
| X11_KEY_F9 = 0xffc6;
 | |
| X11_KEY_F10 = 0xffc7;
 | |
| X11_KEY_F11 = 0xffc8;
 | |
| X11_KEY_F12 = 0xffc9;
 | |
| X11_KEY_SHIFT = 0xffe1;
 | |
| X11_KEY_CTRL = 0xffe3;
 | |
| X11_KEY_ALT = 0xffe9;
 | |
| X11_KEY_GRAVE_ACCENT = 0x60;
 | |
| X11_KEY_SUBSTRACT = 0x2d;
 | |
| X11_KEY_ADD = 0x2b;
 | |
| X11_KEY_OPEN_BRACKET = 0x5b;
 | |
| X11_KEY_CLOSE_BRACKET = 0x5d;
 | |
| X11_KEY_BACK_SLASH = 0x7c;
 | |
| X11_KEY_REVERSE_SOLIUS = 0x5c;			// another back slash (back slash on JP keyboard)
 | |
| X11_KEY_SINGLE_QUOTE = 0x22;
 | |
| X11_KEY_COMMA = 0x3c;
 | |
| X11_KEY_PERIOD = 0x3e;
 | |
| X11_KEY_FORWARD_SLASH = 0x3f;
 | |
| X11_KEY_DASH = 0x2d;
 | |
| X11_KEY_COLON = 0x3a;
 | |
| X11_KEY_SEMI_COLON = 0x3b;
 | |
| X11_KEY_NUMPAD0 = 0x30;
 | |
| X11_KEY_NUMPAD1 = 0x31;
 | |
| X11_KEY_NUMPAD2 = 0x32;
 | |
| X11_KEY_NUMPAD3 = 0x33;
 | |
| X11_KEY_NUMPAD4 = 0x34;
 | |
| X11_KEY_NUMPAD5 = 0x35;
 | |
| X11_KEY_NUMPAD6 = 0x36;
 | |
| X11_KEY_NUMPAD7 = 0x37;
 | |
| X11_KEY_NUMPAD8 = 0x38;
 | |
| X11_KEY_NUMPAD9 = 0x39;
 | |
| X11_KEY_DECIMAL_POINT = 0x2e;
 | |
| X11_KEY_DIVIDE = 0x3f;
 | |
| X11_KEY_TILDE = 0x7e;				// ~
 | |
| X11_KEY_CIRCUMFLEX_ACCENT = 0x5e;	// ^
 | |
| X11_KEY_YEN_MARK = 0xa5;				// Japanese YEN mark
 | |
| X11_KEY_ASTERISK = 0x2a;
 | |
| X11_KEY_KP_0 = 0xFFB0;
 | |
| X11_KEY_KP_1 = 0xFFB1;
 | |
| X11_KEY_KP_2 = 0xFFB2;
 | |
| X11_KEY_KP_3 = 0xFFB3;
 | |
| X11_KEY_KP_4 = 0xFFB4;
 | |
| X11_KEY_KP_5 = 0xFFB5;
 | |
| X11_KEY_KP_6 = 0xFFB6;
 | |
| X11_KEY_KP_7 = 0xFFB7;
 | |
| X11_KEY_KP_8 = 0xFFB8;
 | |
| X11_KEY_KP_9 = 0xFFB9;
 | |
| X11_KEY_KP_Decimal = 0xFFAE;
 | |
| 
 | |
| KEY_DOWN = 5;
 | |
| KEY_UP = 6;
 | |
| 
 | |
| KEYBOARD_TYPE_COOKED = "us";
 | |
| KEYBOARD_TYPE_JP = "jp";
 | |
| KEYBOARD_TYPE_UK = "uk";
 | |
| 
 | |
| //JP keyboard type
 | |
| 
 | |
| var	keyboardTables = [
 | |
|            {tindex: 0, keyboardType: KEYBOARD_TYPE_COOKED, mappingTable:
 | |
|                {X11: [  {keycode: 226, entry: X11_KEY_REVERSE_SOLIUS},
 | |
| 
 | |
|                         {keycode: 240, entry: [
 | |
|                             {type: KEY_DOWN, code: X11_KEY_CAPSLOCK, modifiers: 0 },
 | |
|                             {type: KEY_UP, code: X11_KEY_CAPSLOCK, modifiers: 0 },
 | |
|                             ]
 | |
|                         }
 | |
|                      ],
 | |
|                 keyPress: [
 | |
|                         {keycode: 59, entry: [
 | |
|                                               {type: KEY_DOWN, code: X11_KEY_SEMI_COLON, modifiers: 0 },
 | |
|                                               {type: KEY_UP, code: X11_KEY_SEMI_COLON, modifiers: 0 },
 | |
|                                               ]
 | |
|                         },
 | |
|                         {keycode: 43, entry: [
 | |
|                                               {type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
 | |
|                                               {type: KEY_DOWN, code: X11_KEY_ADD, modifiers: 0, shift: false },
 | |
|                                               {type: KEY_UP, code: X11_KEY_ADD, modifiers: 0, shift: false },
 | |
|                                               {type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0, shift: false },
 | |
|                                               {type: KEY_DOWN, code: X11_KEY_ADD, modifiers: 0, shift: true },
 | |
|                                               {type: KEY_UP, code: X11_KEY_ADD, modifiers: 0, shift: true },
 | |
|                                               ]
 | |
|                         }
 | |
|                         ]
 | |
|                }
 | |
|            }, {tindex: 1, keyboardType: KEYBOARD_TYPE_JP, mappingTable:
 | |
|            // intialize keyboard mapping for RAW keyboard
 | |
|            {X11: [
 | |
|                   {keycode: JS_KEY_CAPSLOCK,			entry : X11_KEY_CAPSLOCK},
 | |
|                   {keycode: JS_KEY_BACKSPACE,			entry : X11_KEY_BACKSPACE},
 | |
|                   {keycode: JS_KEY_TAB,					entry : X11_KEY_TAB},
 | |
|                   {keycode: JS_KEY_ENTER,				entry : X11_KEY_ENTER},
 | |
|                   {keycode: JS_KEY_ESCAPE,				entry : X11_KEY_ESCAPE},
 | |
|                   {keycode: JS_KEY_INSERT,				entry : X11_KEY_INSERT},
 | |
|                   {keycode: JS_KEY_DELETE,				entry : X11_KEY_DELETE},
 | |
|                   {keycode: JS_KEY_HOME,				entry : X11_KEY_HOME},
 | |
|                   {keycode: JS_KEY_END,					entry : X11_KEY_END},
 | |
|                   {keycode: JS_KEY_PAGEUP,				entry : X11_KEY_PAGEUP},
 | |
|                   {keycode: JS_KEY_PAGEDOWN,			entry : X11_KEY_PAGEDOWN},
 | |
|                   {keycode: JS_KEY_LEFT,				entry : X11_KEY_LEFT},
 | |
|                   {keycode: JS_KEY_UP,					entry : X11_KEY_UP},
 | |
|                   {keycode: JS_KEY_RIGHT,				entry : X11_KEY_RIGHT},
 | |
|                   {keycode: JS_KEY_DOWN,				entry : X11_KEY_DOWN},
 | |
|                   {keycode: JS_KEY_F1,					entry : X11_KEY_F1},
 | |
|                   {keycode: JS_KEY_F2,					entry : X11_KEY_F2},
 | |
|                   {keycode: JS_KEY_F3,					entry : X11_KEY_F3},
 | |
|                   {keycode: JS_KEY_F4,					entry : X11_KEY_F4},
 | |
|                   {keycode: JS_KEY_F5,					entry : X11_KEY_F5},
 | |
|                   {keycode: JS_KEY_F6,					entry : X11_KEY_F6},
 | |
|                   {keycode: JS_KEY_F7,					entry : X11_KEY_F7},
 | |
|                   {keycode: JS_KEY_F8,					entry : X11_KEY_F8},
 | |
|                   {keycode: JS_KEY_F9,					entry : X11_KEY_F9},
 | |
|                   {keycode: JS_KEY_F10,					entry : X11_KEY_F10},
 | |
|                   {keycode: JS_KEY_F11,					entry : X11_KEY_F11},
 | |
|                   {keycode: JS_KEY_F12,					entry : X11_KEY_F12},
 | |
|                   {keycode: JS_KEY_SHIFT,				entry : X11_KEY_SHIFT},
 | |
|                   {keycode: JS_KEY_CTRL,				entry : X11_KEY_CTRL},
 | |
|                   {keycode: JS_KEY_ALT,					entry : X11_KEY_ALT},
 | |
|                   //{keycode: JS_KEY_GRAVE_ACCENT,		entry : X11_KEY_GRAVE_ACCENT},
 | |
|                   //[192 / 64 = "' @"]
 | |
|                   {keycode: 192,	entry : 0x5b,	browser: "IE"},
 | |
|                   {keycode: 64,		entry : 0x5b, 	browser: "Firefox"},
 | |
|                   //{keycode: JS_KEY_ADD,					entry : X11_KEY_ADD},
 | |
|                   //[187 / 59 = "; +"]
 | |
|                   {keycode: 187,	entry : 0x3a,	browser: "IE"},
 | |
|                   {keycode: 59,		entry : 0x3b, 	browser: "Firefox"},
 | |
|                   //{keycode: JS_KEY_OPEN_BRACKET,		entry : X11_KEY_OPEN_BRACKET},
 | |
|                   //[219 = "[{"]
 | |
|                   {keycode: 219,	entry : 0x5d,	browser: "IE"},
 | |
|                   {keycode: 219,	entry : 0x5d, 	browser: "Firefox"},
 | |
|                   //{keycode: JS_KEY_CLOSE_BRACKET,		entry : X11_KEY_CLOSE_BRACKET},
 | |
|                   //[221 = "]}"]
 | |
|                   {keycode: 221,	entry : 0x5c,	browser: "IE"},
 | |
|                   {keycode: 221,	entry : 0x5c,	browser: "Firefox"},
 | |
|                   {keycode: JS_KEY_BACK_SLASH,			entry : X11_KEY_BACK_SLASH},
 | |
|                   //{keycode: JS_KEY_SINGLE_QUOTE,		entry : X11_KEY_SINGLE_QUOTE},
 | |
|                   //[222 / 160 = "~^"]
 | |
|                   {keycode: 222,		entry : 0x3d,	browser: "IE"},
 | |
|                   {keycode: 160,		entry : 0x3d,	browser: "Firefox"},
 | |
|                   //[173 = "-=" ] specific to Firefox browser
 | |
|                   {keycode: 173,		entry : 0x2d,	browser: "Firefox"},
 | |
|                   {keycode: JS_KEY_COMMA,				entry : X11_KEY_COMMA},
 | |
|                   {keycode: JS_KEY_PERIOD, 				entry : X11_KEY_PERIOD},
 | |
|                   {keycode: JS_KEY_FORWARD_SLASH,		entry : X11_KEY_FORWARD_SLASH},
 | |
|                   {keycode: JS_KEY_DASH,				entry : X11_KEY_DASH},
 | |
|                   {keycode: JS_KEY_SEMI_COLON,			entry : X11_KEY_SEMI_COLON},
 | |
|                   {keycode: JS_KEY_NUMPAD0,				entry : X11_KEY_KP_0},
 | |
|                   {keycode: JS_KEY_NUMPAD1,				entry : X11_KEY_KP_1},
 | |
|                   {keycode: JS_KEY_NUMPAD2,				entry : X11_KEY_KP_2},
 | |
|                   {keycode: JS_KEY_NUMPAD3,				entry : X11_KEY_KP_3},
 | |
|                   {keycode: JS_KEY_NUMPAD4,				entry : X11_KEY_KP_4},
 | |
|                   {keycode: JS_KEY_NUMPAD5,				entry : X11_KEY_KP_5},
 | |
|                   {keycode: JS_KEY_NUMPAD6,				entry : X11_KEY_KP_6},
 | |
|                   {keycode: JS_KEY_NUMPAD7,				entry : X11_KEY_KP_7},
 | |
|                   {keycode: JS_KEY_NUMPAD8,				entry : X11_KEY_KP_8},
 | |
|                   {keycode: JS_KEY_NUMPAD9,				entry : X11_KEY_KP_9},
 | |
|                   {keycode: JS_KEY_DECIMAL_POINT,		entry : X11_KEY_KP_Decimal},
 | |
|                   {keycode: JS_KEY_DIVIDE,				entry : 0xffaf},
 | |
|                   {keycode: JS_KEY_MULTIPLY,			entry : 0xffaa},
 | |
|                   {keycode: JS_KEY_ADD,					entry : 0xffab},
 | |
|                   {keycode: JS_KEY_SUBSTRACT,			entry : 0xffad},
 | |
|                   //Kanji Key = 243 / 244
 | |
|                   {keycode: 243,	entry : 0x7e,	browser: "IE"},
 | |
|                   {keycode: 244,	entry : 0x7e,	browser: "IE"},
 | |
|                   //Caps Lock = 240
 | |
|                   {keycode: 240,			entry : 0xffe5},
 | |
|                   /*
 | |
|                   {keycode: JS_KEY_MULTIPLY,    entry : [
 | |
|                                                          {type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0 },
 | |
|                                                          {type: KEY_DOWN, code: X11_KEY_ASTERISK, modifiers: 0 },
 | |
|                                                          {type: KEY_UP, code: X11_KEY_ASTERISK, modifiers: 0 },
 | |
|                                                          {type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0 }
 | |
|                                                          ]},
 | |
|                   {keycode: JS_KEY_ADD,         entry : false}
 | |
|                    */
 | |
|                   //[186 / 58 = "~^"]
 | |
|                   {keycode: 186,		entry : 0x22, browser: "IE"},
 | |
|                   {keycode: 58,		entry : 0x22, browser: "Firefox"},
 | |
|                   ],
 | |
|                   keyPress: [
 | |
|                              {keycode: 61,      entry:  [
 | |
|                                                          {type: KEY_DOWN, code: X11_KEY_ADD, modifiers: 0, shift: false },
 | |
|                                                          {type: KEY_UP, code: X11_KEY_ADD, modifiers: 0, shift: false }
 | |
|                                                          ]},
 | |
|                                                          ]
 | |
|            }
 | |
|            }, {tindex: 2, keyboardType: KEYBOARD_TYPE_UK, mappingTable:
 | |
|                  {X11: [
 | |
|                           //[223 = `¬¦]
 | |
|                           {keycode: 223,		entry : 0x60, 	browser: "IE"},
 | |
|                           ],
 | |
|                   keyPress: [
 | |
|                              //[34 = "]
 | |
|                           {keycode: 34, entry:
 | |
|                               [{type : KEY_DOWN, code : 0x40, modifiers : 64, shift : true}]
 | |
|                           },
 | |
|                           //[35 = #]
 | |
|                           {keycode: 35, entry:
 | |
|                               [{type : KEY_DOWN, code : 0x5c, modifiers : 0, shift : false}]
 | |
|                           },
 | |
|                           // [64 = @]
 | |
|                           {keycode: 64, entry:
 | |
|                               [{type : KEY_DOWN, code : 0x22, modifiers : 64, shift : true}]
 | |
|                           },
 | |
|                           // [92 = \]
 | |
|                           {keycode: 92, entry:
 | |
|                               [{type : KEY_DOWN, code : 0xa6, modifiers : 0, shift : false}]
 | |
|                           },
 | |
|                           // [124 = |]
 | |
|                           {keycode: 124, entry:
 | |
|                               [{type : KEY_DOWN, code : 0xa6, modifiers : 64, shift : true}]
 | |
|                           },
 | |
|                           // [126 = ~]
 | |
|                           {keycode: 126, entry:
 | |
|                               [{type : KEY_DOWN, code : 0x7c, modifiers : 64, shift : true}]
 | |
|                           },
 | |
|                           // [163 = £]
 | |
|                           {keycode: 163, entry:
 | |
|                               [{type : KEY_DOWN, code : 0x23, modifiers : 64, shift : true}]
 | |
|                           },
 | |
|                           // [172 = ¬]
 | |
|                           {keycode: 172, entry:
 | |
|                               [{type : KEY_DOWN, code : 0x7e, modifiers : 64, shift : true}]
 | |
|                           },
 | |
|                           // [166 = ¦]
 | |
|                           {keycode: 166, entry:
 | |
|                               [{type : KEY_DOWN, code : 0x60, modifiers : 896, shift : false}]
 | |
|                           }
 | |
|                           ]
 | |
|            }
 | |
|            }]
 |