org.gjt.sp.jedit.gui

## Class InputHandler

- java.lang.Object
- - org.gjt.sp.jedit.input.AbstractInputHandler<EditAction>
  - - org.gjt.sp.jedit.gui.InputHandler

Direct Known Subclasses:
  DefaultInputHandler

    public abstract class InputHandler
    extends AbstractInputHandler<EditAction>

An input handler converts the user's key strokes into concrete actions. It also takes care of macro recording and action repetition.

This class provides all the necessary support code for an input handler, but doesn't actually do any key binding logic. It is up to the implementations of this class to do so.

See Also:
  `DefaultInputHandler`

### Field Summary

Fields
`protected View` `view`

### Fields inherited from class org.gjt.sp.jedit.input.AbstractInputHandler

`bindings, currentBindings, keyEventInterceptor, lastAction, lastActionCount, PREFIX_STR, readNextChar, REPEAT_COUNT_THRESHOLD, repeatCount, shortcutOn`

### Constructor Summary

Constructors
`protected` `InputHandler(View view)` Creates a new input handler.

### Method Summary

Methods
`EditAction` `getLastAction()` Returns the last executed action.
`int` `getRepeatCount()` Returns the number of times the next action will be repeated.
`boolean` `handleKey(KeyEventTranslator.Key keyStroke)` Handles a keystroke.
`void` `invokeAction(EditAction action)` Invokes the specified action, repeating and recording it as necessary.
`void` `invokeAction(java.lang.String action)` Invokes the specified action, repeating and recording it as necessary.
`void` `invokeLastAction()`
`protected void` `invokeReadNextChar(char ch)`
`void` `processKeyEvent(java.awt.event.KeyEvent evt, int from, boolean global)` Forwards key events directly to the input handler.
`void` `readNextChar(java.lang.String msg, java.lang.String code)` Invokes the specified BeanShell code, replacing __char__ in the code with the next input character.
`void` `setRepeatCount(int repeatCount)` Sets the number of times the next action will be repeated.
`protected void` `userInput(char ch)`

### Methods inherited from class org.gjt.sp.jedit.input.AbstractInputHandler

`addKeyBinding, addKeyBinding, addKeyBinding, getKeyBinding, getKeyEventInterceptor, getLastActionCount, handleKey, isPrefixActive, processKeyEventKeyStrokeHandling, removeAllKeyBindings, removeKeyBinding, resetLastActionCount, sendShortcutPrefixOff, setBindings, setCurrentBindings, setKeyEventInterceptor, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### view

    protected final View view

### Constructor Detail

#### InputHandler

    protected InputHandler(View view)

Creates a new input handler.

Parameters:
  `view` - The view

### Method Detail

#### handleKey

    public final boolean handleKey(KeyEventTranslator.Key keyStroke)

Handles a keystroke.

Parameters:
  `keyStroke` - The key stroke.
Returns:
  true if the input could be handled.
Since:
  jEdit 4.2pre5

#### processKeyEvent

    public void processKeyEvent(java.awt.event.KeyEvent evt,
                       int from,
                       boolean global)

Forwards key events directly to the input handler. This is slightly faster than using a KeyListener because some Swing overhead is avoided.

Specified by:
  `processKeyEvent` in class `AbstractInputHandler<EditAction>`
Parameters:
  `evt` - the keyboard event
  `from` - the source, it can be `View.VIEW`, `View.ACTION_BAR` or `View.TEXT_AREA`
  `global` - tell if the event comes from the DefaultKeyboardFocusManager or not
Since:
  4.3pre7

#### getRepeatCount

    public int getRepeatCount()

Returns the number of times the next action will be repeated.

#### setRepeatCount

    public void setRepeatCount(int repeatCount)

Sets the number of times the next action will be repeated.

Parameters:
  `repeatCount` - The repeat count

#### getLastAction

    public EditAction getLastAction()

Returns the last executed action.

Since:
  jEdit 2.5pre5

#### readNextChar

    public void readNextChar(java.lang.String msg,
                    java.lang.String code)

Invokes the specified BeanShell code, replacing __char__ in the code with the next input character.

Parameters:
  `msg` - The prompt to display in the status bar
  `code` - The code
Since:
  jEdit 3.2pre2

#### invokeAction

    public void invokeAction(java.lang.String action)

Invokes the specified action, repeating and recording it as necessary.

Specified by:
  `invokeAction` in class `AbstractInputHandler<EditAction>`
Parameters:
  `action` - The action
Since:
  jEdit 4.2pre1

#### invokeAction

    public void invokeAction(EditAction action)

Invokes the specified action, repeating and recording it as necessary.

Specified by:
  `invokeAction` in class `AbstractInputHandler<EditAction>`
Parameters:
  `action` - The action

#### invokeLastAction

    public void invokeLastAction()

#### userInput

    protected void userInput(char ch)

#### invokeReadNextChar

    protected void invokeReadNextChar(char ch)