code: function(dict) {
  			// copy all other attributes to this.data.xxx
  			for (var name in dict) {
  				if (NODE_ATTR_MAP[name]) {
  					// node.NAME = dict.NAME
  					this[name] = dict[name];
  				} else if (name === "data") {
  					// node.data += dict.data
  					$.extend(this.data, dict.data);
  				} else if (
  					!$.isFunction(dict[name]) &&
  					!NONE_NODE_DATA_MAP[name]
  				) {
  					// node.data.NAME = dict.NAME
  					this.data[name] = dict[name];
  				}
  			}
  			if (dict.children) {
  				// recursively set children and render
  				this.removeChildren();
  				this.addChildren(dict.children);
  			}
  			this.renderTitle();
  			/*
  			var children = dict.children;
  			if(children === undefined){
  				this.data = $.extend(this.data, dict);
  				this.render();
  				return;
  			}
  			dict = $.extend({}, dict);
  			dict.children = undefined;
  			this.data = $.extend(this.data, dict);
  			this.removeChildren();
  			this.addChild(children);
  			*/
  		}
docs: TODO: focus() 
  Update node data. If dict contains 'children', then also replace
  the hole sub tree.
  @param {NodeData} dict
  
  @see FancytreeNode#addChildren
  @see FancytreeNode#applyPatch