code: function f() {
        if (opt_parentConstructor &&
            f.prototype.__proto__ != opt_parentConstructor.prototype) {
          throw new Error(
              className + ' prototye\'s __proto__ field is messed up. ' +
              'It MUST be the prototype of ' + opt_parentConstructor.tagName);
        }
  
        var el;
        if (tagNS === undefined)
          el = tr.doc.createElement(tagName);
        else
          el = tr.doc.createElementNS(tagNS, tagName);
        f.decorate.call(this, el, arguments);
        return el;
      }
docs: Creates a new UI element constructor.
  Arguments passed to the constuctor are provided to the decorate method.
  You will need to call the parent elements decorate method from within
  your decorate method and pass any required parameters.
  @constructor