code: function mxDefaultKeyHandler(editor)
  {
  	if (editor != null)
  	{
  		this.editor = editor;
  		this.handler = new mxKeyHandler(editor.graph);
  		
  		// Extends the escape function of the internal key
  		// handle to hide the properties dialog and fire
  		// the escape event via the editor instance
  		var old = this.handler.escape;
  		
  		this.handler.escape = function(evt)
  		{
  			old.apply(this, arguments);
  			editor.hideProperties();
  			editor.fireEvent(new mxEventObject(mxEvent.ESCAPE, 'event', evt));
  		};
  	}
  }
docs: Copyright (c) 2006-2015, JGraph Ltd
  Copyright (c) 2006-2015, Gaudenz Alder
   
  Class: mxDefaultKeyHandler
  
  Binds keycodes to actionnames in an editor. This aggregates an internal
  <handler> and extends the implementation of <mxKeyHandler.escape> to not
  only cancel the editing, but also hide the properties dialog and fire an
  <mxEditor.escape> event via <editor>. An instance of this class is created
  by <mxEditor> and stored in <mxEditor.keyHandler>.
  
  Example:
  
  Bind the delete key to the delete action in an existing editor.
  
  (code)
  var keyHandler = new mxDefaultKeyHandler(editor);
  keyHandler.bindAction(46, 'delete');
  (end)
  
  Codec:
  
  This class uses the <mxDefaultKeyHandlerCodec> to read configuration
  data into an existing instance. See <mxDefaultKeyHandlerCodec> for a
  description of the configuration format.
  
  Keycodes:
  
  See <mxKeyHandler>.
  
  An <mxEvent.ESCAPE> event is fired via the editor if the escape key is
  pressed.
  
  Constructor: mxDefaultKeyHandler
  
  Constructs a new default key handler for the <mxEditor.graph> in the
  given <mxEditor>. (The editor may be null if a prototypical instance for
  a <mxDefaultKeyHandlerCodec> is created.)
  
  Parameters:
  
  editor - Reference to the enclosing <mxEditor>.