org.kwis.msp.lcdui
Class InputMethodHandler

java.lang.Object
  |
  +--org.kwis.msp.lcdui.InputMethodHandler

public class InputMethodHandler
extends Object

InputMethodHandler는 사용자 키 입력를 오토마타에게 전달하는 일을 담당합니다.

사용자의 키 입력을 처리하는 메소드는 #notifyKeyInput(int keyCode)입니다. 따라서 이 메소드를 호출하여 현재 입력된 키 값을 넘겨줘야 합니다. 또한 키 입력에 따라 처리된 문자를 전달받기 위해서 반드시 구현된 특정 InputMethodListener를 지정해야 합니다. 지정된 InputMethodListener가 존재하지 않은 경우 notifyKeyInput(int, int)에서 false를 리턴하고 아무런 일을 하지 않습니다. InputMethodListenersetInputMethodListener(org.kwis.msp.lcdui.InputMethodListener)를 통해 지정할 수 있습니다.


Constructor Summary
InputMethodHandler(int constraint)
          주어진 입력제한자로 InputMethodHandler의 인스턴스를 생성합니다.
 
Method Summary
 void changeCurrentModeToNext()
          현재 지정된 constraint에 따라 현재 입력모드를 기준으로 다음 입력 모드를 계산하여 현재 입력모드를 계산된 다음 입력모드로 변경합니다.
 int getCurrentInputMode()
          현재의 입력모드를 얻어옵니다.
 int getCurrentMode()
          현재 입력모드를 얻어옵니다.
 String getCurrentModeCode()
          현재 입력모드에 해당하는 표준언어코드를 얻어옵니다.
 void hideSymbolCard()
          현재 화면에서 CandidateWindow를 제거합니다.
 boolean notifyKeyInput(int keyCode, int type)
          InputMethodHandler에서 키입력을 처리해야하는 경우 호출되는 메소드입니다.
 boolean setCurrentMode(int mode)
          주어진 모드값으로 현재 입력모드를 지정합니다.
 void setInputMethodListener(InputMethodListener imListener)
          InputMethodHandler에서 키 입력에 따라 처리한 문자를 전달할 InputMethodListener를 지정합니다.
 void setSymbolPosition(int x, int y, int w, int h)
          InputMethodHandler의 현재 입력 모드가 IM_SYMBOL 경우 화면에 특수문자카드를 출력할 위치와 넓이, 높이를 설정합니다.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InputMethodHandler

public InputMethodHandler(int constraint)
주어진 입력제한자로 InputMethodHandler의 인스턴스를 생성합니다. 입력제한자는 TextComponent 서 정의한 값을 받게 되고, 입력 제한자에 따라 현재 오토마타에서 지원하는 모드들 중 입력 가능한 모드가 결정됩니다.
Parameters:
constraint - 입력 제한자
Method Detail

getCurrentModeCode

public String getCurrentModeCode()
현재 입력모드에 해당하는 표준언어코드를 얻어옵니다. 표준언어코드는 ISO 639에서 지정한 코드입니다 언어가 대소문자를 구분하는 경우 각 코드에 "/S"나 "/L" 이 추가됩니다. 예를들어 영문자의 표준언어코드는 "EN"이고, 영소문자는 "EN/S"의 코드값을 가지게 됩니다.
Returns:
입력모드에 해당하는 언어코드.

notifyKeyInput

public final boolean notifyKeyInput(int keyCode,
                                    int type)
InputMethodHandler에서 키입력을 처리해야하는 경우 호출되는 메소드입니다.

현재 문자 입력 모드에 따라 입력 키값에 해당하는 문자를 처리하고, setInputMethodListener(org.kwis.msp.lcdui.InputMethodListener)메소드를 통해 등록된 InputMethodListenernotifyTextChanged를 호출합니다.

Parameters:
keyCode - 입력한 키값
type - 키의 타입(EventQueue.KEY_PRESSED, EventQueue.KEY_RELEASED)
Returns:
키 입력에 따른 문자 처리가 이루어진 경우 true, 그 외의 경우false 리턴.

getCurrentInputMode

public int getCurrentInputMode()
현재의 입력모드를 얻어옵니다.
Returns:
현재 입력 모드
See Also:
#setInputMode(int inputMode)

setInputMethodListener

public void setInputMethodListener(InputMethodListener imListener)
InputMethodHandler에서 키 입력에 따라 처리한 문자를 전달할 InputMethodListener를 지정합니다. 여기서 지정된 InputMethodListenernotifyTextChanged를 호출하여 입력처리된 문자를 전달하게 됩니다. 따라서 키 입력에 따라 처리된 문자를 전달받기 위해서 반드시 특정 InputMethodListener를 지정해야합니다.

null값을 지정하는 경우 현재 등록된 InputMethodListener를 제거합니다.

Parameters:
imListener - InputMethodListener 혹은 null

changeCurrentModeToNext

public void changeCurrentModeToNext()
현재 지정된 constraint에 따라 현재 입력모드를 기준으로 다음 입력 모드를 계산하여 현재 입력모드를 계산된 다음 입력모드로 변경합니다.

getCurrentMode

public int getCurrentMode()
현재 입력모드를 얻어옵니다.

setCurrentMode

public boolean setCurrentMode(int mode)
주어진 모드값으로 현재 입력모드를 지정합니다. 주어진 모드값이 지원하지 않는 모드인 경우 IllegalArgumentException이 발생합니다.
Parameters:
mode - 새로지정할 입력모드값

hideSymbolCard

public void hideSymbolCard()
현재 화면에서 CandidateWindow를 제거합니다.

setSymbolPosition

public void setSymbolPosition(int x,
                              int y,
                              int w,
                              int h)
InputMethodHandler의 현재 입력 모드가 IM_SYMBOL 경우 화면에 특수문자카드를 출력할 위치와 넓이, 높이를 설정합니다. 이때 x,y,w,h값은 '0'이하 값이 될 수 없고, '0'이하 값이 지정된 경우 IllegalArgumentException이 발생합니다.
Parameters:
x - x좌표값.
y - y좌표값.
w - width값
h - height값.
Throws:
IllegalArgumentException - w,h값이 '0'이하값인 경우


AromaSoft Corp. Proprietary and Confidential

(C)opyright 2003 AromaSoft Corp. All right reserved.
Contact : contact@aromasoft.com