Fix #5657 - Summary page for documentation
authorAlan Knowles <alan@roojs.com>
Sun, 13 Jan 2019 03:55:39 +0000 (11:55 +0800)
committerAlan Knowles <alan@roojs.com>
Sun, 13 Jan 2019 03:55:39 +0000 (11:55 +0800)
docs/Roo.docs.bjs
docs/Roo.docs.init.js
docs/Roo.docs.js
docs/summary.txt [new file with mode: 0644]

index 282156e..5549744 100644 (file)
@@ -2,7 +2,7 @@
  "name" : "Roo.docs",
  "parent" : "",
  "title" : "",
- "path" : "/home/alan/gitlive/roojs1/docs2/Roo.docs.bjs",
+ "path" : "/home/alan/gitlive/roojs1/docs/Roo.docs.bjs",
  "permname" : "",
  "modOrder" : "001",
  "strings" : {
   "ae635f08107a69569e636835f24e6f6f" : " extends ",
   "87f9f735a1d36793ceaecd4e47124b63" : "Events",
   "d41d8cd98f00b204e9800998ecf8427e" : " ",
+  "9b34238e8113db140b452beec500024b" : "Roo JS Documentation",
   "50f33d14f129e4548c1c270fd6725a78" : "Configuration options",
   "e64b94523532dbac62df6795a5153f04" : "doc-desc",
   "3673e725413179fe76f341ed908a5c36" : "Defined in: ",
   "d2b697ad8e989a6c4592987f22f5bbfc" : "doc-comments",
   "f361257612a512f9be2fdc2abfb25aef" : "<small>Defined by</small>",
   "494a64a432ff6a121e4ab9003c7a0df3" : "parentcls",
-  "9bd81329febf6efe22788e03ddeaf0af" : " Class ",
   "f561aaf6ef0bf14d4208bb46a4ccb3ad" : "xxx",
+  "9bd81329febf6efe22788e03ddeaf0af" : " Class ",
   "a1d108496af420635536a4e29e87d42b" : "Constructor, Static and Public Methods"
  },
  "items" : [
          "String style" : "position:fixed;top:0;z-Index:1000;",
          "items" : [
           {
+           "listeners" : {
+            "click" : "function (e)\n{\n    document.location.reload();\n}"
+           },
+           "string href" : "#",
            "String cls" : "logo",
-           "Boolean preventDefault" : false,
+           "Boolean preventDefault" : true,
            "xtype" : "Link",
-           "$ xns" : "Roo.bootstrap",
-           "$ string href" : "baseURL +'/'"
+           "$ xns" : "Roo.bootstrap"
           }
          ]
         }
@@ -85,8 +89,8 @@
       "render" : "function (_self)\n{\n    return;\n    \n    _this.navHeaderBar = this;\n    \n    this.el.addClass(language); \n    \n    var body = Roo.select('body', true).first();\n    \n    var mark = {\n        tag: \"div\",\n        cls:\"x-dlg-mask\"\n    };\n    \n    this.mask = Roo.DomHelper.append(body, mark, true);\n    \n    var size = body.getSize();\n    this.mask.setSize(size.width, size.height);\n    \n    this.mask.setStyle('z-index', '1029');\n    \n    this.mask.enableDisplayMode(\"block\");\n    this.mask.hide();\n    \n    this.mask.on('click', function(){\n        \n        this.el.select('.navbar-collapse',true).removeClass('in'); \n        this.mask.hide();\n        \n    }, this);\n    \n    \n    var maxHeight = Roo.lib.Dom.getViewHeight() - this.el.select('.navbar-header', true).first().getHeight();\n    \n    this.el.select('.navbar-collapse', true).first().setStyle('max-height', maxHeight);\n    \n}"
      },
      "$ String brand_href" : "baseURL + '/'",
-     "String cls" : "mobile-header-menu",
      "String position" : "fixed-top",
+     "String cls" : "mobile-header-menu",
      "bool autohide" : true,
      "xtype" : "NavHeaderbar",
      "Boolean inverse" : false,
      "String brand" : " ",
      "String style" : ""
     },
+    {
+     "listeners" : {
+      "render" : "function (_self)\n{\n       _this.introContainer = this;\n}"
+     },
+     "String cls" : "general-content-body",
+     "xtype" : "Container",
+     "$ xns" : "Roo.bootstrap",
+     "items" : [
+      {
+       "xtype" : "Header",
+       "Number level" : 1,
+       "$ xns" : "Roo.bootstrap",
+       "String html" : "Roo JS Documentation"
+      },
+      {
+       "listeners" : {
+        "render" : "function (_self)\n{\n    _this.introBody = this;\n}"
+       },
+       "xtype" : "Container",
+       "$ xns" : "Roo.bootstrap"
+      }
+     ]
+    },
     {
      "listeners" : {
       "render" : "function (_self)\n{\n    _this.doc_body_content = this;\n}"
            "items" : [
             {
              "xtype" : "Header",
-             "$ xns" : "Roo.bootstrap",
              "Number level" : 4,
+             "$ xns" : "Roo.bootstrap",
              "String html" : " Class ",
              "items" : [
               {
             },
             {
              "xtype" : "Header",
-             "Number level" : 5,
              "$ xns" : "Roo.bootstrap",
+             "Number level" : 5,
              "String html" : "Defined in: ",
              "items" : [
               {
                 "click" : "function (e)\n{\n    \n    Roo.log([\"click\", this]);\n    if (this.el.dom.innerHTML.length > 0) {\n        Roo.docs.init.loadSource();\n    }\n}"
                },
                "String cls" : "doc-source",
-               "String href" : "#",
                "Boolean preventDefault" : true,
+               "String href" : "#",
                "xtype" : "Link",
                "$ xns" : "Roo.bootstrap",
                "String html" : "Defined in: "
         "render" : "function (_self)\n{\n    _this.configTableContainer = this;\n}"
        },
        "String header" : "Configuration options",
-       "String cls" : "doc-table-container",
        "Boolean expanded" : true,
+       "String cls" : "doc-table-container",
        "xtype" : "Container",
        "String panel" : "info",
        "$ xns" : "Roo.bootstrap",
          "items" : [
           {
            "String header" : "",
-           "String dataIndex" : "name",
            "Number md" : 11,
+           "String dataIndex" : "name",
            "$ Function renderer" : "function(v,x,r) { \n\n    return Roo.docs.template.config(r.json);\n\n\t\t\t\n}",
            "xtype" : "ColumnModel",
            "$ xns" : "Roo.grid",
           },
           {
            "String header" : "<small>Defined by</small>",
-           "String dataIndex" : "memberOf",
            "Number md" : 1,
+           "String dataIndex" : "memberOf",
            "$ Function renderer" : "function(v,x,r) { \n if (r.json.memberOf  == Roo.docs.init.currentClass) {\n            return '';\n        }\n\n\t\treturn \t'<small><a href=\"#' + r.json.memberOf + '\">' + r.json.memberOf + '</a></small>';\n\t\t\t\n}",
            "xtype" : "ColumnModel",
            "$ xns" : "Roo.grid",
             },
             {
              "xtype" : "ArrayReader",
-             "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]",
              "$ xns" : "Roo.data",
+             "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]",
              "* prop" : "reader"
             }
            ]
         "render" : "function (_self)\n{\n    _this.methodsTableContainer = this;\n}"
        },
        "String header" : "Constructor, Static and Public Methods",
-       "String cls" : "doc-table-container",
        "Boolean expanded" : false,
+       "String cls" : "doc-table-container",
        "String panel" : "info",
        "xtype" : "Container",
        "$ xns" : "Roo.bootstrap",
          "items" : [
           {
            "String header" : " ",
-           "Number md" : 11,
            "String dataIndex" : "name",
+           "Number md" : 11,
            "$ Function renderer" : "function(v,x,r) { \n\n    return Roo.docs.template.method(r.json);\n\t\t \n\t\t\t\n}",
            "xtype" : "ColumnModel",
            "$ xns" : "Roo.grid",
           },
           {
            "String header" : "<small>Defined by</small>",
-           "Number md" : 1,
            "String dataIndex" : "memberOf",
+           "Number md" : 1,
            "$ Function renderer" : "function(v,x,r) { \n\n if (r.json.memberOf  == Roo.docs.init.currentClass) {\n            return '';\n        }\n\t\treturn \t'<small><a href=\"#' + r.json.memberOf + '\">' + r.json.memberOf + '</a></small>';\n\t\t\t\n}",
            "xtype" : "ColumnModel",
            "$ xns" : "Roo.grid",
             },
             {
              "xtype" : "ArrayReader",
-             "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]",
              "$ xns" : "Roo.data",
+             "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]",
              "* prop" : "reader"
             }
            ]
         "render" : "function (_self)\n{\n    _this.eventsTableContainer   = this;\n}"
        },
        "String header" : "Events",
-       "String cls" : "doc-table-container",
        "Boolean expanded" : false,
+       "String cls" : "doc-table-container",
        "xtype" : "Container",
        "String panel" : "info",
        "$ xns" : "Roo.bootstrap",
          "items" : [
           {
            "String header" : "",
-           "String dataIndex" : "name",
            "Number md" : 11,
+           "String dataIndex" : "name",
            "$ Function renderer" : "function(v,x,r) { \n\n    return Roo.docs.template.event(r.json);\n\t\t \n\t\t\t\n}",
            "xtype" : "ColumnModel",
            "$ xns" : "Roo.grid",
           },
           {
            "String header" : "<small>Defined by</small>",
-           "String dataIndex" : "memberOf",
            "Number md" : 1,
+           "String dataIndex" : "memberOf",
            "$ Function renderer" : "function(v,x,r) { \n        if (r.json.memberOf  == Roo.docs.init.currentClass) {\n            return '';\n        }\n\n\t\treturn \t'<small><a href=\"#' + r.json.memberOf + '\">' + r.json.memberOf + '</a></small>';\n\t\t\t\n}",
            "xtype" : "ColumnModel",
            "$ xns" : "Roo.grid",
            "items" : [
             {
              "xtype" : "ArrayReader",
-             "$ xns" : "Roo.data",
              "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]",
+             "$ xns" : "Roo.data",
              "* prop" : "reader"
             },
             {
index 2866e61..ec9b745 100644 (file)
@@ -58,6 +58,7 @@ Roo.docs.init = {
                 }, this);
                 var roo = Roo.docs.navGroup.items[1].menu;
                 roo.show(roo.triggerEl, '?', false);
+                this.loadIntro();
                 
                 
             },
@@ -180,8 +181,10 @@ Roo.docs.init = {
         Roo.docs.doc_body_content.hide();
         this.currentClass = cls.name;
         if (!cls.is_class) {
+            Roo.docs.introBody.show();
             return;
         }
+        Roo.docs.introBody.hide();
         Roo.docs.doc_body_content.show();
         Roo.Ajax.request({
             url : 'symbols/' + cls.name + '.json',
@@ -266,11 +269,148 @@ Roo.docs.init = {
         var link = e.target.href.split('#')[1];
         this.loadClass(link);
         
+    },
+      
+    loadIntro : function()
+    {
+      
+        
+        Roo.Ajax.request({
+            url : 'summary.txt',
+            method : 'GET',
+            success : function(res)
+            {
+                this.renderIntro(res.responseText);
+               
+                
+            },
+            scope : this
+        });
+        
+        
+    },
+    // render the really simple markdown data
+    renderIntro : function(intro)
+    {
+        var lines = intro.split("\n");
+        var tree = { 'name' : 'root', cn : []};
+        var state = [ tree ];
+        for (var i=0;i< lines.length;i++) {
+            var line = lines[i];
+            if (!line.length || line.match(/^\s+$/)) {
+                continue;
+            }
+            var sm = line.match(/^(\s+)(.*)/);
+            
+            var sml = sm ? sm[1].length: 0;
+            Roo.log(sml);
+            sml = sml / 4; // 4 spaces indent?
+            var add = { name : sm ?  sm[2] : line, cn : [] };
+            state[sml].cn.push(add);
+            state[sml+1] = add;
+            
+        }
+        Roo.log(tree);
+        
+        for(var i = 0; i < tree.cn.length; i++) {
+            // make a container..
+            var treei = tree.cn[i];
+            var ctree = {
+                
+                xtype : 'Column',
+                xns : Roo.bootstrap,
+                md:4,
+                sm : 6,
+                items : [ {
+                    header : treei.name,
+                    xtype : 'Container',
+                    panel : 'info',
+                    xns : Roo.bootstrap,
+                    items : []
+                }]
+            };
+            for(var ii = 0; ii < treei.cn.length; ii++) {
+                var treeii = treei.cn[ii];
+                // another container..
+               var ctreei = {
+                    header : treeii.name,
+                    xtype : 'Container',
+                    panel : 'primary',
+                    xns : Roo.bootstrap,
+                  
+                    items : [
+                         {
+                            xtype : 'Element',
+                            tag :'ul',
+                           
+                            xns : Roo.bootstrap,
+                            items : []
+                         }
+                    ]
+                };
+                ctree.items[0].items.push(ctreei);
+                var footer = '';
+                for(var iii = 0; iii < treeii.cn.length; iii++) {
+                    var treeiii = treeii.cn[iii];
+                    var ll = treeiii.name.match(/^(\S+)\s*(.*)$/);
+                    //Roo.log(treeiii.name);
+                    if (treeiii.name == 'Examples') {
+                        for (var j =0;j< treeiii.cn.length; j++) {
+                            var exs = treeiii.cn[j].name.match(/^\[([^\]]+)\](.*)$/);
+                            footer += '<li><a href="../' + exs[1] + '">'+exs[2] + '</a></li>';
+                        }
+                        continue;
+                        
+                        
+                    }
+        
+        
+
+                    ctreeii = {
+                            xtype : 'Element',
+                            tag :'li',
+                            xns : Roo.bootstrap,
+                            items : [
+                                {
+                                   xtype : 'Link',
+                                    href : '#' + ( ll ? ll[1] : treeiii.name ) ,
+                                    html : ll ? ll[1] : treeiii.name,
+                                    xns : Roo.bootstrap 
+                                },
+                                {
+                                   xtype : 'Element',
+                                    tag : 'span',
+                                    html : ll && ll[2].length ? ' - ' + ll[2] : '',
+                                    xns : Roo.bootstrap 
+                                }
+                            ]
+                            
+                            
+                            
+                    };
+                    ctreei.items.push(ctreeii);
+                    
+                }
+                if (footer.length) {
+                    Roo.log("footer:"+  footer);
+                    ctreei.footer = '<h5>Examples:</h5><ul>'+footer +'</ul>';
+                }
+        
+            }
+            
+            
+            
+            
+            
+            Roo.docs.introBody.addxtypeChild(ctree);
+        }
+        
+        
+        
     }
     
     
     
-    
 };
 
 
index 12601e6..9bd6a42 100644 (file)
@@ -11,19 +11,20 @@ Roo.docs = new Roo.XComponent({
   'ae635f08107a69569e636835f24e6f6f' :" extends ",
   '87f9f735a1d36793ceaecd4e47124b63' :"Events",
   'd41d8cd98f00b204e9800998ecf8427e' :"",
+  '9b34238e8113db140b452beec500024b' :"Roo JS Documentation",
   '50f33d14f129e4548c1c270fd6725a78' :"Configuration options",
   'e64b94523532dbac62df6795a5153f04' :"doc-desc",
   '3673e725413179fe76f341ed908a5c36' :"Defined in: ",
   'd2b697ad8e989a6c4592987f22f5bbfc' :"doc-comments",
   'f361257612a512f9be2fdc2abfb25aef' :"<small>Defined by</small>",
   '494a64a432ff6a121e4ab9003c7a0df3' :"parentcls",
-  '9bd81329febf6efe22788e03ddeaf0af' :" Class ",
   'f561aaf6ef0bf14d4208bb46a4ccb3ad' :"xxx",
+  '9bd81329febf6efe22788e03ddeaf0af' :" Class ",
   'a1d108496af420635536a4e29e87d42b' :"Constructor, Static and Public Methods",
   'd41d8cd98f00b204e9800998ecf8427e' :" "
  },
 
-  part     :  ["docs2", "docs" ],
+  part     :  ["docs", "docs" ],
   order    : '001-Roo.docs',
   region   : 'center',
   parent   : false,
@@ -195,8 +196,14 @@ Roo.docs = new Roo.XComponent({
           {
            xtype : 'Link',
            cls : 'logo',
-           href : baseURL +'/',
-           preventDefault : false,
+           href : '#',
+           preventDefault : true,
+           listeners : {
+            click : function (e)
+             {
+                 document.location.reload();
+             }
+           },
            xns : Roo.bootstrap,
            '|xns' : 'Roo.bootstrap'
           }
@@ -284,6 +291,38 @@ Roo.docs = new Roo.XComponent({
      xns : Roo.bootstrap,
      '|xns' : 'Roo.bootstrap'
     },
+    {
+     xtype : 'Container',
+     cls : 'general-content-body',
+     listeners : {
+      render : function (_self)
+       {
+              _this.introContainer = this;
+       }
+     },
+     xns : Roo.bootstrap,
+     '|xns' : 'Roo.bootstrap',
+     items  : [
+      {
+       xtype : 'Header',
+       html : _this._strings['9b34238e8113db140b452beec500024b'] /* Roo JS Documentation */,
+       level : 1,
+       xns : Roo.bootstrap,
+       '|xns' : 'Roo.bootstrap'
+      },
+      {
+       xtype : 'Container',
+       listeners : {
+        render : function (_self)
+         {
+             _this.introBody = this;
+         }
+       },
+       xns : Roo.bootstrap,
+       '|xns' : 'Roo.bootstrap'
+      }
+     ]
+    },
     {
      xtype : 'Container',
      cls : 'general-content-body',
diff --git a/docs/summary.txt b/docs/summary.txt
new file mode 100644 (file)
index 0000000..c2cb40f
--- /dev/null
@@ -0,0 +1,394 @@
+
+
+Core Libraries
+    Core Class
+        Roo essentail reading - get, search elements etc.
+    Dom / CSS / Text
+        Roo.util.CSS
+        Roo.util.Format Various Text Formating / Encoding
+        Roo.DomHelper DOM creation
+        Roo.DomQuery DOM locating elements
+        Roo.util.TextMetrics Text size calculations
+    Element / Selection
+        Roo.Element Core Element methods (see also Roo.get())
+        Roo.CompositeElement
+        Roo.CompositeElementLite
+    Effects / Masks / Tips
+        Roo.Fx
+        Roo.LoadMask
+        Roo.QuickTips
+        Roo.Resizable
+        Examples
+            [examples/resizable/basic.html] Resizing elements With animation, snapping etc. (Works, needs a few replacement images)
+    State
+        Roo.state.CookieProvider
+    Drag and Drop
+        Roo.dd.DD
+        Roo.dd.DDProxy
+        Roo.dd.DDTarget
+        Roo.dd.DragDrop
+        Roo.dd.DragDropMgr
+        Roo.dd.DragZone
+        Roo.dd.DropTarget
+        Roo.dd.DropZone
+        Roo.dd.Registry
+        Roo.dd.ScrollManager
+        Roo.dd.StatusProxy
+    Signals / Events
+        Roo.util.Observable
+        Roo.util.DelayedTask
+        Roo.util.TaskRunner
+        Roo.EventObject
+        Roo.Shadow
+        Roo.util.ClickRepeater
+    AJAX
+        Roo.data.Connection
+        Roo.Ajax
+    Store
+        Roo.util.MixedCollection
+        Roo.data.JsonStore
+        Roo.data.Store
+        Roo.data.SimpleStore
+        Roo.data.Record
+        Roo.data.SortTypes
+    Data Readers
+        Roo.data.ArrayReader
+        Roo.data.DataReader
+        Roo.data.JsonReader
+        Roo.data.XmlReader
+    Data Proxies
+        Roo.data.DataProxy
+        Roo.data.HttpProxy
+        Roo.data.MemoryProxy
+        Roo.data.ScriptTagProxy
+    Tree Data
+        Roo.data.Node
+        Roo.data.Tree
+    Keys
+        Roo.KeyMap
+        Roo.KeyNav
+    Managers
+        Roo.ComponentMgr
+        Roo.DialogManager
+        Roo.EventManager
+        Roo.LayoutManager
+        Roo.UpdateManager
+        Roo.state.Manager
+    Templates
+        Roo.MasterTemplate
+        Roo.Template
+
+    Abstract Base Classes
+
+        Roo.BoxComponent
+        Roo.Component
+        Roo.form.Field
+        Roo.form.Layout
+        Roo.form.TriggerField
+        Roo.grid.AbstractGridView
+        Roo.grid.AbstractSelectionModel
+        Roo.menu.Adapter
+        Roo.menu.BaseItem
+        Roo.menu.Item
+        Roo.state.Provider
+        Roo.Editor
+        Roo.Toolbar.Item
+
+Widgets Bootstrap
+
+    Basic
+        Roo.bootstrap.Body Page container
+        Roo.bootstrap.Component Generic base class for most elements
+        Roo.bootstrap.Element Generic HTML use 'tag' for span or other..
+        Roo.bootstrap.Popover
+        Roo.bootstrap.Tooltip
+
+    Buttons
+        Roo.bootstrap.ButtonGroup
+        Roo.bootstrap.Button
+
+    Layout 
+        Roo.bootstrap.Column
+        Roo.bootstrap.Row
+        Roo.bootstrap.Container Panel Jumbo
+        Roo.bootstrap.Slider Header slider panel
+        Roo.bootstrap.Alert alert area
+        Roo.bootstrap.MessageBar message bar? not sure
+
+        Roo.bootstrap.Graph a graph (using g.raphael)
+
+    Panel Layout (like Classic Roo North/East/South/West Center)
+        Roo.bootstrap.layout.layout-ns
+        Roo.bootstrap.layout.Manager
+        Roo.bootstrap.layout.Border
+        Roo.bootstrap.layout.Basic
+        Roo.bootstrap.layout.Region
+        Roo.bootstrap.layout.Split
+        Roo.bootstrap.layout.Center
+        Roo.bootstrap.layout.North
+        Roo.bootstrap.layout.South
+        Roo.bootstrap.layout.East
+        Roo.bootstrap.layout.West
+
+
+
+        Roo.bootstrap.panel.panel-ns
+        Roo.bootstrap.panel.Content
+        Roo.bootstrap.panel.Grid
+        Roo.bootstrap.panel.Nest
+        Roo.bootstrap.panel.Tabs
+        Roo.bootstrap.panel.TabItem
+        Roo.bootstrap.SplitBar
+
+    Html
+        Roo.bootstrap.Img  Images
+        Roo.bootstrap.Link  Links (A href/name)
+        Roo.bootstrap.Header (Headers)
+
+    Menus
+        Roo.bootstrap.MenuMgr
+        Roo.bootstrap.Menu
+        Roo.bootstrap.MenuItem
+        Roo.bootstrap.MenuSeparator
+        Roo.bootstrap.menu.Menu (fixme these are dupes)
+        Roo.bootstrap.menu.Item (fixme these are dupes)
+        Roo.bootstrap.menu.Separator (fixme these are dupes)
+
+    Dialogs
+        Roo.bootstrap.Modal
+        Roo.bootstrap.MessageBox
+
+    Navigation Bars 
+        Roo.bootstrap.Navbar
+        Roo.bootstrap.NavSimplebar
+        Roo.bootstrap.NavHeaderbar
+        Roo.bootstrap.NavSidebar
+        Roo.bootstrap.NavGroup
+        Roo.bootstrap.NavItem
+        Roo.bootstrap.NavSidebarItem
+
+        Roo.bootstrap.NavProgressBar
+        Roo.bootstrap.NavProgressItem
+        
+    Grids / Pagers
+       
+        Roo.bootstrap.Pagination
+        Roo.bootstrap.PaginationItem
+        Roo.bootstrap.Table
+        Roo.bootstrap.Table.AbstractSelectionModel
+        Roo.bootstrap.Table.RowSelectionModel
+        Roo.bootstrap.PagingToolbar
+    Raw Table creation.
+        Roo.bootstrap.TableCell
+        Roo.bootstrap.TableRow
+        Roo.bootstrap.TableBody
+
+    Form
+        Roo.form.Action
+        Roo.bootstrap.Form
+        Roo.form.VTypes
+        Roo.bootstrap.Input
+        Roo.bootstrap.TextArea
+        Roo.bootstrap.TriggerField
+        Roo.bootstrap.ComboBox
+        Roo.bootstrap.DateField
+        Roo.bootstrap.TimeField
+        Roo.bootstrap.MonthField
+
+        Roo.bootstrap.CheckBox
+        Roo.bootstrap.Radio
+        Roo.bootstrap.SecurePass Secure password       
+        Roo.HtmlEditorCore
+        Roo.bootstrap.HtmlEditor
+        Roo.bootstrap.htmleditor.ToolbarStandard
+        Roo.bootstrap.FieldLabel
+
+        Roo.bootstrap.DateSplitField
+        Roo.bootstrap.NumberField
+        Roo.bootstrap.PhoneInputData
+        Roo.bootstrap.PhoneInput
+
+        Roo.bootstrap.MoneyField
+
+        Roo.bootstrap.BezierSignature
+        Roo.bootstrap.RadioSet
+
+
+        
+    Complex Widgets
+        Roo.bootstrap.Calendar
+        Roo.bootstrap.LocationPicker google maps location picker
+        Roo.bootstrap.UploadCropbox image upload with crop
+        Roo.bootstrap.DocumentManager  document upload grid
+        Roo.bootstrap.DocumentViewer  document view dialog
+        Roo.bootstrap.DocumentSlider
+    Masonry Grid
+        Roo.bootstrap.LayoutMasonry
+        Roo.bootstrap.LayoutMasonryAuto
+        Roo.bootstrap.MasonryBrick
+        Roo.bootstrap.Brick
+
+    Progress
+        Roo.bootstrap.Progress
+        Roo.bootstrap.ProgressBar
+
+    Tabs
+        Roo.bootstrap.TabGroup
+        Roo.bootstrap.TabPanel
+
+
+       
+       
+
+       
+        
+    Dashboard (Beta)
+
+        Roo.bootstrap.dash.NumberBox
+        Roo.bootstrap.dash.TabBox
+        Roo.bootstrap.dash.TabPane
+
+       
+
+
+        
+       
+
+        
+
+       
+
+      
+
+      
+
+        
+
+        
+
+       
+        
+
+        
+
+       
+
+
+
+Widgets (Classic Roo)
+    Windows and Dialogs
+        Roo.BasicDialog
+        Roo.LayoutDialog
+        Roo.MessageBox
+        Examples
+            [examples/dialog/hello.html] Simple Hello World
+            [examples/dialog/layout.html]Dialog with Layout
+            [examples/dialog/msg-box.html]Various Standard Message Boxes
+            [examples/dialog/blog.html]Simple Blog Post interface
+    Buttons
+        Roo.Button
+        Roo.SplitButton
+    
+    Core Form / Layout
+        Roo.form.Form
+        Roo.form.BasicForm
+        Roo.form.Column
+        Roo.form.FieldSet
+    Form Elements
+        Roo.form.Hidden
+        Roo.form.TextField
+        Roo.form.DateField
+        Roo.form.NumberField
+        Roo.form.TextArea
+        Roo.form.Checkbox
+        Roo.form.Radio
+        Roo.form.ComboBox
+        Html Editor
+        Roo.form.HtmlEditor (broken on IE)
+        Roo.form.FCKeditor embeded FCKeditor (slow but works)
+    Other
+        Roo.form.Action What happens when you load and save a form.
+        Roo.form.VTypes Various types of Validation for form elements.
+        Roo.DatePicker Date Picker (not really a form element...)
+        Examples
+            [examples/form/dynamic.html]Dynamic Forms
+            [examples/form/combos.html]Combox boxes
+            [examples/form/htmledit.html]HTML editor example
+            [examples/form/custom.html]Custom-  Autocomplete example - (Broken until we sort out a Json callback for trac)
+            [examples/form/forum-search.html]Search forum  - (Broken until we sort out a Json callback for trac)
+            [examples/form/xml-form.html]Form from/to xml            
+            [examples/form/fck.html]FCK editor example
+    Tree
+        Roo.tree.TreePanel
+        Roo.tree.TreeEditor
+        Roo.tree.AsyncTreeNode
+        Roo.tree.TreeNode
+        Roo.tree.TreeFilter
+        Roo.tree.TreeLoader
+        Roo.tree.TreeSorter
+        Roo.tree.DefaultSelectionModel
+        Roo.tree.MultiSelectionModel
+        Examples
+            [examples/tree/two-trees.html]Two Trees</a> (need to rename it!)</li>
+            [examples/tree/reorder.html]Re-orderable Trees
+            [examples/tree/dependency.html]The Roo Dependancy tree</a> (needs some css tidy up.)</li>
+            [examples/tree/organizer.html]Organizer</a> (needs some css tidy up.)</li>
+    Grid
+        Roo.grid.GridPanel
+        Roo.grid.CellSelectionModel
+        Roo.grid.RowSelectionModel
+        Roo.grid.ColumnModel
+        Roo.grid.EditorGrid
+        Roo.grid.Grid
+        Roo.grid.GridEditor
+        Roo.grid.GridView
+        Roo.PagingToolbar
+        Examples
+            [examples/grid/array-grid.html]Grid from Array
+            [examples/grid/custom-grid.html]Property Grid
+            [examples/grid/from-markup.html]Grid from HTML markup< (IE: css broken)
+            [examples/grid/paging.html]Paging Grid - FF: minor tidy up req, IE: Broken slightly when scrolling.
+            [examples/grid/edit-grid.html]Editable Grid
+    Menu / Toolbars
+        Roo.menu.CheckItem
+        Roo.menu.ColorItem
+        Roo.menu.DateItem
+        Roo.menu.DateMenu
+        Roo.menu.Menu
+        Roo.menu.MenuMgr
+        Roo.menu.Separator
+        Roo.menu.TextItem
+        Roo.Toolbar
+        Roo.Toolbar.Button
+        Roo.Toolbar.Fill
+        Roo.Toolbar.Separator
+        Roo.Toolbar.Spacer
+        Roo.Toolbar.SplitButton
+        Roo.Toolbar.TextItem
+        Examples
+            [examples/menu/menus.html]Toolbar / Menus example ( Minor css tweaking needed)
+    View / Layers
+        Roo.JsonView
+        Roo.Layer
+        Roo.View
+        Examples
+            [examples/view/chooser.html]Image Chooser</a>  </li>
+    Layout / Tabs
+        Roo.BasicLayoutRegion
+        Roo.BorderRegion
+        Roo.ContentPanel
+        Roo.LayoutRegion
+        Roo.NestedLayoutPanel
+        Roo.ReaderLayout
+        Roo.SplitBar
+        Roo.SplitLayoutRegion
+        Roo.TabPanel
+        Roo.TabPanelItem
+        Examples
+            [examples/layout/simple.html]Simple Layout
+            [examples/layout/nested.html]Nested Layout
+            [examples/layout/complex.html]Complex Layout ( Broken - needs converting to Roo JS)
+            [examples/tabs/tabs.html]Basic Tabs  (borders broken on tab boxes)
+            [examples/tabs/tabs-adv.html]Advanced Tabs(dynamic adding of tabs)