// ======================================================================== // SproutCore // copyright 2006-2008 Sprout Systems, Inc. // ======================================================================== require('Core') ; /** This object can generate HTML DOM elements from a hash-based description of the nodes. See the NodeDescriptor wiki page for complete docs. See https://wiki.sproutit.com/engineering/show/NodeDescriptor @deprecated */ SC.NodeDescriptor = { create: function(descriptor, opts) { if (!opts) opts = {} ; // collect info from descriptor var tag = opts.tag || descriptor.tag || 'div' ; var className = opts.cssClass || descriptor.cssClass ; var elementId = opts.id || descriptor.id ; var style = opts.style || descriptor.style ; var innerHTML = opts.innerHTML || descriptor.innerHTML ; if (!innerHTML) { var childNodes = opts.childNodes || descriptor.childNodes ; } // create element var ret = $(document.createElement(tag)) ; if (className) ret.className = className ; if (elementId) ret.id = elementId ; if (style) { for (var name in style) element.style[name.camelize()] = style[name]; } // apply extra attributes for(var attr in descriptor) { if (this.ignoredProperties.indexOf(attr) == -1) { ret.setAttribute(attr,descriptor[attr]) ; } } // build child nodes, if they exist. if (innerHTML) { ret.innerHTML = innerHTML ; } else if (childNodes) { var that = this ; childNodes.each(function(desc) { ret.appendChild(that.create(desc)) ; }) ; } return ret ; }, ignoredProperties: ['tag','cssClass','id','style','childNodes','innerHTML'] }