| /* |
| * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved. |
| * |
| * The program is provided "as is" without any warranty express or |
| * implied, including the warranty of non-infringement and the implied |
| * warranties of merchantibility and fitness for a particular purpose. |
| * IBM will not be liable for any damages suffered by you as a result |
| * of using the Program. In no event will IBM be liable for any |
| * special, indirect or consequential damages or lost profits even if |
| * IBM has been advised of the possibility of their occurrence. IBM |
| * will not be liable for any third party claims against you. |
| */ |
| /* |
| * |
| * (C) Copyright IBM Corp. 1998, All Rights Reserved |
| */ |
| |
| package com.ibm.richtext.textpanel; |
| |
| import java.awt.event.KeyEvent; |
| |
| /** |
| * KeyRemap maps keys on a standard US keyboard to characters |
| * in other alphabets. Currently, mappings to Arabic, Hebrew |
| * and Thai are supported. In the future, clients may be |
| * to define their own mappings by subclassing this class. |
| * <P> |
| * @see TextPanel#setKeyRemap |
| */ |
| |
| public class KeyRemap { |
| |
| static final String COPYRIGHT = |
| "(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved"; |
| /** |
| * Create a new KeyRemap. |
| */ |
| protected KeyRemap() { |
| } |
| |
| /** |
| * This method returns the character on the simulated keyboard |
| * which is (most likely) generated by typing the character c |
| * on the actual keyboard. For greater accuracy, use the remap |
| * method which takes a KeyEvent, since it can take modifier |
| * keys into account. |
| * @arg c a character on the actual keyboard |
| * @return the character on the simulated keyboard which would |
| * result from the key combination which produced the |
| * given character on the actual keyboard |
| */ |
| /*public*/ char remap(char c) { |
| |
| return c; |
| } |
| |
| /** |
| * Return the character on the simulated keyboard |
| * which keyEvent generates. |
| * @arg keyEvent a key event from the actual keyboard |
| * @return the character on the simulated keyboard generated by |
| * keyEvent |
| */ |
| /*public*/ char remap(KeyEvent keyEvent) { |
| |
| return remap(keyEvent.getKeyChar()); |
| } |
| |
| private static final KeyRemap IDENTITY = new KeyRemap(); |
| private static final KeyRemap ARABIC_TRANSLITERATION = new ArabicTransliteration(); |
| private static final KeyRemap HEBREW_TRANSLITERATION = new HebrewTransliteration(); |
| private static final KeyRemap ISRAEL_NIKUD = new IsraelNikudKeyboard(); |
| private static final KeyRemap THAI = new ThaiKeyRemap(); |
| |
| /** |
| * Return a KeyRemap which maps every character to itself. |
| */ |
| public static KeyRemap getIdentityRemap() { |
| |
| return IDENTITY; |
| } |
| |
| /** |
| * Return a KeyRemap which maps keys to |
| * characters in the Arabic alphabet, using a simple transliteration. |
| */ |
| public static KeyRemap getArabicTransliteration() { |
| |
| return ARABIC_TRANSLITERATION; |
| } |
| |
| /** |
| * Return a KeyRemap which maps keys to |
| * characters in the Hebrew alphabet, using a simple transliteration. |
| */ |
| public static KeyRemap getHebrewTransliteration() { |
| |
| return HEBREW_TRANSLITERATION; |
| } |
| |
| /** |
| * Return a KeyRemap which emulates a standard Hebrew keyboard. |
| */ |
| public static KeyRemap getIsraelNikud() { |
| |
| return ISRAEL_NIKUD; |
| } |
| |
| /** |
| * Return a KeyRemap which emulates a Thai Ketmanee keyboard. |
| */ |
| public static KeyRemap getThaiKetmanee() { |
| |
| return THAI; |
| } |
| } |