Sha256: 0a81b1cd0b81be6cd73a94b3b74da44b1aa022f9f197f9681e435a4ba6b16104

Contents?: true

Size: 1.72 KB

Versions: 3

Compression:

Stored size: 1.72 KB

Contents

// ========================================================================
// 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']
};

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sproutcore-0.9.11 frameworks/sproutcore/foundation/node_descriptor.js
sproutcore-0.9.12 frameworks/sproutcore/foundation/node_descriptor.js
sproutcore-0.9.13 frameworks/sproutcore/foundation/node_descriptor.js