@maxgraph/core
    Preparing search index...

    Class KeyHandler

    Event handler that listens to keystroke events. This is not a singleton, however, it is normally only required once if the target is the document element (default).

    This handler installs a key event listener in the topmost DOM node and processes all events that originate from descendants of AbstractGraph.container or from the topmost DOM node. The latter means that all unhandled keystrokes are handled by this object regardless of the focused state of the graph.

    Example:

    The following example creates a key handler that listens to the delete key (46) and deletes the selection cells if the graph is enabled.

    const keyHandler = new KeyHandler(graph);
    keyHandler.bindKey(46, (evt) => {
    if (graph.isEnabled()) {
    graph.removeCells();
    }
    });

    Keycodes:

    See http://tinyurl.com/yp8jgl or http://tinyurl.com/229yqw for a list of keycodes or install a key event listener into the document element and print the key codes of the respective events to the console.

    To support the Command key and the Control key on the Mac, the following code can be used.

    keyHandler.getFunction = (evt) => {
    if (evt) {
    return (InternalEvent.isControlDown(evt) || (Client.IS_MAC && evt.metaKey)) ? this.controlKeys[evt.keyCode] : this.normalKeys[evt.keyCode];
    }
    return null;
    };
    Index

    Constructors

    • Constructs an event handler that executes functions bound to specific keystrokes.

      Parameters

      • graph: AbstractGraph

        Reference to the associated AbstractGraph.

      • target: null | Element = null

        Optional reference to the event target. If null, the document element is used as the event target, that is, the object where the key event listener is installed.

      Returns KeyHandler

    Properties

    controlKeys: { [key: number]: Function } = {}

    Maps from keycodes to functions for pressed control keys.

    controlShiftKeys: { [key: number]: Function } = {}

    Maps from keycodes to functions for pressed control and shift keys.

    enabled: boolean = true

    Specifies if events are handled. Default is true.

    graph: null | AbstractGraph = null

    Reference to the AbstractGraph associated with this handler.

    keydownHandler: null | ((event: KeyboardEvent) => void) = null
    normalKeys: { [key: number]: Function } = {}

    Maps from keycodes to functions for non-pressed control keys.

    shiftKeys: { [key: number]: Function } = {}

    Maps from keycodes to functions for pressed shift keys.

    target: null | Element = null

    Reference to the target DOM, that is, the DOM node where the key event listeners are installed.

    Methods

    • Binds the specified keycode to the given function. This binding is used if the control key is pressed.

      Parameters

      • code: number

        Integer that specifies the keycode.

      • funct: Function

        JavaScript function that takes the key event as an argument.

      Returns void

    • Binds the specified keycode to the given function. This binding is used if the control and shift key are pressed.

      Parameters

      • code: number

        Integer that specifies the keycode.

      • funct: Function

        JavaScript function that takes the key event as an argument.

      Returns void

    • Binds the specified keycode to the given function. This binding is used if the control key is not pressed.

      Parameters

      • code: number

        Integer that specifies the keycode.

      • funct: Function

        JavaScript function that takes the key event as an argument.

      Returns void

    • Binds the specified keycode to the given function. This binding is used if the shift key is pressed.

      Parameters

      • code: number

        Integer that specifies the keycode.

      • funct: Function

        JavaScript function that takes the key event as an argument.

      Returns void

    • Hook to process ESCAPE keystrokes. This implementation invokes AbstractGraph.stopEditing to cancel the current editing, connecting and/or other ongoing modifications.

      Parameters

      • evt: KeyboardEvent

        Key event that represents the keystroke. Possible keycode in this case is 27 (ESCAPE).

      Returns void

    • Returns the function associated with the given key event or null if no function is associated with the given event.

      Parameters

      • evt: KeyboardEvent

        Key event whose associated function should be returned.

      Returns null | Function

    • Returns true if the control key is pressed. This uses Event#isControlDown.

      Parameters

      • evt: KeyboardEvent

        Key event whose control key pressed state should be returned.

      Returns boolean

    • Returns true if the given event should be handled. isEventIgnored is called later if the event is not an escape keystroke, in which case escape is called.

      This implementation returns true if AbstractGraph.isEnabled returns true for both, this handler and graph, if the event is not consumed and if isGraphEvent returns true.

      Parameters

      • evt: KeyboardEvent

        Key event that represents the keystroke.

      Returns undefined | boolean

    • Returns true if the event should be processed by this handler. That is, if the event source is either the target, one of its direct children a descendant of the AbstractGraph.container, or the CellEditorHandler plugin of the graph.

      Parameters

      • evt: KeyboardEvent

        Key event that represents the keystroke.

      Returns boolean

    • Handles the event by invoking the function bound to the respective keystroke if isEnabledForEvent returns true for the given event and if isEventIgnored returns false, except for escape for which isEventIgnored is not invoked.

      Parameters

      • evt: KeyboardEvent

        Key event that represents the keystroke.

      Returns void

    • Destroys the handler and all its references into the DOM. This does normally not need to be called, it is called automatically when the window unloads (in IE).

      Returns void

    • Enables or disables event handling by updating .

      Parameters

      • enabled: boolean

        Boolean that specifies the new enabled state.

      Returns void