| /** |
| * 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; |
| |
| }()); |