Commit 90a0020d authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Rendering of class hierarchy and mixins.

parent 35ce2c8f
Loading
Loading
Loading
Loading
+52 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ Ext.define('Docs.OverviewPanel', {
    renderClass: function(cls) {
        this.classTpl = this.classTpl || new Ext.XTemplate(
            '<div class="doc-overview-content">',
                '{hierarchy}',
                '{doc}',
                '<div class="members">',
                    '{members}',
@@ -77,10 +78,61 @@ Ext.define('Docs.OverviewPanel', {

        return this.classTpl.apply({
            doc: cls.doc,
            hierarchy: this.renderHierarchy(cls),
            members: this.renderMembers(cls)
        });
    },

    renderHierarchy: function(cls) {
        if (cls.superclasses.length === 0 && cls.allMixins.length === 0) {
            return "";
        }
        
        this.hierarchyTpl = this.hierarchyTpl || new Ext.XTemplate(
            '<pre class="subclasses">',
            '<tpl if="tree">',
                '<h4>Hierarchy</h4>',
                '{tree}',
            '</tpl>',
            '<tpl if="mixins.length &gt; 0">',
                '<h4>Mixins</h4>',
                '<tpl for="mixins">',
                    '<div class="mixin">{.}</div>',
                '</tpl>',
            '</tpl>',
            '</pre>'
        );

        return this.hierarchyTpl.apply({
            tree: cls.superclasses.length ? this.renderClassTree(cls.superclasses.concat(cls.name), true) : "",
            mixins: Ext.Array.map(cls.allMixins, this.renderLink, this)
        });
    },
    
    renderClassTree: function(superclasses, firstChild) {
        if (superclasses.length === 0) {
            return "";
        }
        
        this.classTreeTpl = this.classTreeTpl || new Ext.XTemplate(
            '<div class="subclass {firstChild}">',
              '{link}',
              '{subtree}',
            '</div>'
        );
        
        var name = superclasses[0];
        return this.classTreeTpl.apply({
            firstChild: firstChild ? 'first-child' : '',
            link: superclasses.length > 1 ? this.renderLink(name) : '<strong>'+name+'</strong>',
            subtree: this.renderClassTree(superclasses.slice(1))
        });
    },
    
    renderLink: function(className) {
        return Ext.String.format('<a href="#/api/{0}" rel="{0}" class="docClass">{0}</a>', className);
    },

    renderMembers: function(cls) {
        var typeTitles = {
            cfg: "Config options",
+844 B
Loading image diff...
+2 −2
Original line number Diff line number Diff line
@@ -680,10 +680,10 @@ pre, code, kbd, samp, tt {
      padding: 0 0 0 12px;
      margin-top: 3px; }
    .subclass {
      background: url(/images/elbow-end.gif) no-repeat -5px 0;
      background: url(../images/elbow-end.gif) no-repeat -5px 0;
      margin-top: 3px;
      padding: 0 0 0 12px;
      &.f {
      &.first-child {
        background: none;
        padding-left: 15px; } } } }