688 lines
19 KiB
Java
688 lines
19 KiB
Java
/*
|
|
* 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.
|
|
*/
|
|
/**
|
|
* @author Michael Danilov
|
|
* @version $Revision$
|
|
*/
|
|
package java.awt.event;
|
|
|
|
import java.awt.Component;
|
|
import java.awt.Toolkit;
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.Modifier;
|
|
|
|
import org.apache.harmony.awt.internal.nls.Messages;
|
|
|
|
/**
|
|
* This class is not supported in Android 1.0. It is merely provided to maintain
|
|
* interface compatibility with desktop Java implementations.
|
|
*
|
|
* @since Android 1.0
|
|
*/
|
|
public class KeyEvent extends InputEvent {
|
|
|
|
private static final long serialVersionUID = -2352130953028126954L;
|
|
|
|
public static final int KEY_FIRST = 400;
|
|
|
|
public static final int KEY_LAST = 402;
|
|
|
|
public static final int KEY_TYPED = 400;
|
|
|
|
public static final int KEY_PRESSED = 401;
|
|
|
|
public static final int KEY_RELEASED = 402;
|
|
|
|
public static final int VK_ENTER = 10;
|
|
|
|
public static final int VK_BACK_SPACE = 8;
|
|
|
|
public static final int VK_TAB = 9;
|
|
|
|
public static final int VK_CANCEL = 3;
|
|
|
|
public static final int VK_CLEAR = 12;
|
|
|
|
public static final int VK_SHIFT = 16;
|
|
|
|
public static final int VK_CONTROL = 17;
|
|
|
|
public static final int VK_ALT = 18;
|
|
|
|
public static final int VK_PAUSE = 19;
|
|
|
|
public static final int VK_CAPS_LOCK = 20;
|
|
|
|
public static final int VK_ESCAPE = 27;
|
|
|
|
public static final int VK_SPACE = 32;
|
|
|
|
public static final int VK_PAGE_UP = 33;
|
|
|
|
public static final int VK_PAGE_DOWN = 34;
|
|
|
|
public static final int VK_END = 35;
|
|
|
|
public static final int VK_HOME = 36;
|
|
|
|
public static final int VK_LEFT = 37;
|
|
|
|
public static final int VK_UP = 38;
|
|
|
|
public static final int VK_RIGHT = 39;
|
|
|
|
public static final int VK_DOWN = 40;
|
|
|
|
public static final int VK_COMMA = 44;
|
|
|
|
public static final int VK_MINUS = 45;
|
|
|
|
public static final int VK_PERIOD = 46;
|
|
|
|
public static final int VK_SLASH = 47;
|
|
|
|
public static final int VK_0 = 48;
|
|
|
|
public static final int VK_1 = 49;
|
|
|
|
public static final int VK_2 = 50;
|
|
|
|
public static final int VK_3 = 51;
|
|
|
|
public static final int VK_4 = 52;
|
|
|
|
public static final int VK_5 = 53;
|
|
|
|
public static final int VK_6 = 54;
|
|
|
|
public static final int VK_7 = 55;
|
|
|
|
public static final int VK_8 = 56;
|
|
|
|
public static final int VK_9 = 57;
|
|
|
|
public static final int VK_SEMICOLON = 59;
|
|
|
|
public static final int VK_EQUALS = 61;
|
|
|
|
public static final int VK_A = 65;
|
|
|
|
public static final int VK_B = 66;
|
|
|
|
public static final int VK_C = 67;
|
|
|
|
public static final int VK_D = 68;
|
|
|
|
public static final int VK_E = 69;
|
|
|
|
public static final int VK_F = 70;
|
|
|
|
public static final int VK_G = 71;
|
|
|
|
public static final int VK_H = 72;
|
|
|
|
public static final int VK_I = 73;
|
|
|
|
public static final int VK_J = 74;
|
|
|
|
public static final int VK_K = 75;
|
|
|
|
public static final int VK_L = 76;
|
|
|
|
public static final int VK_M = 77;
|
|
|
|
public static final int VK_N = 78;
|
|
|
|
public static final int VK_O = 79;
|
|
|
|
public static final int VK_P = 80;
|
|
|
|
public static final int VK_Q = 81;
|
|
|
|
public static final int VK_R = 82;
|
|
|
|
public static final int VK_S = 83;
|
|
|
|
public static final int VK_T = 84;
|
|
|
|
public static final int VK_U = 85;
|
|
|
|
public static final int VK_V = 86;
|
|
|
|
public static final int VK_W = 87;
|
|
|
|
public static final int VK_X = 88;
|
|
|
|
public static final int VK_Y = 89;
|
|
|
|
public static final int VK_Z = 90;
|
|
|
|
public static final int VK_OPEN_BRACKET = 91;
|
|
|
|
public static final int VK_BACK_SLASH = 92;
|
|
|
|
public static final int VK_CLOSE_BRACKET = 93;
|
|
|
|
public static final int VK_NUMPAD0 = 96;
|
|
|
|
public static final int VK_NUMPAD1 = 97;
|
|
|
|
public static final int VK_NUMPAD2 = 98;
|
|
|
|
public static final int VK_NUMPAD3 = 99;
|
|
|
|
public static final int VK_NUMPAD4 = 100;
|
|
|
|
public static final int VK_NUMPAD5 = 101;
|
|
|
|
public static final int VK_NUMPAD6 = 102;
|
|
|
|
public static final int VK_NUMPAD7 = 103;
|
|
|
|
public static final int VK_NUMPAD8 = 104;
|
|
|
|
public static final int VK_NUMPAD9 = 105;
|
|
|
|
public static final int VK_MULTIPLY = 106;
|
|
|
|
public static final int VK_ADD = 107;
|
|
|
|
public static final int VK_SEPARATER = 108;
|
|
|
|
public static final int VK_SEPARATOR = 108;
|
|
|
|
public static final int VK_SUBTRACT = 109;
|
|
|
|
public static final int VK_DECIMAL = 110;
|
|
|
|
public static final int VK_DIVIDE = 111;
|
|
|
|
public static final int VK_DELETE = 127;
|
|
|
|
public static final int VK_NUM_LOCK = 144;
|
|
|
|
public static final int VK_SCROLL_LOCK = 145;
|
|
|
|
public static final int VK_F1 = 112;
|
|
|
|
public static final int VK_F2 = 113;
|
|
|
|
public static final int VK_F3 = 114;
|
|
|
|
public static final int VK_F4 = 115;
|
|
|
|
public static final int VK_F5 = 116;
|
|
|
|
public static final int VK_F6 = 117;
|
|
|
|
public static final int VK_F7 = 118;
|
|
|
|
public static final int VK_F8 = 119;
|
|
|
|
public static final int VK_F9 = 120;
|
|
|
|
public static final int VK_F10 = 121;
|
|
|
|
public static final int VK_F11 = 122;
|
|
|
|
public static final int VK_F12 = 123;
|
|
|
|
public static final int VK_F13 = 61440;
|
|
|
|
public static final int VK_F14 = 61441;
|
|
|
|
public static final int VK_F15 = 61442;
|
|
|
|
public static final int VK_F16 = 61443;
|
|
|
|
public static final int VK_F17 = 61444;
|
|
|
|
public static final int VK_F18 = 61445;
|
|
|
|
public static final int VK_F19 = 61446;
|
|
|
|
public static final int VK_F20 = 61447;
|
|
|
|
public static final int VK_F21 = 61448;
|
|
|
|
public static final int VK_F22 = 61449;
|
|
|
|
public static final int VK_F23 = 61450;
|
|
|
|
public static final int VK_F24 = 61451;
|
|
|
|
public static final int VK_PRINTSCREEN = 154;
|
|
|
|
public static final int VK_INSERT = 155;
|
|
|
|
public static final int VK_HELP = 156;
|
|
|
|
public static final int VK_META = 157;
|
|
|
|
public static final int VK_BACK_QUOTE = 192;
|
|
|
|
public static final int VK_QUOTE = 222;
|
|
|
|
public static final int VK_KP_UP = 224;
|
|
|
|
public static final int VK_KP_DOWN = 225;
|
|
|
|
public static final int VK_KP_LEFT = 226;
|
|
|
|
public static final int VK_KP_RIGHT = 227;
|
|
|
|
public static final int VK_DEAD_GRAVE = 128;
|
|
|
|
public static final int VK_DEAD_ACUTE = 129;
|
|
|
|
public static final int VK_DEAD_CIRCUMFLEX = 130;
|
|
|
|
public static final int VK_DEAD_TILDE = 131;
|
|
|
|
public static final int VK_DEAD_MACRON = 132;
|
|
|
|
public static final int VK_DEAD_BREVE = 133;
|
|
|
|
public static final int VK_DEAD_ABOVEDOT = 134;
|
|
|
|
public static final int VK_DEAD_DIAERESIS = 135;
|
|
|
|
public static final int VK_DEAD_ABOVERING = 136;
|
|
|
|
public static final int VK_DEAD_DOUBLEACUTE = 137;
|
|
|
|
public static final int VK_DEAD_CARON = 138;
|
|
|
|
public static final int VK_DEAD_CEDILLA = 139;
|
|
|
|
public static final int VK_DEAD_OGONEK = 140;
|
|
|
|
public static final int VK_DEAD_IOTA = 141;
|
|
|
|
public static final int VK_DEAD_VOICED_SOUND = 142;
|
|
|
|
public static final int VK_DEAD_SEMIVOICED_SOUND = 143;
|
|
|
|
public static final int VK_AMPERSAND = 150;
|
|
|
|
public static final int VK_ASTERISK = 151;
|
|
|
|
public static final int VK_QUOTEDBL = 152;
|
|
|
|
public static final int VK_LESS = 153;
|
|
|
|
public static final int VK_GREATER = 160;
|
|
|
|
public static final int VK_BRACELEFT = 161;
|
|
|
|
public static final int VK_BRACERIGHT = 162;
|
|
|
|
public static final int VK_AT = 512;
|
|
|
|
public static final int VK_COLON = 513;
|
|
|
|
public static final int VK_CIRCUMFLEX = 514;
|
|
|
|
public static final int VK_DOLLAR = 515;
|
|
|
|
public static final int VK_EURO_SIGN = 516;
|
|
|
|
public static final int VK_EXCLAMATION_MARK = 517;
|
|
|
|
public static final int VK_INVERTED_EXCLAMATION_MARK = 518;
|
|
|
|
public static final int VK_LEFT_PARENTHESIS = 519;
|
|
|
|
public static final int VK_NUMBER_SIGN = 520;
|
|
|
|
public static final int VK_PLUS = 521;
|
|
|
|
public static final int VK_RIGHT_PARENTHESIS = 522;
|
|
|
|
public static final int VK_UNDERSCORE = 523;
|
|
|
|
public static final int VK_FINAL = 24;
|
|
|
|
public static final int VK_WINDOWS = 524;
|
|
|
|
public static final int VK_CONTEXT_MENU = 525;
|
|
|
|
public static final int VK_CONVERT = 28;
|
|
|
|
public static final int VK_NONCONVERT = 29;
|
|
|
|
public static final int VK_ACCEPT = 30;
|
|
|
|
public static final int VK_MODECHANGE = 31;
|
|
|
|
public static final int VK_KANA = 21;
|
|
|
|
public static final int VK_KANJI = 25;
|
|
|
|
public static final int VK_ALPHANUMERIC = 240;
|
|
|
|
public static final int VK_KATAKANA = 241;
|
|
|
|
public static final int VK_HIRAGANA = 242;
|
|
|
|
public static final int VK_FULL_WIDTH = 243;
|
|
|
|
public static final int VK_HALF_WIDTH = 244;
|
|
|
|
public static final int VK_ROMAN_CHARACTERS = 245;
|
|
|
|
public static final int VK_ALL_CANDIDATES = 256;
|
|
|
|
public static final int VK_PREVIOUS_CANDIDATE = 257;
|
|
|
|
public static final int VK_CODE_INPUT = 258;
|
|
|
|
public static final int VK_JAPANESE_KATAKANA = 259;
|
|
|
|
public static final int VK_JAPANESE_HIRAGANA = 260;
|
|
|
|
public static final int VK_JAPANESE_ROMAN = 261;
|
|
|
|
public static final int VK_KANA_LOCK = 262;
|
|
|
|
public static final int VK_INPUT_METHOD_ON_OFF = 263;
|
|
|
|
public static final int VK_CUT = 65489;
|
|
|
|
public static final int VK_COPY = 65485;
|
|
|
|
public static final int VK_PASTE = 65487;
|
|
|
|
public static final int VK_UNDO = 65483;
|
|
|
|
public static final int VK_AGAIN = 65481;
|
|
|
|
public static final int VK_FIND = 65488;
|
|
|
|
public static final int VK_PROPS = 65482;
|
|
|
|
public static final int VK_STOP = 65480;
|
|
|
|
public static final int VK_COMPOSE = 65312;
|
|
|
|
public static final int VK_ALT_GRAPH = 65406;
|
|
|
|
public static final int VK_BEGIN = 65368;
|
|
|
|
public static final int VK_UNDEFINED = 0;
|
|
|
|
public static final char CHAR_UNDEFINED = (char)(-1);
|
|
|
|
public static final int KEY_LOCATION_UNKNOWN = 0;
|
|
|
|
public static final int KEY_LOCATION_STANDARD = 1;
|
|
|
|
public static final int KEY_LOCATION_LEFT = 2;
|
|
|
|
public static final int KEY_LOCATION_RIGHT = 3;
|
|
|
|
public static final int KEY_LOCATION_NUMPAD = 4;
|
|
|
|
private int keyCode;
|
|
private char keyChar;
|
|
private int keyLocation;
|
|
|
|
public static String getKeyModifiersText(int modifiers) {
|
|
return getKeyModifiersExText(extractExFlags(modifiers));
|
|
}
|
|
|
|
static String getKeyModifiersExText(int modifiersEx) {
|
|
String text = ""; //$NON-NLS-1$
|
|
|
|
if ((modifiersEx & InputEvent.META_DOWN_MASK) != 0) {
|
|
text += Toolkit.getProperty("AWT.meta", "Meta"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
}
|
|
if ((modifiersEx & InputEvent.CTRL_DOWN_MASK) != 0) {
|
|
text += ((text.length() > 0) ? "+" : "") + //$NON-NLS-1$ //$NON-NLS-2$
|
|
Toolkit.getProperty("AWT.control", "Ctrl"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
}
|
|
if ((modifiersEx & InputEvent.ALT_DOWN_MASK) != 0) {
|
|
text += ((text.length() > 0) ? "+" : "") + //$NON-NLS-1$ //$NON-NLS-2$
|
|
Toolkit.getProperty("AWT.alt", "Alt"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
}
|
|
if ((modifiersEx & InputEvent.SHIFT_DOWN_MASK) != 0) {
|
|
text += ((text.length() > 0) ? "+" : "") + //$NON-NLS-1$ //$NON-NLS-2$
|
|
Toolkit.getProperty("AWT.shift", "Shift"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
}
|
|
if ((modifiersEx & InputEvent.ALT_GRAPH_DOWN_MASK) != 0) {
|
|
text += ((text.length() > 0) ? "+" : "") + //$NON-NLS-1$ //$NON-NLS-2$
|
|
Toolkit.getProperty("AWT.altGraph", "Alt Graph"); //$NON-NLS-1$ //$NON-NLS-2$
|
|
}
|
|
|
|
return text;
|
|
}
|
|
|
|
public static String getKeyText(int keyCode) {
|
|
String[] rawName = getPublicStaticFinalIntFieldName(keyCode); //$NON-NLS-1$
|
|
|
|
if ((rawName == null) || (rawName.length == 0)) {
|
|
return ("Unknown keyCode: " + (keyCode >= 0 ? "0x" : "-0x") + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
|
Integer.toHexString(Math.abs(keyCode)));
|
|
}
|
|
|
|
String propertyName = getPropertyName(rawName);
|
|
String defaultName = getDefaultName(rawName);
|
|
|
|
return Toolkit.getProperty(propertyName, defaultName);
|
|
}
|
|
|
|
private static String getDefaultName(String[] rawName) {
|
|
String name = ""; //$NON-NLS-1$
|
|
|
|
for (int i = 0; true; i++) {
|
|
String part = rawName[i];
|
|
|
|
name += new String(new char[] {part.charAt(0)}).toUpperCase() +
|
|
part.substring(1).toLowerCase();
|
|
|
|
if (i == (rawName.length - 1)) {
|
|
break;
|
|
}
|
|
name += " "; //$NON-NLS-1$
|
|
}
|
|
|
|
return name;
|
|
}
|
|
|
|
private static String getPropertyName(String[] rawName) {
|
|
String name = rawName[0].toLowerCase();
|
|
|
|
for (int i = 1; i < rawName.length; i++) {
|
|
String part = rawName[i];
|
|
|
|
name += new String(new char[] {part.charAt(0)}).toUpperCase() +
|
|
part.substring(1).toLowerCase();
|
|
}
|
|
|
|
return ("AWT." + name); //$NON-NLS-1$
|
|
}
|
|
|
|
private static String[] getPublicStaticFinalIntFieldName(int value) {
|
|
Field[] allFields = KeyEvent.class.getDeclaredFields();
|
|
|
|
try {
|
|
for (Field field : allFields) {
|
|
Class<?> ssalc = field.getType();
|
|
int modifiers = field.getModifiers();
|
|
|
|
if (ssalc.isPrimitive() && ssalc.getName().equals("int") && //$NON-NLS-1$
|
|
Modifier.isFinal(modifiers) && Modifier.isPublic(modifiers) &&
|
|
Modifier.isStatic(modifiers))
|
|
{
|
|
if (field.getInt(null) == value){
|
|
final String name = field.getName();
|
|
final int prefixLength = name.indexOf("_") + 1;
|
|
return name.substring(prefixLength).split("_"); //$NON-NLS-1$
|
|
}
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
@Deprecated
|
|
public KeyEvent(Component src, int id,
|
|
long when, int modifiers,
|
|
int keyCode) {
|
|
this(src, id, when, modifiers, keyCode,
|
|
(keyCode > (2 << 7) - 1) ? CHAR_UNDEFINED : (char) keyCode);
|
|
}
|
|
|
|
public KeyEvent(Component src, int id,
|
|
long when, int modifiers,
|
|
int keyCode, char keyChar) {
|
|
this(src, id, when, modifiers, keyCode, keyChar, KEY_LOCATION_UNKNOWN);
|
|
}
|
|
|
|
public KeyEvent(Component src, int id,
|
|
long when, int modifiers,
|
|
int keyCode, char keyChar,
|
|
int keyLocation) {
|
|
super(src, id, when, modifiers);
|
|
|
|
if (id == KEY_TYPED) {
|
|
if (keyCode != VK_UNDEFINED) {
|
|
// awt.191=Invalid keyCode for KEY_TYPED event, must be VK_UNDEFINED
|
|
throw new IllegalArgumentException(Messages.getString("awt.191")); //$NON-NLS-1$
|
|
}
|
|
if (keyChar == CHAR_UNDEFINED) {
|
|
// awt.192=Invalid keyChar for KEY_TYPED event, can't be CHAR_UNDEFINED
|
|
throw new IllegalArgumentException(Messages.getString("awt.192")); //$NON-NLS-1$
|
|
}
|
|
}
|
|
|
|
if ((keyLocation < KEY_LOCATION_UNKNOWN)
|
|
|| (keyLocation > KEY_LOCATION_NUMPAD)) {
|
|
// awt.297=Invalid keyLocation
|
|
throw new IllegalArgumentException(Messages.getString("awt.297")); //$NON-NLS-1$
|
|
}
|
|
|
|
this.keyChar = keyChar;
|
|
this.keyLocation = keyLocation;
|
|
this.keyCode = keyCode;
|
|
}
|
|
|
|
public int getKeyCode() {
|
|
return keyCode;
|
|
}
|
|
|
|
public void setKeyCode(int keyCode) {
|
|
this.keyCode = keyCode;
|
|
}
|
|
|
|
public char getKeyChar() {
|
|
return keyChar;
|
|
}
|
|
|
|
public void setKeyChar(char keyChar) {
|
|
this.keyChar = keyChar;
|
|
}
|
|
|
|
public int getKeyLocation() {
|
|
return keyLocation;
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public void setModifiers(int modifiers) {
|
|
super.setModifiers(modifiers);
|
|
}
|
|
|
|
public boolean isActionKey() {
|
|
return ((keyChar == CHAR_UNDEFINED) && (keyCode != VK_UNDEFINED) &&
|
|
!((keyCode == VK_ALT) || (keyCode == VK_ALT_GRAPH) ||
|
|
(keyCode == VK_CONTROL) || (keyCode == VK_META) || (keyCode == VK_SHIFT)));
|
|
}
|
|
|
|
@Override
|
|
public String paramString() {
|
|
/*
|
|
* The format is based on 1.5 release behavior
|
|
* which can be revealed by the following code:
|
|
*
|
|
* KeyEvent e = new KeyEvent(new Component() {},
|
|
* KeyEvent.KEY_PRESSED, 0,
|
|
* KeyEvent.CTRL_DOWN_MASK|KeyEvent.SHIFT_DOWN_MASK,
|
|
* KeyEvent.VK_A, 'A', KeyEvent.KEY_LOCATION_STANDARD);
|
|
* System.out.println(e);
|
|
*/
|
|
|
|
String idString = null;
|
|
String locString = null;
|
|
String paramString = null;
|
|
String keyCharString = (keyChar == '\n') ?
|
|
keyCharString = getKeyText(VK_ENTER) : "'" + keyChar + "'"; //$NON-NLS-1$ //$NON-NLS-2$
|
|
|
|
switch (id) {
|
|
case KEY_PRESSED:
|
|
idString = "KEY_PRESSED"; //$NON-NLS-1$
|
|
break;
|
|
case KEY_RELEASED:
|
|
idString = "KEY_RELEASED"; //$NON-NLS-1$
|
|
break;
|
|
case KEY_TYPED:
|
|
idString = "KEY_TYPED"; //$NON-NLS-1$
|
|
break;
|
|
default:
|
|
idString = "unknown type"; //$NON-NLS-1$
|
|
}
|
|
|
|
switch(keyLocation){
|
|
case KEY_LOCATION_STANDARD:
|
|
locString = "KEY_LOCATION_STANDARD"; //$NON-NLS-1$
|
|
break;
|
|
case KEY_LOCATION_LEFT:
|
|
locString = "KEY_LOCATION_LEFT"; //$NON-NLS-1$
|
|
break;
|
|
case KEY_LOCATION_RIGHT:
|
|
locString = "KEY_LOCATION_RIGHT"; //$NON-NLS-1$
|
|
break;
|
|
case KEY_LOCATION_NUMPAD:
|
|
locString = "KEY_LOCATION_NUMPAD"; //$NON-NLS-1$
|
|
break;
|
|
case KEY_LOCATION_UNKNOWN:
|
|
locString = "KEY_LOCATION_UNKNOWN"; //$NON-NLS-1$
|
|
break;
|
|
default:
|
|
locString = "unknown type"; //$NON-NLS-1$
|
|
}
|
|
|
|
paramString = idString + ",keyCode=" + keyCode; //$NON-NLS-1$
|
|
if (isActionKey()) {
|
|
paramString += "," + getKeyText(keyCode); //$NON-NLS-1$
|
|
} else {
|
|
paramString += ",keyChar=" + keyCharString; //$NON-NLS-1$
|
|
}
|
|
if (getModifiersEx() > 0) {
|
|
paramString += ",modifiers=" + getModifiersExText(getModifiersEx()) + //$NON-NLS-1$
|
|
",extModifiers=" + getModifiersExText(getModifiersEx()); //$NON-NLS-1$
|
|
}
|
|
paramString += ",keyLocation=" + locString; //$NON-NLS-1$
|
|
|
|
return paramString;
|
|
}
|
|
|
|
}
|