Have questions? Stuck? Please check our FAQ for some common questions and answers.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

KeyService

KeyService is an Angular Factory in the Util module with the name keys.js. It provides an API to bind key presses to functions. To use these functions, see the documentation on injecting Angular services.

NameSummary
bindQhsBinds the QuickHelpService to the KeyService.
installOnInstalls the key listener on a d3 selection of an element and sets up global key bindings.
keyBindingsGet or set keybindings for a view.
unbindKeysUnbind keybindings for a view.
gestureNotesGet or set notes about other view gestures besides keybindings.
enableKeysEnable or disable keybindings.

Function Descriptions

bindQhs

Binds the QuickHelpService to the KeyService. This is called for you when onos.js runs, so you won't have to call this yourself.

Example UsageArgumentsReturn Value
ks.bindQhs(qhs);qhs - the injected QuickHelpService from the setup onos.js creatednone

installOn

Installs the key listener on a d3 selection of an element and sets up global keybindings. This is called for you when onos.js runs, so you won't have to call this yourself.

Example UsageArgumentsReturn Value
ks.installOn(elem);elem - d3 selection of the 'body' element from onos.jsnone

keyBindings

Get or set keybindings for a view. 

Example UsageArgumentsReturn Value
ks.keyBindings(x);

This function is getter / setter.

x -

  • undefined
  • object with keybindings (see below)
  • function reference (see below)

if x is undefined, returns an object containing 4 properties

globalKeys: array of strings representing the globally bound keys

maskedKeys: array of strings representing keys the view can't use

viewKeys: array of strings representing the view bound keys

viewFunction: boolean of whether the view has a general key handler

if x is defined, no return value

There are two options for setting up keybindings – giving an object with key mappings or a function reference for a general key handler.

Key Mappings

The general format for setting key mappings is the name of the key as the object property name, and an array as the object property value.

 var keys = {
	// the first array member is a function reference to be executed on keydown
	// the second array member is a string 
	A: [aFunction, 'Description for aFunction'],
	B: [bFunction, 'Description for bFunction'],
 
	leftArrow: [leftFunction, 'Description for leftFunction'],
	alt: [altFunction, 'Description for altFunction'],
};
ks.keyBindings(keys);       // bind the keys

The descriptions end up in the QuickHelp panel to give a helpful hint to the user as to what the button does.

The object property must be the name of the key that you want the function to be executed on. In addition to all of the letter and function (e.g. F12) keys, you can have the following object property names for other keys:

'enter', 'shift', 'ctrl', 'alt', 'esc', 'space', 'leftArrow', 'upArrow', 'rightArrow', 'downArrow', 'cmdLeft', 'cmdRight', 'equals', 'comma', 'dash', 'dot', 'slash', 'backQuote', 'backSlash'

Function Reference

You can also provide a function reference that will be executed when any key is pressed. You can map key bindings and have a general function that will run on keydown by calling ks.keyBindings(x); twice – once with x as the key mappings and once with x as the function reference. If the key mapping is defined, that function will be called. If it's not defined, then the general function will be called instead.

unbindKeys

Unbind keybindings for a view.

gestureNotes

Get or set notes about other view gestures besides keybindings.

enableKeys

Enable or disable keybindings.

Global Keybindings

There a few reserved keys that are shared among all views.

KeyFunction
\ or /Show / hide quickhelp
escDismiss quickhelp, hide navigation, cancel selections *
TToggle theme

* You can still bind a function to the 'esc' key. Your function will be called after the quickhelp and navigation (the global functions) have been hidden.

 

 

 

 

  • No labels