Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
parent
bd2fa2bef5
commit
33fe34917c
88
js/ui/mxgraph/src/js/io/mxDefaultKeyHandlerCodec.js
Normal file
88
js/ui/mxgraph/src/js/io/mxDefaultKeyHandlerCodec.js
Normal file
|
@ -0,0 +1,88 @@
|
|||
/**
|
||||
* Copyright (c) 2006-2015, JGraph Ltd
|
||||
* Copyright (c) 2006-2015, Gaudenz Alder
|
||||
*/
|
||||
mxCodecRegistry.register(function()
|
||||
{
|
||||
/**
|
||||
* Class: mxDefaultKeyHandlerCodec
|
||||
*
|
||||
* Custom codec for configuring <mxDefaultKeyHandler>s. This class is created
|
||||
* and registered dynamically at load time and used implicitely via
|
||||
* <mxCodec> and the <mxCodecRegistry>. This codec only reads configuration
|
||||
* data for existing key handlers, it does not encode or create key handlers.
|
||||
*/
|
||||
var codec = new mxObjectCodec(new mxDefaultKeyHandler());
|
||||
|
||||
/**
|
||||
* Function: encode
|
||||
*
|
||||
* Returns null.
|
||||
*/
|
||||
codec.encode = function(enc, obj)
|
||||
{
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Function: decode
|
||||
*
|
||||
* Reads a sequence of the following child nodes
|
||||
* and attributes:
|
||||
*
|
||||
* Child Nodes:
|
||||
*
|
||||
* add - Binds a keystroke to an actionname.
|
||||
*
|
||||
* Attributes:
|
||||
*
|
||||
* as - Keycode.
|
||||
* action - Actionname to execute in editor.
|
||||
* control - Optional boolean indicating if
|
||||
* the control key must be pressed.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* (code)
|
||||
* <mxDefaultKeyHandler as="keyHandler">
|
||||
* <add as="88" control="true" action="cut"/>
|
||||
* <add as="67" control="true" action="copy"/>
|
||||
* <add as="86" control="true" action="paste"/>
|
||||
* </mxDefaultKeyHandler>
|
||||
* (end)
|
||||
*
|
||||
* The keycodes are for the x, c and v keys.
|
||||
*
|
||||
* See also: <mxDefaultKeyHandler.bindAction>,
|
||||
* http://www.js-examples.com/page/tutorials__key_codes.html
|
||||
*/
|
||||
codec.decode = function(dec, node, into)
|
||||
{
|
||||
if (into != null)
|
||||
{
|
||||
var editor = into.editor;
|
||||
node = node.firstChild;
|
||||
|
||||
while (node != null)
|
||||
{
|
||||
if (!this.processInclude(dec, node, into) &&
|
||||
node.nodeName == 'add')
|
||||
{
|
||||
var as = node.getAttribute('as');
|
||||
var action = node.getAttribute('action');
|
||||
var control = node.getAttribute('control');
|
||||
|
||||
into.bindAction(as, action, control);
|
||||
}
|
||||
|
||||
node = node.nextSibling;
|
||||
}
|
||||
}
|
||||
|
||||
return into;
|
||||
};
|
||||
|
||||
// Returns the codec into the registry
|
||||
return codec;
|
||||
|
||||
}());
|
Loading…
Reference in New Issue
Block a user