3855N/A * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. 0N/A * Redistribution and use in source and binary forms, with or without 0N/A * modification, are permitted provided that the following conditions 0N/A * - Redistributions of source code must retain the above copyright 0N/A * notice, this list of conditions and the following disclaimer. 0N/A * - Redistributions in binary form must reproduce the above copyright 0N/A * notice, this list of conditions and the following disclaimer in the 0N/A * documentation and/or other materials provided with the distribution. 2362N/A * - Neither the name of Oracle nor the names of its 0N/A * contributors may be used to endorse or promote products derived 0N/A * from this software without specific prior written permission. 0N/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 0N/A * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 0N/A * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 0N/A * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 0N/A * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 0N/A * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 0N/A * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 0N/A * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 0N/A * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 0N/A * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 0N/A * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 4378N/A * This source code is provided to illustrate the usage of a given feature 4378N/A * or technique and has been deliberately simplified. Additional steps 4378N/A * required for a production-quality application, such as security checks, 4378N/A * input validation and proper error handling, might not be present in 0N/A * The Code Point Input Method is a simple input method that allows Unicode 0N/A * characters to be entered using their code point or code unit values. See the 0N/A * @author Brian Beck 0N/A * This is the input method's main routine. The composed text is stored 0N/A // This input method handles KeyEvent only. 0N/A // If we are not in composition mode, pass through 0N/A // If we are not in composition mode, wait a back slash 0N/A // If the type character is not a back slash, pass through 3855N/A case ' ':
// Exit from composition mode 0N/A }
else {
// KeyEvent.KEY_RELEASED 0N/A // If we are not in composition mode, pass through 0N/A case 2:
// \\u or \\U 0N/A case 3:
// \\ux or \\Ux 0N/A case 4:
// \\uxx or \\Uxx 0N/A case 5:
// \\uxxx or \\Uxxx 0N/A case 6:
// \\uxxxx or \\Uxxxx 0N/A // Only SPECIAL_ESCAPE format uses this state. 0N/A // Since the second "\\u" of SURROGATE_PAIR format is inserted 0N/A // automatically, users don't have to type these keys. 0N/A case 8:
// \\uxxxx\\u 0N/A case 9:
// \\uxxxx\\ux 0N/A case 10:
// \\uxxxx\\uxx 0N/A case 11:
// \\uxxxx\\uxxx 0N/A if (c ==
'u' || c ==
'U') {
0N/A * Send the composed text to the client. 0N/A * Send the committed text to the client. 0N/A * Move the insertion point one position to the left in the composed text. 0N/A * Do not let the caret move to the left of the "\\u" or "\\U". 0N/A * Move the insertion point one position to the right in the composed text. 0N/A * Delete the character preceding the insertion point in the composed text. 0N/A * If the insertion point is not at the end of the composed text and the 0N/A * preceding text is "\\u" or "\\U", ring the bell. 0N/A // Do not allow deletion of the leading "\\u" or "\\U" if there 0N/A // are other digits in the composed text. 0N/A // Do not allow deletion of the second "\\u" if there are other 0N/A // digits in the composed text. 0N/A * Delete the character following the insertion point in the composed text. 0N/A * If the insertion point is at the end of the composed text, ring the bell. 0N/A // not supported yet 0N/A // not supported yet 0N/A * The Code Point Input Method supports all locales.