From 93992e423e9798b79cc811bba25dcbd5a220c61c Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Sun, 13 Jan 2019 11:55:39 +0800 Subject: [PATCH] Fix #5657 - Summary page for documentation --- docs/Roo.docs.bjs | 69 +++++--- docs/Roo.docs.init.js | 142 ++++++++++++++- docs/Roo.docs.js | 47 ++++- docs/summary.txt | 394 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 626 insertions(+), 26 deletions(-) create mode 100644 docs/summary.txt diff --git a/docs/Roo.docs.bjs b/docs/Roo.docs.bjs index 282156e67b..554974492c 100644 --- a/docs/Roo.docs.bjs +++ b/docs/Roo.docs.bjs @@ -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" : { @@ -10,14 +10,15 @@ "ae635f08107a69569e636835f24e6f6f" : " extends ", "87f9f735a1d36793ceaecd4e47124b63" : "Events", "d41d8cd98f00b204e9800998ecf8427e" : " ", + "9b34238e8113db140b452beec500024b" : "Roo JS Documentation", "50f33d14f129e4548c1c270fd6725a78" : "Configuration options", "e64b94523532dbac62df6795a5153f04" : "doc-desc", "3673e725413179fe76f341ed908a5c36" : "Defined in: ", "d2b697ad8e989a6c4592987f22f5bbfc" : "doc-comments", "f361257612a512f9be2fdc2abfb25aef" : "Defined by", "494a64a432ff6a121e4ab9003c7a0df3" : "parentcls", - "9bd81329febf6efe22788e03ddeaf0af" : " Class ", "f561aaf6ef0bf14d4208bb46a4ccb3ad" : "xxx", + "9bd81329febf6efe22788e03ddeaf0af" : " Class ", "a1d108496af420635536a4e29e87d42b" : "Constructor, Static and Public Methods" }, "items" : [ @@ -56,11 +57,14 @@ "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, @@ -94,6 +98,29 @@ "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}" @@ -120,8 +147,8 @@ "items" : [ { "xtype" : "Header", - "$ xns" : "Roo.bootstrap", "Number level" : 4, + "$ xns" : "Roo.bootstrap", "String html" : " Class ", "items" : [ { @@ -162,8 +189,8 @@ }, { "xtype" : "Header", - "Number level" : 5, "$ xns" : "Roo.bootstrap", + "Number level" : 5, "String html" : "Defined in: ", "items" : [ { @@ -172,8 +199,8 @@ "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: " @@ -224,8 +251,8 @@ "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", @@ -245,8 +272,8 @@ "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", @@ -254,8 +281,8 @@ }, { "String header" : "Defined by", - "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'' + r.json.memberOf + '';\n\t\t\t\n}", "xtype" : "ColumnModel", "$ xns" : "Roo.grid", @@ -273,8 +300,8 @@ }, { "xtype" : "ArrayReader", - "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]", "$ xns" : "Roo.data", + "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]", "* prop" : "reader" } ] @@ -288,8 +315,8 @@ "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", @@ -307,8 +334,8 @@ "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", @@ -317,8 +344,8 @@ }, { "String header" : "Defined by", - "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'' + r.json.memberOf + '';\n\t\t\t\n}", "xtype" : "ColumnModel", "$ xns" : "Roo.grid", @@ -337,8 +364,8 @@ }, { "xtype" : "ArrayReader", - "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]", "$ xns" : "Roo.data", + "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]", "* prop" : "reader" } ] @@ -352,8 +379,8 @@ "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", @@ -371,8 +398,8 @@ "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", @@ -380,8 +407,8 @@ }, { "String header" : "Defined by", - "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'' + r.json.memberOf + '';\n\t\t\t\n}", "xtype" : "ColumnModel", "$ xns" : "Roo.grid", @@ -394,8 +421,8 @@ "items" : [ { "xtype" : "ArrayReader", - "$ xns" : "Roo.data", "$ fields" : "[ 'name', 'type', 'desc', 'memberOf' ]", + "$ xns" : "Roo.data", "* prop" : "reader" }, { diff --git a/docs/Roo.docs.init.js b/docs/Roo.docs.init.js index 2866e61de9..ec9b7457b9 100644 --- a/docs/Roo.docs.init.js +++ b/docs/Roo.docs.init.js @@ -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 += '
  • '+exs[2] + '
  • '; + } + 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 = '
    Examples:
    '; + } + + } + + + + + + Roo.docs.introBody.addxtypeChild(ctree); + } + + + } - }; diff --git a/docs/Roo.docs.js b/docs/Roo.docs.js index 12601e6583..9bd6a428c6 100644 --- a/docs/Roo.docs.js +++ b/docs/Roo.docs.js @@ -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' :"Defined by", '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 index 0000000000..c2cb40ffe2 --- /dev/null +++ b/docs/summary.txt @@ -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 (need to rename it!) + [examples/tree/reorder.html]Re-orderable Trees + [examples/tree/dependency.html]The Roo Dependancy tree (needs some css tidy up.) + [examples/tree/organizer.html]Organizer (needs some css tidy up.) + 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 + 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) -- 2.39.2