code: function(options) {
          var Constructor, newNode;
  
          options = options || {};
  
          if (!options.state) {
              options = { state: options };
          }
  
          if (options.state.children) {
              Constructor = this.constructor;
          } else {
              Constructor = this.editors[options.state.editor || 'Default'];
          }
  
          options.parent = this;
          newNode = new Constructor(options);
          this.children.push(newNode);
  
          if (options.focus) {
              // focus on blank control a beat after adding it
              setTimeout(function() { newNode.invalid(options); }, 750);
          }
  
          return newNode;
      }
docs: @summary Create a new node as per `state`.
  
  @param {object} [options={state:{}}] - May be one of:
  
  * an `options` object containing a `state` property
  * a `state` object (in which case there is no `options` object)
  
  In any case, resulting `state` object may be either...
  * A new subtree (has a `children` property):
  Add a new `FilterTree` node.
  * A new leaf (no `children` property): add a new `FilterLeaf` node:
  * If there is an `editor` property:
  Add leaf using `this.editors[state.editor]`.
  * Otherwise (including the case where `state` is undefined):
  Add leaf using `this.editors.Default`.
  
  @param {boolean} [options.focus=false] Call invalid() after inserting to focus on first blank control (if any).
  
  @returns {FilterNode} The new node.
  
  @memberOf FilterTree#