blob: 396f1ed20d4ac8a6be0a6462ae43e6506ea07bfc [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.keys;
import java.util.SortedMap;
import java.util.TreeMap;
import org.eclipse.jface.bindings.keys.IKeyLookup;
import org.eclipse.jface.bindings.keys.KeyLookupFactory;
/**
* <p>
* Instances of <code>SpecialKey</code> represent the keys on keyboard
* recognized as neither modifier keys nor character keys. These are special
* control keys specific to computers (e.g., "left arrow", "page down", "F10",
* etc.). They do not include keys representing letters, numbers or punctuation
* from a natural language, nor do they include any key that can be represented
* by a Unicode character (e.g., "backspace").
* </p>
* <p>
* <code>SpecialKey</code> objects are immutable. Clients are not permitted to
* extend this class.
* </p>
*
* @deprecated Please use org.eclipse.jface.bindings.keys.KeyStroke and
* org.eclipse.jface.bindings.keys.KeyLookupFactory
* @since 3.0
*/
public final class SpecialKey extends NaturalKey {
/**
* An internal map used to lookup instances of <code>SpecialKey</code>
* given the formal string representation of a special key.
*/
static SortedMap specialKeysByName = new TreeMap();
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Arrow Down' key.
*/
public final static SpecialKey ARROW_DOWN;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Arrow Left' key.
*/
public final static SpecialKey ARROW_LEFT;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Arrow Right' key.
*/
public final static SpecialKey ARROW_RIGHT;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Arrow Up' key.
*/
public final static SpecialKey ARROW_UP;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Break' key.
*/
public final static SpecialKey BREAK;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Caps Lock' key.
*/
public final static SpecialKey CAPS_LOCK;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'End' key.
*/
public final static SpecialKey END;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F1' key.
*/
public final static SpecialKey F1;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F10' key.
*/
public final static SpecialKey F10;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F11' key.
*/
public final static SpecialKey F11;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F12' key.
*/
public final static SpecialKey F12;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F13' key.
*/
public final static SpecialKey F13;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F14' key.
*/
public final static SpecialKey F14;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F15' key.
*/
public final static SpecialKey F15;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F2' key.
*/
public final static SpecialKey F2;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F3' key.
*/
public final static SpecialKey F3;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F4' key.
*/
public final static SpecialKey F4;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F5' key.
*/
public final static SpecialKey F5;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F6' key.
*/
public final static SpecialKey F6;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F7' key.
*/
public final static SpecialKey F7;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F8' key.
*/
public final static SpecialKey F8;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'F9' key.
*/
public final static SpecialKey F9;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Home' key.
*/
public final static SpecialKey HOME;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Insert' key.
*/
public final static SpecialKey INSERT;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'NumLock' key.
*/
public final static SpecialKey NUM_LOCK;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '0' key on the numpad.
*/
public final static SpecialKey NUMPAD_0;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '1' key on the numpad.
*/
public final static SpecialKey NUMPAD_1;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '2' key on the numpad.
*/
public final static SpecialKey NUMPAD_2;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '3' key on the numpad.
*/
public final static SpecialKey NUMPAD_3;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '4' key on the numpad.
*/
public final static SpecialKey NUMPAD_4;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '5' key on the numpad.
*/
public final static SpecialKey NUMPAD_5;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '6' key on the numpad.
*/
public final static SpecialKey NUMPAD_6;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '7' key on the numpad.
*/
public final static SpecialKey NUMPAD_7;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '8' key on the numpad.
*/
public final static SpecialKey NUMPAD_8;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '9' key on the numpad.
*/
public final static SpecialKey NUMPAD_9;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Add' key on the numpad.
*/
public final static SpecialKey NUMPAD_ADD;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Decimal' key on the numpad.
*/
public final static SpecialKey NUMPAD_DECIMAL;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Divide' key on the numpad.
*/
public final static SpecialKey NUMPAD_DIVIDE;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Enter' key on the numpad.
*/
public final static SpecialKey NUMPAD_ENTER;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the '=' key on the numpad.
*/
public final static SpecialKey NUMPAD_EQUAL;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Multiply' key on the numpad.
*/
public final static SpecialKey NUMPAD_MULTIPLY;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Subtract' key on the numpad.
*/
public final static SpecialKey NUMPAD_SUBTRACT;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Page Down' key.
*/
public final static SpecialKey PAGE_DOWN;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Page Up' key.
*/
public final static SpecialKey PAGE_UP;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Pause' key.
*/
public final static SpecialKey PAUSE;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Print Screen' key.
*/
public final static SpecialKey PRINT_SCREEN;
/**
* The single static instance of <code>SpecialKey</code> which represents
* the 'Scroll Lock' key.
*/
public final static SpecialKey SCROLL_LOCK;
static {
final IKeyLookup lookup = KeyLookupFactory.getDefault();
ARROW_DOWN = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.ARROW_DOWN_NAME));
ARROW_LEFT = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.ARROW_LEFT_NAME));
ARROW_RIGHT = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.ARROW_RIGHT_NAME));
ARROW_UP = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.ARROW_UP_NAME));
BREAK = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.BREAK_NAME));
CAPS_LOCK = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.CAPS_LOCK_NAME));
END = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.END_NAME));
F1 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F1_NAME));
F2 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F2_NAME));
F3 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F3_NAME));
F4 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F4_NAME));
F5 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F5_NAME));
F6 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F6_NAME));
F7 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F7_NAME));
F8 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F8_NAME));
F9 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F9_NAME));
F10 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F10_NAME));
F11 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F11_NAME));
F12 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F12_NAME));
F13 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F13_NAME));
F14 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F14_NAME));
F15 = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.F15_NAME));
HOME = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.HOME_NAME));
INSERT = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.INSERT_NAME));
NUM_LOCK = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUM_LOCK_NAME));
NUMPAD_0 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_0_NAME));
NUMPAD_1 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_1_NAME));
NUMPAD_2 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_2_NAME));
NUMPAD_3 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_3_NAME));
NUMPAD_4 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_4_NAME));
NUMPAD_5 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_5_NAME));
NUMPAD_6 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_6_NAME));
NUMPAD_7 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_7_NAME));
NUMPAD_8 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_8_NAME));
NUMPAD_9 = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_9_NAME));
NUMPAD_ADD = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_ADD_NAME));
NUMPAD_DECIMAL = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_DECIMAL_NAME));
NUMPAD_DIVIDE = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_DIVIDE_NAME));
NUMPAD_ENTER = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_ENTER_NAME));
NUMPAD_EQUAL = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_EQUAL_NAME));
NUMPAD_MULTIPLY = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_MULTIPLY_NAME));
NUMPAD_SUBTRACT = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.NUMPAD_SUBTRACT_NAME));
PAGE_DOWN = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.PAGE_DOWN_NAME));
PAGE_UP = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.PAGE_UP_NAME));
PAUSE = new SpecialKey(lookup.formalKeyLookup(IKeyLookup.PAUSE_NAME));
PRINT_SCREEN = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.PRINT_SCREEN_NAME));
SCROLL_LOCK = new SpecialKey(lookup
.formalKeyLookup(IKeyLookup.SCROLL_LOCK_NAME));
specialKeysByName.put(SpecialKey.ARROW_DOWN.toString(),
SpecialKey.ARROW_DOWN);
specialKeysByName.put(SpecialKey.ARROW_LEFT.toString(),
SpecialKey.ARROW_LEFT);
specialKeysByName.put(SpecialKey.ARROW_RIGHT.toString(),
SpecialKey.ARROW_RIGHT);
specialKeysByName.put(SpecialKey.ARROW_UP.toString(),
SpecialKey.ARROW_UP);
specialKeysByName.put(SpecialKey.BREAK.toString(), SpecialKey.BREAK);
specialKeysByName.put(SpecialKey.CAPS_LOCK.toString(),
SpecialKey.CAPS_LOCK);
specialKeysByName.put(SpecialKey.END.toString(), SpecialKey.END);
specialKeysByName.put(SpecialKey.F1.toString(), SpecialKey.F1);
specialKeysByName.put(SpecialKey.F10.toString(), SpecialKey.F10);
specialKeysByName.put(SpecialKey.F11.toString(), SpecialKey.F11);
specialKeysByName.put(SpecialKey.F12.toString(), SpecialKey.F12);
specialKeysByName.put(SpecialKey.F13.toString(), SpecialKey.F13);
specialKeysByName.put(SpecialKey.F14.toString(), SpecialKey.F14);
specialKeysByName.put(SpecialKey.F15.toString(), SpecialKey.F15);
specialKeysByName.put(SpecialKey.F2.toString(), SpecialKey.F2);
specialKeysByName.put(SpecialKey.F3.toString(), SpecialKey.F3);
specialKeysByName.put(SpecialKey.F4.toString(), SpecialKey.F4);
specialKeysByName.put(SpecialKey.F5.toString(), SpecialKey.F5);
specialKeysByName.put(SpecialKey.F6.toString(), SpecialKey.F6);
specialKeysByName.put(SpecialKey.F7.toString(), SpecialKey.F7);
specialKeysByName.put(SpecialKey.F8.toString(), SpecialKey.F8);
specialKeysByName.put(SpecialKey.F9.toString(), SpecialKey.F9);
specialKeysByName.put(SpecialKey.NUM_LOCK.toString(),
SpecialKey.NUM_LOCK);
specialKeysByName.put(SpecialKey.NUMPAD_0.toString(),
SpecialKey.NUMPAD_0);
specialKeysByName.put(SpecialKey.NUMPAD_1.toString(),
SpecialKey.NUMPAD_1);
specialKeysByName.put(SpecialKey.NUMPAD_2.toString(),
SpecialKey.NUMPAD_2);
specialKeysByName.put(SpecialKey.NUMPAD_3.toString(),
SpecialKey.NUMPAD_3);
specialKeysByName.put(SpecialKey.NUMPAD_4.toString(),
SpecialKey.NUMPAD_4);
specialKeysByName.put(SpecialKey.NUMPAD_5.toString(),
SpecialKey.NUMPAD_5);
specialKeysByName.put(SpecialKey.NUMPAD_6.toString(),
SpecialKey.NUMPAD_6);
specialKeysByName.put(SpecialKey.NUMPAD_7.toString(),
SpecialKey.NUMPAD_7);
specialKeysByName.put(SpecialKey.NUMPAD_8.toString(),
SpecialKey.NUMPAD_8);
specialKeysByName.put(SpecialKey.NUMPAD_9.toString(),
SpecialKey.NUMPAD_9);
specialKeysByName.put(SpecialKey.NUMPAD_ADD.toString(),
SpecialKey.NUMPAD_ADD);
specialKeysByName.put(SpecialKey.NUMPAD_DECIMAL.toString(),
SpecialKey.NUMPAD_DECIMAL);
specialKeysByName.put(SpecialKey.NUMPAD_DIVIDE.toString(),
SpecialKey.NUMPAD_DIVIDE);
specialKeysByName.put(SpecialKey.NUMPAD_ENTER.toString(),
SpecialKey.NUMPAD_ENTER);
specialKeysByName.put(SpecialKey.NUMPAD_EQUAL.toString(),
SpecialKey.NUMPAD_EQUAL);
specialKeysByName.put(SpecialKey.NUMPAD_MULTIPLY.toString(),
SpecialKey.NUMPAD_MULTIPLY);
specialKeysByName.put(SpecialKey.NUMPAD_SUBTRACT.toString(),
SpecialKey.NUMPAD_SUBTRACT);
specialKeysByName.put(SpecialKey.HOME.toString(), SpecialKey.HOME);
specialKeysByName.put(SpecialKey.INSERT.toString(), SpecialKey.INSERT);
specialKeysByName.put(SpecialKey.PAGE_DOWN.toString(),
SpecialKey.PAGE_DOWN);
specialKeysByName
.put(SpecialKey.PAGE_UP.toString(), SpecialKey.PAGE_UP);
specialKeysByName.put(SpecialKey.PAUSE.toString(), SpecialKey.PAUSE);
specialKeysByName.put(SpecialKey.PRINT_SCREEN.toString(),
SpecialKey.PRINT_SCREEN);
specialKeysByName.put(SpecialKey.SCROLL_LOCK.toString(),
SpecialKey.SCROLL_LOCK);
}
/**
* Constructs an instance of <code>SpecialKey</code> given a name.
*
* @param key
* The key to be wrapped.
*/
private SpecialKey(final int key) {
super(key);
}
}