Esempio n. 1
0
  @Override
  public boolean handleKeyPress(int keyID, char keyChar) {
    if (!focused()) return false;

    if (keyID == Keyboard.KEY_BACK) {
      if (im.delete()) {
        preedit = im.getPreedit();
        backdowntime = System.currentTimeMillis();
        onTextChange(text());
        return true;
      }
      // im.delete()가 실패할 경우 상위 클래스 메소드 호출
    } else if (keyID == Keyboard.KEY_RETURN
        || keyID == Keyboard.KEY_ESCAPE
        || keyChar == 22) // Ctrl + V
    {
      if (im.reset()) {
        String input = super.text() + im.getCommited();
        if (isValid(input)) super.setText(input);
        preedit = "";
      }
      // 상위 클래스 메소드 호출
    } else if (keyID == im.getToggleKey()) {
      im.toggleMode();
      return true;
    } else if (isValid(Character.toString(keyChar))) {
      boolean shift =
          Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT);
      if (im.input(keyChar, shift)) super.setText(super.text() + im.getCommited());
      preedit = im.getPreedit();
      onTextChange(text());
      return true;
    }

    return super.handleKeyPress(keyID, keyChar);
  }