1. #41
    Sencha User renku's Avatar
    Join Date
    Feb 2009
    Location
    Estonia
    Posts
    437
    Vote Rating
    17
    renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold

      0  

    Default


    The current logic is:

    - When there's only one expandable node at root level, then expand it
    - Otherwise leave everything unexpanded.

    You sound like your tree has at least two main branches, but the Ext one still gets expanded. Am I correct?

    Are you using JSDuck 3.1 ?

  2. #42
    Sencha User renku's Avatar
    Join Date
    Feb 2009
    Location
    Estonia
    Posts
    437
    Vote Rating
    17
    renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold

      0  

    Default


    JSDuck 3.2.1 now available

    One of the main additions is --config option to read JSDuck options from JSON config file. See the Advanced Usage guide for details.

    Another biggie is automatic linking. Instead of tediously writing {@link} tags everywhere one can now just write:

    Code:
    /**
     * A class like Ext.grid.Panel with lots of extra methods
     * like #doGood, #doBad, #getRaise, #dropDead.
     */
    And JSDuck will automatically convert both the classname and method names to links.

    Related to the linking improvements are several new warning types: link_private, link_ambiguous, link_auto. The last one is turned off by default as it tends to report lots of false positives.

    Finally the search has been improved, allowing to search from aliases and alternateClassNames.

    Full changelog

  3. #43
    Sencha User Zyclops's Avatar
    Join Date
    Jul 2007
    Location
    Adelaide, South Australia
    Posts
    154
    Vote Rating
    0
    Zyclops is on a distinguished road

      0  

    Default


    I'm trying to use jsduck for documenting my classes in a sencha touch 2 application

    I've tried a number of commands like
    A:
    Code:
    jsduck public/MyCompany/MyApp --output docs --title='MyApp - Developer Documentation' --extjs-path=public/touch/sencha-touch-all.js
    B:
    Code:
    jsduck public public/MyCompany/MyApp --output docs --title='MyApp - Developer Documentation'
    A doesn't work, when i load the documentation it complains that Ext does not exist. When I try B it does work, but it also processes all the sencha touch documentation as well (which I don't really need) and that takes a long time. (or is this a requirement?)

    any ideas?

  4. #44
    Sencha User renku's Avatar
    Join Date
    Feb 2009
    Location
    Estonia
    Posts
    437
    Vote Rating
    17
    renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold

      0  

    Default


    The --extjs-path option is mainly a helper in debugging JSDuck - to switch between ext-debug.js and ext.js. Passing Sencha Touch to it will definitely screw things up. Guess it might need some better explanation.

    The second command is strange: you are including public/ and public/MyCompany/MyApp, effectively including the second path twice as public/MyCompany/MyApp is inside public/.

    You should be able to just run:

    Code:
    jsduck public/MyCompany/MyApp --output docs
    However, because you are certainly extending lots of Sencha Touch classes (at least Ext.Base), JSDuck will complain about all these missing classes. It will generate the docs, but these won't be really full as all the members inherited from parent classes will be missing - if that doesn't bother you, leave touch out. Otherwise I suggest you do include touch sources.

    PS. How long does it take for you to generate docs for touch? On my 4-core machine it takes only about 6 seconds... or about twice as much when I turn off multi-processing. What does this public/ dir of yours contain?

  5. #45
    Sencha User Zyclops's Avatar
    Join Date
    Jul 2007
    Location
    Adelaide, South Australia
    Posts
    154
    Vote Rating
    0
    Zyclops is on a distinguished road

      0  

    Default


    Takes about a minute on my 2010 model macbook pro (whatever processor that has ).


    I've also been trying documentation like this:
    Code:
    * @cfg {Ext.data.types.INTEGER}, [ok_button_minimum_initial_interval=86400]
    but jsduck complains that Ext.data.types.INTEGER doesn't exist. Do i have to include that specifically?

  6. #46
    Sencha User renku's Avatar
    Join Date
    Feb 2009
    Location
    Estonia
    Posts
    437
    Vote Rating
    17
    renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold

      0  

    Default


    That's really weird. I also own a macbook pro, and it definitely doesn't run as slow there. Are you sure you are only passing the needed Sencha Touch source files to jsduck? That is, only the touch-2.0.0/src/ not the whole touch-2.0.0/ directory?

    As for the second issue, the Ext.data.types.INTEGER is documented as property, but only classes are allowed to be used as data types.

    To avoid warnings, you can declare these types as external class names: --external=Ext.data.types.INTEGER,Ext.data.types.STRING,...

    Alternatively you can create a separate file where you document these types as classes. Although it will be a bit weird if you have Ext.data.types.INTEGER as both property and class.

    What I personally would to, is to simply use the short names {INTEGER}, {STRING}, etc, and define them as --external.

  7. #47
    Sencha User SimoAmi's Avatar
    Join Date
    Oct 2008
    Location
    New York
    Posts
    119
    Vote Rating
    3
    SimoAmi will become famous soon enough

      0  

    Default


    For those looking for the examples json files, here they are:

    examples.json for Ext 3.4.0:
    Code:
    [
            {
                "title" : "Combination Examples",
                "items" : [
                        {
                            "text" : "Feed Viewer",
                            "url" : "feed-viewer/view.html",
                            "icon" : "feeds.gif",
                            "desc" : "RSS feed reader example application that features a swappable reader panel layout."
                        }, {
                            "text" : "Web Desktop",
                            "url" : "desktop/desktop.html",
                            "icon" : "desktop.gif",
                            "desc" : "Demonstrates how one could build a desktop in the browser using Ext components including a module plugin system."
                        },
                        {
                            "text" : "Ext JS Calendar",
                            "url" : "calendar/index.html",
                            "icon" : "calendar.gif",
                            "desc" : "Example Calendar application. Demonstrates the new Day, Week and Month views and how to combine them.",
                            "status" : "new"
                        }, {
                            "text" : "Ext JS API Documentation",
                            "url" : "../docs/index.html",
                            "icon" : "docs.gif",
                            "desc" : "API Documentation application."
                        }, {
                            "text" : "Ext JS Forum Browser",
                            "url" : "forum/forum.html",
                            "icon" : "forum.gif",
                            "desc" : "Ext JS online forums browser application.",
                            "status" : "modified"
                        }, {
                            "text" : "Image Viewer",
                            "url" : "organizer/organizer.html",
                            "icon" : "organizer.gif",
                            "desc" : "DataView and TreePanel example that demonstrates dragging data items from a DataView into a TreePanel."
                        }, {
                            "text" : "Themes Viewer",
                            "url" : "themes/index.html",
                            "icon" : "themes.gif",
                            "desc" : "View and test every Ext component against bundled Ext themes, or, your own custom themes.",
                            "status" : "new"
                        }
                ]
            }, {
                "title" : "Offline Support",
                "items" : [
                        {
                            "text" : "Simple Tasks",
                            "url" : "tasks/tasks.html",
                            "icon" : "tasks.gif",
                            "desc" : "Personal task management application example that uses <a href=\"http:\/\/gears.google.com\" target=\"_blank\">Google Gears</a> for data storage."
                        }, {
                            "text" : "Simple Tasks",
                            "url" : "http://extjs.com/blog/2008/02/24/tasks2/",
                            "icon" : "air.gif",
                            "desc" : "Complete personal task management application example that runs on <a href=\"http:\/\/labs.adobe.com/technologies/air/\" target=\"_blank\">Adobe AIR</a>."
                        }
                ]
            }, {
                "title" : "Accessibility",
                "items" : [
                        {
                            "text" : "Key Feed Viewer",
                            "url" : "key-feed-viewer/view.html",
                            "icon" : "keyboard.gif",
                            "desc" : "Keyboard navigation within a complex layout.",
                            "status" : "experimental"
                        }, {
                            "text" : "ARIA Tree",
                            "url" : "tree/aria-tree.html",
                            "icon" : "acc-tree.gif",
                            "desc" : "Demonstrating ARIA with a TreePanel",
                            "status" : "experimental"
                        }, {
                            "text" : "Custom Search Fields",
                            "url" : "form/custom-access.html",
                            "icon" : "form-custom-access.gif",
                            "desc" : "A TriggerField search extension combined with an XTemplate for custom results rendering. Uses the Accessibility theme."
                        }, {
                            "text" : "Binding a Grid to a Form",
                            "url" : "form/form-grid-access.html",
                            "icon" : "form-grid-binding-access.gif",
                            "desc" : "A grid embedded within a FormPanel that uses the Accessibility theme."
    
    
                        }
                ]
            }, {
                "title" : "Pivot Grid",
                "items" : [
                        {
                            "text" : "Pivot Grid",
                            "url" : "pivotgrid/simple.html",
                            "icon" : "pivotgrid.gif",
                            "desc" : "The powerful new PivotGrid component, demonstrating data reduction and analysis capabilities.",
                            "status" : "new"
                        }, {
                            "text" : "Customised Pivot Grid",
                            "url" : "pivotgrid/countries.html",
                            "icon" : "pivotgrid-cellcls.gif",
                            "desc" : "A PivotGrid with its appearance customised based on summarized data",
                            "status" : "new"
                        }, {
                            "text" : "Pivot Grid Examples",
                            "url" : "pivotgrid/people.html",
                            "icon" : "pivotgrid-people.gif",
                            "desc" : "Several Pivot Grids showing different views of the same data source",
                            "status" : "new"
                        }
                ]
            }, {
                "title" : "Grids",
                "items" : [
                        {
                            "text" : "Basic Array Grid",
                            "url" : "grid/array-grid.html",
                            "icon" : "grid-array.gif",
                            "desc" : "A basic read-only grid loaded from local array data that demonstrates the use of custom column renderer functions."
                        }, {
                            "text" : "Property Grid",
                            "url" : "grid/property-grid.html",
                            "icon" : "grid-property.gif",
                            "desc" : "An example of a traditional property grid as typically seen in development IDEs."
                        }, {
                            "text" : "Editable Grid",
                            "url" : "grid/edit-grid.html",
                            "icon" : "grid-edit.gif",
                            "desc" : "An editable grid loaded from XML that shows multiple types of grid editors as well as defining custom data records."
                        }, {
                            "text" : "Row Editor Grid",
                            "url" : "grid/row-editor.html",
                            "icon" : "grid-row-editor.gif",
                            "desc" : "An editable grid which allows the user to make modifications to an entire record at once. Also demonstrates the Ext.chart package. ",
                            "status" : "new"
                        }, {
                            "text" : "XML Grid",
                            "url" : "grid/xml-grid.html",
                            "icon" : "grid-xml.gif",
                            "desc" : "A simple read-only grid loaded from XML data."
                        }, {
                            "text" : "Paging",
                            "url" : "grid/paging.html",
                            "icon" : "grid-paging.gif",
                            "desc" : "A grid with paging, cross-domain data loading and custom- rendered expandable row bodies."
                        }, {
                            "text" : "Progress Bar Pager",
                            "url" : "grid/progress-bar-pager.html",
                            "icon" : "progress-bar-pager.gif",
                            "desc" : "An example of how to integrate the Progress Bar with the Paging Toolbar using a custom plugin.",
                            "status" : "new"
                        }, {
                            "text" : "Sliding Pager",
                            "url" : "grid/sliding-pager.html",
                            "icon" : "slider-pager.gif",
                            "desc" : "A demonstration on the integration of the Slider with the Paging Toolbar using a custom plugin.",
                            "status" : "new"
                        }, {
                            "text" : "Grouping",
                            "url" : "grid/grouping.html",
                            "icon" : "grid-grouping.gif",
                            "desc" : "A basic grouping grid showing collapsible data groups that can be customized via the \"Group By\" header menu option."
                        }, {
                            "text" : "Grouping with Dynamic Summary",
                            "url" : "grid/totals.html",
                            "icon" : "grid-summary.gif",
                            "desc" : "Advanced grouping grid that allows cell editing and includes custom dynamic summary calculations.",
                            "status" : "new"
                        }, {
                            "text" : "Grouping with Remote Summary",
                            "url" : "grid/totals-hybrid.html",
                            "icon" : "grid-summary.gif",
                            "desc" : "Advanced grouping grid that allows cell editing and includes remotely loaded dynamic summary calculations."
                        }, {
                            "text" : "Grid Plugins",
                            "url" : "grid/grid-plugins.html",
                            "icon" : "grid-plugins.gif",
                            "desc" : "Multiple grids customized via plugins: expander rows, checkbox selection and row numbering."
                        }, {
                            "text" : "Grid Filtering",
                            "url" : "grid-filtering/grid-filter-local.html",
                            "icon" : "grid-filter.gif",
                            "desc" : "Grid plugins providing custom data filtering menus that support various data types.",
                            "status" : "updated"
                        }, {
                            "text" : "Grid From Markup",
                            "url" : "grid/from-markup.html",
                            "icon" : "grid-from-markup.gif",
                            "desc" : "Custom GridPanel extension that can convert a plain HTML table into a dynamic grid at runtime."
                        }, {
                            "text" : "Grid Data Binding (basic)",
                            "url" : "grid/binding.html",
                            "icon" : "grid-data-binding.gif",
                            "desc" : "Data binding a grid to a detail preview panel via the grid\"s RowSelectionModel."
                        }, {
                            "text" : "Grid Data Binding (advanced)",
                            "url" : "grid/binding-with-classes.html",
                            "icon" : "grid-data-binding.gif",
                            "desc" : "Refactoring the basic data binding example to use a class-based application design model."
                        }, {
                            "text" : "Buffered GridView",
                            "url" : "grid/buffer.html",
                            "icon" : "grid-buffer.gif",
                            "desc" : "GridView optimized for performance by rendering only visible rows.",
                            "status" : "new"
                        }, {
                            "text" : "Editable Grid with Writable Store",
                            "url" : "writer/writer.html",
                            "icon" : "writer-thumb.gif",
                            "desc" : "This Store uses JsonWriter to automatically generate CRUD requests to the server through a standard HttpProxy.",
                            "status" : "new"
                        }, {
                            "text" : "RESTful Store with GridPanel and RowEditor",
                            "url" : "restful/restful.html",
                            "icon" : "grid-row-editor.gif",
                            "desc" : "A RESTful Store with JsonWriter which automatically generates CRUD requests to the server.",
                            "status" : "new"
                        }, {
                            "text" : "Locking GridView extension",
                            "url" : "grid/locking-grid.html",
                            "icon" : "grid-locking.gif",
                            "desc" : "An example extension that introduces the ability to add locking columns to the GridPanel",
                            "status" : "new"
                        }, {
                            "text" : "Grouping GridView extension",
                            "url" : "grid/ColumnHeaderGroup.html",
                            "icon" : "grid-columngrouping.gif",
                            "desc" : "An extension that adds the capability of grouping Column headers in the GridPanel",
                            "status" : "new"
                        }, {
                            "text" : "Multiple Sorting",
                            "url" : "grid/multiple-sorting.html",
                            "icon" : "grid-multiple-sorting.png",
                            "desc" : "An example that shows multi-level sorting in a Grid Panel.",
                            "status" : "new"
                        }
                ]
            }, {
                "title" : "Tabs",
                "items" : [
                        {
                            "text" : "Basic Tabs",
                            "url" : "tabs/tabs.html",
                            "icon" : "tabs.gif",
                            "desc" : "Basic tab functionality including autoHeight, tabs from markup, Ajax loading and tab events."
                        }, {
                            "text" : "TabPanel Scroller Menu",
                            "url" : "tabs/tab-scroller-menu.html",
                            "icon" : "tab-panel-scroller-menu.gif",
                            "desc" : "An example of an overflow menu that appears to the right of the TabPanel tab strip",
                            "status" : "new"
                        }, {
                            "text" : "Advanced Tabs",
                            "url" : "tabs/tabs-adv.html",
                            "icon" : "tabs-adv.gif",
                            "desc" : "Advanced tab features including tab scrolling, adding tabs programmatically and a context menu plugin."
                        }, {
                            "text" : "Group Tabs",
                            "url" : "grouptabs/grouptabs.html",
                            "icon" : "group-tabs.gif",
                            "desc" : "A custom example on how to setup tab grouping using vertical tabs.",
                            "status" : "new"
                        }
                ]
            }, {
                "title" : "Charts",
                "items" : [
                        {
                            "text" : "Charts",
                            "url" : "chart/charts.html",
                            "icon" : "charts.gif",
                            "desc" : "A sampling of several chart styles",
                            "status" : "new"
                        }, {
                            "text" : "Pie Chart",
                            "url" : "chart/pie-chart.html",
                            "icon" : "chart-pie.gif",
                            "desc" : "An example of a pie chart",
                            "status" : "new"
                        }, {
                            "text" : "Stacked Bar Chart",
                            "url" : "chart/stacked-bar-chart.html",
                            "icon" : "chart-stacked.gif",
                            "desc" : "An example of a stacked bar chart",
                            "status" : "new"
                        }, {
                            "text" : "Reloaded Chart",
                            "url" : "chart/reload-chart.html",
                            "icon" : "chart-reload.gif",
                            "desc" : "An example demonstrating chart data reloading",
                            "status" : "new"
                        }
                ]
            }, {
                "title" : "Windows",
                "items" : [
                        {
                            "text" : "Hello World",
                            "url" : "window/hello.html",
                            "icon" : "window.gif",
                            "desc" : "Simple \"Hello World\" window that contains a basic TabPanel."
                        }, {
                            "text" : "MessageBox",
                            "url" : "message-box/msg-box.html",
                            "icon" : "msg-box.gif",
                            "desc" : "Different styles include confirm, alert, prompt, progress and wait and also support custom icons."
                        }, {
                            "text" : "Layout Window",
                            "url" : "window/layout.html",
                            "icon" : "window-layout.gif",
                            "desc" : "A window containing a basic BorderLayout with nested TabPanel."
                        }
                ]
            }, {
                "title" : "Trees",
                "items" : [
                        {
                            "text" : "Drag and Drop Reordering",
                            "url" : "tree/reorder.html",
                            "icon" : "tree-reorder.gif",
                            "desc" : "A TreePanel loaded asynchronously via a JSON TreeLoader that shows drag and drop with container scroll."
                        }, {
                            "text" : "Multiple trees",
                            "url" : "tree/two-trees.html",
                            "icon" : "tree-two.gif",
                            "desc" : "Drag and drop between two different sorted TreePanels."
                        }, {
                            "text" : "TreeGrid",
                            "url" : "treegrid/treegrid.html",
                            "icon" : "tree-columns.gif",
                            "desc" : "The TreeGrid component",
                            "status" : "new"
                        }, {
                            "text" : "Check Tree",
                            "url" : "tree/check-tree.html",
                            "icon" : "tree-check.gif",
                            "desc" : "An example showing simple checkbox selection in a tree.",
                            "status" : "new"
                        }, {
                            "text" : "XML Tree Loader",
                            "url" : "tree/xml-tree-loader.html",
                            "icon" : "tree-xml-loader.gif",
                            "desc" : "A custom TreeLoader implementation that demonstrates loading a tree from an XML document."
                        }
                ]
            }, {
                "title" : "Layout Managers",
                "items" : [
                        {
                            "text" : "Layout Browser",
                            "url" : "layout-browser/layout-browser.html",
                            "icon" : "layout-browser.gif",
                            "desc" : "Comprehensive showcase of the standard layout managers as well as several custom and combination layouts and combination examples.",
                            "status" : "updated"
                        }, {
                            "text" : "Border Layout",
                            "url" : "layout/complex.html",
                            "icon" : "border-layout.gif",
                            "desc" : "A complex BorderLayout implementation that shows nesting multiple components and sub-layouts."
                        }, {
                            "text" : "Accordion Layout",
                            "url" : "layout/accordion.html",
                            "icon" : "layout-accordion.gif",
                            "desc" : "A basic accordion layout within a border layout."
                        }, {
                            "text" : "Absolute Layout (Form)",
                            "url" : "form/absform.html",
                            "icon" : "layout-absolute.gif",
                            "desc" : "A simple example of form fields utilizing an absolute layout in a window for flexible form resizing."
                        }, {
                            "text" : "Anchor Layout (Form)",
                            "url" : "form/anchoring.html",
                            "icon" : "layout-form.gif",
                            "desc" : "A simple example of form fields utilizing an anchor layout in a window for flexible form resizing."
                        }, {
                            "text" : "Anchor Layout (Panel)",
                            "url" : "layout/anchor.html",
                            "icon" : "layout-anchor.gif",
                            "desc" : "An example of Panels anchored in the browser window."
                        }, {
                            "text" : "Column Layout",
                            "url" : "layout/column.html",
                            "icon" : "layout-column.gif",
                            "desc" : "An example of Panels managed by a column layout."
                        }, {
                            "text" : "Table Layout",
                            "url" : "layout/table.html",
                            "icon" : "layout-table.gif",
                            "desc" : "An example of Panels managed by a table layout."
                        }, {
                            "text" : "HBox Layout",
                            "url" : "layout/hbox.html",
                            "icon" : "layout-column.gif",
                            "desc" : "Interactive layout illustrating the capabilities of the HBox Layout.",
                            "status" : "new"
                        }, {
                            "text" : "VBox Layout",
                            "url" : "layout/vbox.html",
                            "icon" : "layout-vbox.gif",
                            "desc" : "Interactive layout illustrating the capabilities of the VBox Layout.",
                            "status" : "new"
                        }, {
                            "text" : "Portal Demo",
                            "url" : "portal/portal.html",
                            "icon" : "portal.gif",
                            "desc" : "A page layout using several custom extensions to provide a web portal interface."
                        }
                ]
            }, {
                "title" : "ComboBox",
                "items" : [
                        {
                            "text" : "Basic ComboBox",
                            "url" : "form/combos.html",
                            "icon" : "combo.gif",
                            "desc" : "Basic combos, combos rendered from markup and customized list layout to provide item tooltips."
                        }, {
                            "text" : "ComboBox Templates",
                            "url" : "form/forum-search.html",
                            "icon" : "combo-custom.gif",
                            "desc" : "Customized combo with template-based list rendering, remote loading and paging."
                        }
                ]
            }, {
                "title" : "Forms",
                "items" : [
                        {
                            "text" : "Dynamic Forms",
                            "url" : "form/dynamic.html",
                            "icon" : "form-dynamic.gif",
                            "desc" : "Various example forms showing collapsible fieldsets, column layout, nested TabPanels and more."
                        }, {
                            "text" : "Ajax with XML Forms",
                            "url" : "form/xml-form.html",
                            "icon" : "form-xml.gif",
                            "desc" : "Ajax-loaded form fields from remote XML data and remote field validation on submit."
                        }, {
                            "text" : "Custom Search Fields",
                            "url" : "form/custom.html",
                            "icon" : "form-custom.gif",
                            "desc" : "A TriggerField search extension combined with an XTemplate for custom results rendering."
                        }, {
                            "text" : "Binding a Grid to a Form",
                            "url" : "form/form-grid.html",
                            "icon" : "form-grid-binding.gif",
                            "desc" : "A grid embedded within a FormPanel that automatically loads records into the form on row selection."
                        }, {
                            "text" : "Advanced Validation",
                            "url" : "form/adv-vtypes.html",
                            "icon" : "form-adv-vtypes.gif",
                            "desc" : "Relational form field validation using custom vtypes."
                        }, {
                            "text" : "Checkbox/Radio Groups",
                            "url" : "form/check-radio.html",
                            "icon" : "form-check-radio.gif",
                            "desc" : "Many examples showing different checkbox and radio group configurations."
                        }, {
                            "text" : "File Upload Field",
                            "url" : "form/file-upload.html",
                            "icon" : "form-file-upload.gif",
                            "desc" : "A demo of how to give standard file upload fields a bit of Ext style using a custom class."
                        }, {
                            "text" : "Spinner Field",
                            "url" : "spinner/spinner.html",
                            "icon" : "form-spinner.gif",
                            "desc" : "An example of a custom spinner widget."
                        }, {
                            "text" : "MultiSelect and ItemSelector",
                            "url" : "multiselect/multiselect-demo.html",
                            "icon" : "form-multiselect.gif",
                            "desc" : "Example controls for selecting a list of items in forms."
                        }, {
                            "text" : "Slider Field",
                            "url" : "slider/slider-field.html",
                            "icon" : "form-slider.png",
                            "desc" : "Example usage of an Ext.Slider to select a number value in a form.",
                            "status" : "new"
                        }, {
                            "text" : "Forms with vBox layout",
                            "url" : "form/vbox-form.html",
                            "icon" : "form-vbox.gif",
                            "desc" : "Example usage of the vBox layout with forms. An added bonus is the FieldReplicator plugin.",
                            "status" : "new"
                        }, {
                            "text" : "Composite Fields",
                            "url" : "form/composite-field.html",
                            "icon" : "form-composite.png",
                            "desc" : "Example usage of the Composite Fields to place several fields on a single form row.",
                            "status" : "new"
                        }
                ]
            }, {
                "title" : "Toolbars and Menus",
                "items" : [
                        {
                            "text" : "Basic Toolbar",
                            "url" : "menu/menus.html",
                            "icon" : "toolbar.gif",
                            "desc" : "Toolbar and menus that contain various components like date pickers, color pickers, sub-menus and more.",
                            "status" : "updated"
                        }, {
                            "text" : "Toolbar Overflow",
                            "url" : "toolbar/overflow.html",
                            "icon" : "toolbar-overflow.gif",
                            "desc" : "Dynamic overflow of toolbar buttons into an Ext.menu.",
                            "status" : "new"
                        }, {
                            "text" : "Toolbar Button Groups",
                            "url" : "toolbar/toolbars.html",
                            "icon" : "toolbar-button-groups.gif",
                            "desc" : "Group buttons together in the toolbar.",
                            "status" : "new"
                        }, {
                            "text" : "Ext Actions",
                            "url" : "menu/actions.html",
                            "icon" : "toolbar-actions.gif",
                            "desc" : "Bind the same behavior to multiple buttons, toolbar and menu items using the Ext.Action class."
                        }, {
                            "text" : "Reorderable Toolbar",
                            "url" : "toolbar/reorderable.html",
                            "icon" : "toolbar-reorderable.png",
                            "desc" : "Items within a toolbar can be reordered using this plugin.",
                            "status" : "new"
                        }, {
                            "text" : "Droppable Toolbar",
                            "url" : "toolbar/droppable.html",
                            "icon" : "toolbar-droppable.png",
                            "desc" : "Items can be dropped onto a Toolbar and easily turned into items with this plugin.",
                            "status" : "new"
                        }, {
                            "text" : "Status Bar",
                            "url" : "statusbar/statusbar-demo.html",
                            "icon" : "statusbar-demo.gif",
                            "desc" : "A simple StatusBar that can be dropped into the bottom of any panel to display status text and icons.",
                            "status" : "updated"
                        }, {
                            "text" : "Status Bar (Advanced)",
                            "url" : "statusbar/statusbar-advanced.html",
                            "icon" : "statusbar-adv.gif",
                            "desc" : "Customizing the StatusBar via a plugin to provide automatic form validation monitoring and error linking.",
                            "status" : "updated"
                        }
                ]
            }, {
                "title" : "Templates and DataView",
                "items" : [
                        {
                            "text" : "Templates",
                            "url" : "core/templates.html",
                            "icon" : "templates.gif",
                            "desc" : "A simple example of rendering views from templates bound to data objects."
                        }, {
                            "text" : "DataView",
                            "url" : "view/data-view.html",
                            "icon" : "data-view.gif",
                            "desc" : "A basic DataView with custom plugins for editable labels and drag selection of items."
                        }, {
                            "text" : "DataView (advanced)",
                            "url" : "view/chooser.html",
                            "icon" : "chooser.gif",
                            "desc" : "A more customized DataView supporting sorting and filtering with multiple templates."
                        }, {
                            "text" : "ListView",
                            "url" : "view/list-view.html",
                            "icon" : "list-view.gif",
                            "desc" : "A high performance tabular DataView to be used as a lightweight grid.",
                            "status" : "new"
                        }, {
                            "text" : "Animated DataView",
                            "url" : "view/animated-dataview.html",
                            "icon" : "animated-dataview.png",
                            "desc" : "Transition animation plugin applied to a standard DataView",
                            "status" : "new"
                        }, {
                            "text" : "Multi-sort DataView",
                            "url" : "view/multisort-dataview.html",
                            "icon" : "multisort-dataview.png",
                            "desc" : "Example demonstrating the ability to sort a DataView by multiple sorters.",
                            "status" : "new"
                        }
                ]
            }, {
                "title" : "Drag and Drop",
                "items" : [
                        {
                            "text" : "Grid to Grid Drag and Drop",
                            "url" : "dd/dnd_grid_to_grid.html",
                            "icon" : "dd-gridtogrid.gif",
                            "desc" : "A simple drag and drop from grid to grid implementation."
                        }, {
                            "text" : "Grid to FormPanel Drag and Drop",
                            "url" : "dd/dnd_grid_to_formpanel.html",
                            "icon" : "dd-gridtoformpanel.gif",
                            "desc" : "A basic drag and drop from grid to formpanel."
                        }, {
                            "text" : "Field to Grid Drag and Drop",
                            "url" : "dd/field-to-grid-dd.html",
                            "icon" : "dd-fieldtogrid.gif",
                            "desc" : "Drag from a form field and drop on a grid.",
                            "status" : "new"
                        }, {
                            "text" : "Custom Drag and Drop",
                            "url" : "dd/dragdropzones.html",
                            "icon" : "dd-zones.gif",
                            "desc" : "Enabling drag and drop between a DataView and a grid using DragZone and DropZone extensions."
                        }
                ]
            }, {
                "title" : "Direct",
                "items" : [
                        {
                            "text" : "Direct",
                            "url" : "direct/direct.php",
                            "icon" : "direct.gif",
                            "desc" : "An example demonstrating Remoting and Polling the server",
                            "status" : "new"
                        }, {
                            "text" : "Direct Form",
                            "url" : "direct/direct-form.php",
                            "icon" : "direct.gif",
                            "desc" : "Ext.Direct Remoting with a Form",
                            "status" : "new"
                        }, {
                            "text" : "Direct TreeLoader",
                            "url" : "direct/direct-tree.php",
                            "icon" : "direct.gif",
                            "desc" : "Ext.Direct Remoting with a Tree",
                            "status" : "new"
                        }
                ]
            }, {
                "title" : "Miscellaneous",
                "items" : [
                        {
                            "text" : "History",
                            "url" : "history/history.html",
                            "icon" : "history.gif",
                            "desc" : "A History manager that allows the user to navigate an Ext UI via browser back/forward."
                        }, {
                            "text" : "Google Maps",
                            "url" : "window/gmap.html",
                            "icon" : "gmap-panel.gif",
                            "desc" : "A Google Maps wrapper class that enables easy display of dynamic maps in Ext panels and windows."
                        }, {
                            "text" : "Editor",
                            "url" : "simple-widgets/editor.html",
                            "icon" : "editor.gif",
                            "desc" : "An example demonstrating the ease of use of the Ext.editor class to modify DOM elements",
                            "status" : "new"
                        }, {
                            "text" : "Slider",
                            "url" : "slider/slider.html",
                            "icon" : "slider.gif",
                            "desc" : "A slider component that supports vertical mode, snapping, tooltips, customized styles and multiple thumbs.",
                            "status" : "updated"
                        }, {
                            "text" : "QuickTips",
                            "url" : "simple-widgets/qtips.html",
                            "icon" : "qtips.gif",
                            "desc" : "Various tooltip and quick tip configuration options including Ajax loading and mouse tracking.",
                            "status" : "updated"
                        }, {
                            "text" : "Progress Bar",
                            "url" : "simple-widgets/progress-bar.html",
                            "icon" : "progress.gif",
                            "desc" : "A basic progress bar component shown in various configurations and with custom styles."
                        }, {
                            "text" : "Panels",
                            "url" : "panel/panels.html",
                            "icon" : "panel.gif",
                            "desc" : "A basic collapsible panel example.",
                            "status" : "updated"
                        }, {
                            "text" : "Bubble Panel",
                            "url" : "panel/bubble-panel.html",
                            "icon" : "panel-bubble.gif",
                            "desc" : "An example illustrating customization of a standard panel.",
                            "status" : "new"
                        }, {
                            "text" : "Resizable",
                            "url" : "resizable/basic.html",
                            "icon" : "resizable.gif",
                            "desc" : "Examples of making any element resizable with various configuration options."
                        }, {
                            "text" : "Spotlight",
                            "url" : "core/spotlight.html",
                            "icon" : "spotlight.gif",
                            "desc" : "A utility for masking everything except a single element on the page to visually highlight it.",
                            "status" : "new"
                        }, {
                            "text" : "Buttons",
                            "url" : "button/buttons.html",
                            "icon" : "buttons.gif",
                            "desc" : "",
                            "status" : "new"
                        }, {
                            "text" : "Debugging Console",
                            "url" : "debug/debug-console.html",
                            "icon" : "debug-console.gif",
                            "desc" : "",
                            "status" : "new"
                        }, {
                            "text" : "Localization (static)",
                            "url" : "locale/dutch-form.html",
                            "icon" : "locale-dutch.gif",
                            "desc" : "Demonstrates fully localizing a form by including a custom locale script."
                        }, {
                            "text" : "Localization (dynamic)",
                            "url" : "locale/multi-lang.html",
                            "icon" : "locale-switch.gif",
                            "desc" : "Dynamically render various Ext components in different locales by selecting from a locale list."
                        }
                ]
            }
    ]

    examples.json for Ext 4:
    Code:
    [
            {
                "items" : [
                        {
                            "url" : "feed-viewer/feed-view.html",
                            "text" : "Feed Viewer",
                            "icon" : "feeds.gif",
                            "desc" : "RSS feed reader example application that features a swappable reader panel layout.",
                            "status" : "updated"
                        }, {
                            "url" : "desktop/desktop.html",
                            "text" : "Web Desktop",
                            "icon" : "desktop.gif",
                            "desc" : "Demonstrates how one could build a desktop in the browser using Ext components including a module plugin system.",
                            "status" : "updated"
                        }, {
                            "url" : "portal/portal.html",
                            "text" : "Portal Demo",
                            "icon" : "portal.gif",
                            "desc" : "A page layout using several custom extensions to provide a web portal interface.",
                            "status" : "updated"
                        }, {
                            "url" : "sandbox/sandbox.html",
                            "text" : "Ext JS 3 & 4 on one page",
                            "icon" : "sandbox.gif",
                            "desc" : "This example demonstrates Ext JS 4's sandboxing behavior which allows you to run Ext JS 3 & 4 on the same page.",
                            "status" : "new"
                        }, {
                            "url" : "organizer/organizer.html",
                            "text" : "Image Viewer",
                            "icon" : "organizer.gif",
                            "desc" : "DataView and TreePanel example that demonstrates dragging data items from a DataView into a TreePanel."
                        }, {
                            "url" : "themes/index.html",
                            "text" : "Theme Viewer",
                            "icon" : "themes.gif",
                            "desc" : "View and test every Ext component against bundled Ext themes."
                        }
                ],
                "title" : "Combination Examples"
            }, {
                "items" : [
                        {
                            "url" : "key-feed-viewer/feed-viewer.html",
                            "text" : "Keyboard Feed Viewer",
                            "icon" : "keyboard.gif",
                            "desc" : "Shows Ext JS 4's comprehensive keyboard support for users who have difficulty using a pointing device",
                            "status" : "new"
                        }, {
                            "url" : "form/form-grid-access.html",
                            "text" : "Binding a Grid to a Form",
                            "icon" : "form-grid-binding-access.gif",
                            "desc" : "A grid embedded within a FormPanel that uses the Accessibility theme."
                        }
                ],
                "title" : "Accessibility"
            }, {
                "items" : [
                        {
                            "url" : "grid/array-grid.html",
                            "text" : "Basic Array Grid",
                            "icon" : "grid-array.gif",
                            "desc" : "A basic read-only grid loaded from local array data that demonstrates the use of custom column renderer functions.",
                            "status" : "updated"
                        }, {
                            "url" : "grid/xml-grid.html",
                            "text" : "XML Grid",
                            "icon" : "grid-xml.gif",
                            "desc" : "A simple read-only grid loaded from XML data."
                        }, {
                            "url" : "grid/paging.html",
                            "text" : "Paging",
                            "icon" : "grid-paging.gif",
                            "desc" : "A grid with paging, cross-domain data loading and custom- rendered expandable row bodies."
                        }, {
                            "url" : "grid/sliding-pager.html",
                            "text" : "Sliding Pager",
                            "icon" : "slider-pager.gif",
                            "desc" : "A demonstration on the integration of the Slider with the Paging Toolbar using a custom plugin."
                        }, {
                            "url" : "grid/groupgrid.html",
                            "text" : "Grouping",
                            "icon" : "grid-grouping.gif",
                            "desc" : "A basic grouping grid showing collapsible data groups that can be customized via the 'Group By' header menu option."
                        }, {
                            "url" : "grid/grid-plugins.html",
                            "text" : "Grid Plugins",
                            "icon" : "grid-plugins.gif",
                            "desc" : "Multiple grids customized via plugins: expander rows, checkbox selection and row numbering."
                        }, {
                            "url" : "grid-filtering/grid-filter-local.html",
                            "text" : "Grid Filtering",
                            "icon" : "grid-filter.gif",
                            "desc" : "Grid feature providing custom data filtering menus that support various data types.",
                            "status" : "updated"
                        }, {
                            "url" : "grid/binding.html",
                            "text" : "Grid Data Binding (basic)",
                            "icon" : "grid-data-binding.gif",
                            "desc" : "Data binding a grid to a detail preview panel via the grid\"s RowSelectionModel."
                        }, {
                            "url" : "grid/binding-with-classes.html",
                            "text" : "Grid Data Binding (advanced)",
                            "icon" : "grid-data-binding.gif",
                            "desc" : "Refactoring the basic data binding example to use a class-based application design model."
                        }, {
                            "url" : "grid/multiple-sorting.html",
                            "text" : "Multiple Sorting",
                            "icon" : "grid-multiple-sorting.gif",
                            "desc" : "An example that shows multi-level sorting in a Grid Panel."
                        }, {
                            "url" : "grid/cell-editing.html",
                            "text" : "Grid Cell Editing",
                            "icon" : "grid-cell-editing.gif",
                            "desc" : "An example that shows cell editing in a Grid Panel.",
                            "status" : "updated"
                        }, {
                            "url" : "grid/group-header-grid.html",
                            "text" : "Grouped Header Grid",
                            "icon" : "grid-grouped-headers.gif",
                            "desc" : "A basic grouping grid showing collapsible data groups that can be customized via the 'Group By' header menu option.",
                            "status" : "updated"
                        }, {
                            "url" : "grid/group-summary-grid.html",
                            "text" : "Grid Grouping with Summary",
                            "icon" : "grid-summary.gif",
                            "desc" : "Advanced grouping grid that allows cell editing and includes custom dynamic summary calculations.",
                            "status" : "updated"
                        }, {
                            "url" : "grid/infinite-scroll.html",
                            "text" : "Infinite Grid",
                            "icon" : "grid-infinite-scroll.gif",
                            "desc" : "Sample grid which scrolls through thousands of rows dynamically loaded from a server",
                            "status" : "new"
                        }, {
                            "url" : "grid/live-search-grid.html",
                            "text" : "Grid with Live Search Capability",
                            "icon" : "grid-live-search.gif",
                            "desc" : "Grid with Live Search Capability.",
                            "status" : "new"
                        }, {
                            "url" : "grid/locking-grid.html",
                            "text" : "Grid with Locking Capability",
                            "icon" : "grid-locking.gif",
                            "desc" : "An example extension that introduces the ability to add locking columns to the GridPanel.",
                            "status" : "updated"
                        }, {
                            "url" : "grid/remote-group-summary-grid.html",
                            "text" : "Grouping with Remote Summary",
                            "icon" : "grid-group-summaries.gif",
                            "desc" : "Advanced grouping grid that allows cell editing and includes remotely loaded dynamic summary calculations."
                        }, {
                            "url" : "grid/row-editing.html",
                            "text" : "Grid Row Editing",
                            "icon" : "grid-row-editor.gif",
                            "desc" : "An editable grid which allows the user to make modifications to an entire record at once.",
                            "status" : "updated"
                        }, {
                            "url" : "restful/restful.html",
                            "text" : "RESTful Store with GridPanel and RowEditor",
                            "icon" : "grid-row-editor.gif",
                            "desc" : "A RESTful Store with JsonWriter which automatically generates CRUD requests to the server."
                        }, {
                            "url" : "writer/writer.html",
                            "text" : "Editable Grid with Writable Store",
                            "icon" : "writer-thumb.gif",
                            "desc" : "This Store uses Data's writer to automatically generate CRUD requests to the server through a standard HttpProxy."
                        }, {
                            "url" : "grid/buffer-grid.html",
                            "text" : "Buffered Scrolling",
                            "icon" : "buffer-grid.gif",
                            "desc" : "The new grid uses a virtualized scrolling system to handle potentially infinite data sets without any impact on client side performance.",
                            "status" : "updated"
                        }, {
                            "url" : "grid/list-view.html",
                            "text" : "List View",
                            "icon" : "list-view.gif",
                            "desc" : "Ext 4 replaces Ext.ListView with the default Ext.grid.Panel.",
                            "status" : "updated"
                        }, {
                            "url" : "grid/progress-bar-pager.html",
                            "text" : "Progress Bar Pager",
                            "icon" : "progress-bar-pager.gif",
                            "desc" : "Progress Bar Pager Extension."
                        }, {
                            "url" : "grid/property.html",
                            "text" : "Property Grid",
                            "icon" : "grid-property.gif",
                            "desc" : "Create a property grid from an object."
                        }, {
                            "url" : "grid/transform-dom.html",
                            "text" : "Grid From Markup",
                            "icon" : "grid-transform.gif",
                            "desc" : "Create a grid with from an existing, unformatted HTML table."
                        }
                ],
                "title" : "Grids"
            }, {
                "items" : [
                        {
                            "url" : "charts/Area.html",
                            "text" : "Area Charts",
                            "icon" : "chart-area.gif",
                            "desc" : "Display 7 sets of random data in an area series. Reload data will randomly generate a new set of data in the store.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Area - BrowserStats.html",
                            "text" : "Custom Area Charts",
                            "icon" : "area-browsers.gif",
                            "desc" : "Display browser usage trends in an area series. This chart uses custom gradients for the colors and the legend is interactive.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Bar.html",
                            "text" : "Bar Charts",
                            "icon" : "chart-bar.gif",
                            "desc" : "Display a sets of random data in a bar series. Reload data will randomly generate a new set of data in the store.",
                            "status" : "new"
                        }, {
                            "url" : "charts/BarRenderer.html",
                            "text" : "Custom Bar Charts",
                            "icon" : "chart-bar-renderer.gif",
                            "desc" : "Displaying a horizontal bar series with a bar renderer that modifies the color of each bar.",
                            "status" : "new"
                        }, {
                            "url" : "charts/FormDashboard.html",
                            "text" : "Complex Dashboard",
                            "icon" : "form-dashboard.gif",
                            "desc" : "Showing companies information in a complex dashboard. Edit the information for each record in the form to see live updates in the charts and grid.",
                            "status" : "new"
                        }, {
                            "url" : "charts/TipsChart.html",
                            "text" : "Rich Tips",
                            "icon" : "rich-tips.gif",
                            "desc" : "Showing a line series with rich tips. Tips show dynamic information in Grid and Pie chart components.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Charts.html",
                            "text" : "Themed Line Charts",
                            "icon" : "chart-themed.gif",
                            "desc" : "Using 3.x theme. Displaying multiple charts and mixed charts with mouse over and click interaction.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Column.html",
                            "text" : "Column Charts",
                            "icon" : "chart-column.gif",
                            "desc" : "Display a set of random data in a column series. Reload data will randomly generate a new set of data in the store.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Line.html",
                            "text" : "Line Charts",
                            "icon" : "chart-line.gif",
                            "desc" : "Display 2 sets of random data in a line series. Reload data will randomly generate a new set of data in the store.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Column2.html",
                            "text" : "Column Custom Background",
                            "icon" : "column2.gif",
                            "desc" : "A Column chart with customized theme and animation transitions",
                            "status" : "new"
                        }, {
                            "url" : "charts/Mixed.html",
                            "text" : "Mixed Series Chart",
                            "icon" : "chart-mixed.gif",
                            "desc" : "Display 3 sets of random data using a line, bar, and scatter series. Reload data will randomly generate a new set of data in the store.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Pie.html",
                            "text" : "Pie Charts",
                            "icon" : "chart-pie.gif",
                            "desc" : "Display 5 sets of random data using a pie chart. Reload data will randomly generate a new set of data in the store.",
                            "status" : "new"
                        }, {
                            "url" : "charts/PieRenderer.html",
                            "text" : "Custom Pie Charts",
                            "icon" : "chart-pie-renderer.gif",
                            "desc" : "Display 5 sets of random data using a pie chart. A renderer has been set up on to dynamically change the length and color of each slice based on the data.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Radar.html",
                            "text" : "Radar Charts",
                            "icon" : "chart-radar.gif",
                            "desc" : "Display 3 sets of random data in a radar series. Note this example uses a radial axis.",
                            "status" : "new"
                        }, {
                            "url" : "charts/RadarFill.html",
                            "text" : "Filled Radar Charts",
                            "icon" : "chart-radar-fill.gif",
                            "desc" : "Display 3 sets of random data in a filled radar series. Click or hover on the legend items to highlight and remove them from the chart.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Scatter - Renderer.html",
                            "text" : "Scatter Charts",
                            "icon" : "chart-scatter.gif",
                            "desc" : "Display 2 sets of random data in a scatter series. A renderer has been set up on to dynamically change the size and color of the items based upon it's data.",
                            "status" : "new"
                        }, {
                            "url" : "charts/StackedBar.html",
                            "text" : "Stacked Bar Charts",
                            "icon" : "chart-bar-stacked.gif",
                            "desc" : "Showing movie taking by genre as a stacked bar chart sample. Filter the stacks by clicking on the legend items.",
                            "status" : "new"
                        }, {
                            "url" : "charts/LiveUpdates.html",
                            "text" : "Live Updated Chart",
                            "icon" : "live-updated.gif",
                            "desc" : "Showing a line series with data updating at a regular interval.",
                            "status" : "new"
                        }, {
                            "url" : "charts/LiveAnimated.html",
                            "text" : "Live Animated Chart",
                            "icon" : "live-animated.gif",
                            "desc" : "Showing a line series with smooth transitions on data updating at regular intervals.",
                            "status" : "new"
                        }, {
                            "url" : "charts/Gauge.html",
                            "text" : "Gauge Chart",
                            "icon" : "gauge.gif",
                            "desc" : "Display three custom gauge charts bound to different data stores with different configuration options and easings.",
                            "status" : "new"
                        }, {
                            "url" : "charts/GroupedBar.html",
                            "text" : "Grouped Bar",
                            "icon" : "grouped-bar.gif",
                            "desc" : "Display 3 sets of random data in a grouped bar series.",
                            "status" : "new"
                        }, {
                            "url" : "charts/ReloadChart.html",
                            "text" : "Reload Chart",
                            "icon" : "reload-chart.gif",
                            "desc" : "Display a Column Chart Sample that animates when refreshing the data set",
                            "status" : "new"
                        }
                ],
                "title" : "Charts"
            }, {
                "items" : [
                        {
                            "url" : "tabs/tabs.html",
                            "text" : "Basic Tabs",
                            "icon" : "tabs.gif",
                            "desc" : "Basic tab functionality including autoHeight, tabs from markup, Ajax loading and tab events."
                        }, {
                            "url" : "tabs/tabs-adv.html",
                            "text" : "Advanced Tabs",
                            "icon" : "tabs-adv.gif",
                            "desc" : "Advanced tab features including tab scrolling, adding tabs programmatically and a context menu plugin."
                        }, {
                            "url" : "tabs/tab-scroller-menu.html",
                            "text" : "Tab overflow menu",
                            "icon" : "tabs-adv.gif",
                            "desc" : "Demonstrates the TabPanel overflow menu extension, which makes management of large numbers of tabs easier",
                            "status" : "updated"
                        }
                ],
                "title" : "Tabs"
            }, {
                "items" : [
                        {
                            "url" : "window/window.html",
                            "text" : "Window Variations",
                            "icon" : "window-layout.gif",
                            "desc" : "A collection of Windows in different configurations, showing headers attached to any side of the window.",
                            "status" : "new"
                        }, {
                            "url" : "window/layout.html",
                            "text" : "Layout Window",
                            "icon" : "window.gif",
                            "desc" : "A window containing a basic BorderLayout with nested TabPanel."
                        }, {
                            "url" : "message-box/msg-box.html",
                            "text" : "MessageBox",
                            "icon" : "msg-box.gif",
                            "desc" : "Different styles include confirm, alert, prompt, progress and wait and also support custom icons."
                        }
                ],
                "title" : "Windows"
            }, {
                "items" : [
                        {
                            "url" : "tree/reorder.html",
                            "text" : "Drag and Drop Reordering",
                            "icon" : "tree-reorder.gif",
                            "desc" : "A TreePanel loaded asynchronously via a JSON TreeLoader that shows drag and drop with container scroll."
                        }, {
                            "url" : "tree/two-trees.html",
                            "text" : "Multiple trees",
                            "icon" : "tree-two.gif",
                            "desc" : "Drag and drop between two different sorted TreePanels."
                        }, {
                            "url" : "tree/treegrid.html",
                            "text" : "TreeGrid",
                            "icon" : "tree-columns.gif",
                            "desc" : "The TreeGrid component",
                            "status" : "updated"
                        }, {
                            "url" : "tree/check-tree.html",
                            "text" : "Check Tree",
                            "icon" : "tree-check.gif",
                            "desc" : "An example showing simple checkbox selection in a tree."
                        }, {
                            "url" : "tree/xml-tree.html",
                            "text" : "XML Tree",
                            "icon" : "tree-xml-loader.gif",
                            "desc" : "A custom TreeLoader implementation that demonstrates loading a tree from an XML document."
                        }
                ],
                "title" : "Trees"
            }, {
                "items" : [
                        {
                            "url" : "layout-browser/layout-browser.html",
                            "text" : "Layout Browser",
                            "icon" : "layout-browser.gif",
                            "desc" : "Comprehensive showcase of the standard layout managers as well as several custom and combination layouts and combination examples."
                        }, {
                            "url" : "layout/border.html",
                            "text" : "Border Layout",
                            "icon" : "border-layout.gif",
                            "desc" : "A complex BorderLayout implementation that shows nesting multiple components and sub-layouts.",
                            "status" : "updated"
                        }, {
                            "url" : "layout/accordion.html",
                            "text" : "Accordion Layout",
                            "icon" : "layout-accordion.gif",
                            "desc" : "A basic accordion layout within a border layout."
                        }, {
                            "url" : "form/anchoring.html",
                            "text" : "Anchor Layout (Form)",
                            "icon" : "layout-form.gif",
                            "desc" : "A simple example of form fields utilizing an anchor layout in a window for flexible form resizing."
                        }, {
                            "url" : "layout/anchor.html",
                            "text" : "Anchor Layout (Panel)",
                            "icon" : "layout-anchor.gif",
                            "desc" : "An example of Panels anchored in the browser window."
                        }, {
                            "url" : "layout/column.html",
                            "text" : "Column Layout",
                            "icon" : "layout-column.gif",
                            "desc" : "An example of Panels managed by a column layout."
                        }, {
                            "url" : "layout/table.html",
                            "text" : "Table Layout",
                            "icon" : "layout-table.gif",
                            "desc" : "An example of Panels managed by a table layout."
                        }, {
                            "url" : "layout/hbox.html",
                            "text" : "HBox Layout",
                            "icon" : "layout-column.gif",
                            "desc" : "Interactive layout illustrating the capabilities of the HBox Layout."
                        }, {
                            "url" : "layout/vbox.html",
                            "text" : "VBox Layout",
                            "icon" : "layout-vbox.gif",
                            "desc" : "Interactive layout illustrating the capabilities of the VBox Layout."
                        }, {
                            "url" : "layout/complex.html",
                            "text" : "Complex Layout",
                            "icon" : "complex-layout.gif",
                            "desc" : "A complex layout example.",
                            "status" : "updated"
                        }
                ],
                "title" : "Layout Managers"
            }, {
                "items" : [
                        {
                            "url" : "draw/Sencha.html",
                            "text" : "Resizable Sencha Logo",
                            "icon" : "draw-sencha.gif",
                            "desc" : "Resolution independent Sencha logo in a resizable component.",
                            "status" : "new"
                        }, {
                            "url" : "draw/Logos.html",
                            "text" : "Browser Logos",
                            "icon" : "draw-logos.gif",
                            "desc" : "Resolution independent logos of all the popular browsers.",
                            "status" : "new"
                        }, {
                            "url" : "draw/Tiger.html",
                            "text" : "Tiger",
                            "icon" : "draw-tiger.gif",
                            "desc" : "The classic SVG Tiger in a floatable, draggable component. Scalable to any size, fully resolution independent.",
                            "status" : "new"
                        }, {
                            "url" : "draw/Rotate Text.html",
                            "text" : "Rotate Text",
                            "icon" : "draw-rotate-text.gif",
                            "desc" : "Create text in a Draw Component which can be rotated easily in any browser.",
                            "status" : "new"
                        }
                ],
                "title" : "Drawing"
            }, {
                "items" : [
                        {
                            "url" : "dd/dnd_grid_to_grid.html",
                            "text" : "Grid to Grid DnD",
                            "icon" : "dd-gridtogrid.gif",
                            "desc" : "Shows how rows can be easily dragged and dropped between two or more grids"
                        }, {
                            "url" : "dd/dnd_grid_to_formpanel.html",
                            "text" : "Grid to Form DnD",
                            "icon" : "dd-gridtoformpanel.gif",
                            "desc" : "Enables a user to drag a record from a grid and drop it into a form, where it can be edited"
                        }, {
                            "url" : "dd/field-to-grid-dd.html",
                            "text" : "Field to Grid DnD",
                            "icon" : "dd-fieldtogrid.gif",
                            "desc" : "Demonstrates dragging a value from a field onto a grid cell"
                        }, {
                            "url" : "dd/dragdropzones.html",
                            "text" : "Custom Drag and Drop",
                            "icon" : "dd-zones.gif",
                            "desc" : "A completely custom Drag and Drop example showing DnD between a DataView and a grid"
                        }
                ],
                "title" : "Drag and Drop"
            }, {
                "items" : [
                        {
                            "url" : "menu/menus.html",
                            "text" : "Basic Toolbar",
                            "icon" : "toolbar.gif",
                            "desc" : "Toolbar and menus that contain various components like date pickers, color pickers, sub-menus and more.",
                            "status" : "updated"
                        }, {
                            "url" : "toolbar/toolbars.html",
                            "text" : "Toolbar Button Groups",
                            "icon" : "toolbar-button-groups.gif",
                            "desc" : "Group buttons together in the toolbar."
                        }, {
                            "url" : "toolbar/vertical-toolbars.html",
                            "text" : "Vertical Toolbars",
                            "icon" : "toolbar.gif",
                            "desc" : "Vertical Toolbars on the left and right. Combined vertical and horizontal toolbars.",
                            "status" : "new"
                        }, {
                            "url" : "menu/action-grid.html",
                            "text" : "Ext Grid Actions",
                            "icon" : "actions-grid.gif",
                            "desc" : "Bind the same behavior to multiple buttons, toolbar and menu items using the Ext.Action class.",
                            "status" : "updated"
                        }, {
                            "url" : "toolbar/reorderable.html",
                            "text" : "Reorderable Toolbar",
                            "icon" : "toolbar-reorderable.png",
                            "desc" : "Items within a toolbar can be reordered using this plugin."
                        }, {
                            "url" : "toolbar/overflow.html",
                            "text" : "Overflow Toolbar",
                            "icon" : "toolbar-reorderable.png",
                            "desc" : "Items within a toolbar will be placed into an overflow menu if the toolbar is too narrow."
                        }, {
                            "url" : "statusbar/statusbar-demo.html",
                            "text" : "Status Bar",
                            "icon" : "statusbar-demo.gif",
                            "desc" : "A simple StatusBar that can be dropped into the bottom of any panel to display status text and icons."
                        }, {
                            "url" : "statusbar/statusbar-advanced.html",
                            "text" : "Status Bar (Advanced)",
                            "icon" : "statusbar-adv.gif",
                            "desc" : "Customizing the StatusBar via a plugin to provide automatic form validation monitoring and error linking."
                        }, {
                            "url" : "menu/actions.html",
                            "text" : "Ext Toolbar Actions",
                            "icon" : "actions.gif",
                            "desc" : "Bind the same behavior to multiple buttons, toolbar and menu items using the Ext.Action class."
                        }
                ],
                "title" : "Toolbars and Menus"
            }, {
                "items" : [
                        {
                            "url" : "form/combos.html",
                            "text" : "Basic ComboBox",
                            "icon" : "combo.gif",
                            "desc" : "Basic combos, combos rendered from markup and customized list layout to provide item tooltips."
                        }, {
                            "url" : "form/forum-search.html",
                            "text" : "ComboBox Templates",
                            "icon" : "combo-custom.gif",
                            "desc" : "Customized combo with template-based list rendering, remote loading and paging."
                        }
                ],
                "title" : "ComboBox"
            }, {
                "items" : [
                        {
                            "url" : "view/data-view.html",
                            "text" : "DataView",
                            "icon" : "data-view.gif",
                            "desc" : "This example shows how to use an Ext.view.View",
                            "status" : "updated"
                        }, {
                            "url" : "view/animated-dataview.html",
                            "text" : "Animated DataView",
                            "icon" : "animated-dataview.png",
                            "desc" : "Transition animation plugin applied to a standard DataView"
                        }, {
                            "url" : "view/multisort/multisort.html",
                            "text" : "Multi-sort DataView",
                            "icon" : "multisort-dataview.png",
                            "desc" : "Example demonstrating the ability to sort a DataView by multiple sorters."
                        }, {
                            "url" : "view/chooser/chooser.html",
                            "text" : "Advanced DataView",
                            "icon" : "advanced-dataview.png",
                            "desc" : "DataView which allows you to filter and sort images."
                        }
                ],
                "title" : "DataView"
            }, {
                "items" : [
                        {
                            "url" : "form/dynamic.html",
                            "text" : "Dynamic Forms",
                            "icon" : "form-dynamic.gif",
                            "desc" : "Various example forms showing collapsible fieldsets, column layout, nested TabPanels and more."
                        }, {
                            "url" : "form/xml-form.html",
                            "text" : "Ajax with XML Forms",
                            "icon" : "form-xml.gif",
                            "desc" : "Ajax-loaded form fields from remote XML data and remote field validation on submit."
                        }, {
                            "url" : "form/contact-form.html",
                            "text" : "Contact Us Form",
                            "icon" : "form-contact.gif",
                            "desc" : "An example of a common popup Contact Us form.",
                            "status" : "new"
                        }, {
                            "url" : "form/forum-search.html",
                            "text" : "Custom Search Fields",
                            "icon" : "form-custom.gif",
                            "desc" : "A TriggerField search extension combined with an XTemplate for custom results rendering."
                        }, {
                            "url" : "form/form-grid.html",
                            "text" : "Binding a Grid to a Form",
                            "icon" : "form-grid-binding.gif",
                            "desc" : "A grid embedded within a FormPanel that automatically loads records into the form on row selection.",
                            "status" : "updated"
                        }, {
                            "url" : "form/field-types.html",
                            "text" : "Field Types",
                            "icon" : "form-field-types.gif",
                            "desc" : "This example shows off all of the field types available in Ext JS in lots of different configurations.",
                            "status" : "updated"
                        }, {
                            "url" : "form/adv-vtypes.html",
                            "text" : "Advanced Validation",
                            "icon" : "form-adv-vtypes.gif",
                            "desc" : "Relational form field validation using custom vtypes."
                        }, {
                            "url" : "form/check-radio.html",
                            "text" : "Checkbox/Radio Groups",
                            "icon" : "form-check-radio.gif",
                            "desc" : "Examples showing different checkbox and radio group configurations."
                        }, {
                            "url" : "form/file-upload.html",
                            "text" : "File Upload Field",
                            "icon" : "form-file-upload.gif",
                            "desc" : "A demo of how to give standard file upload fields a bit of Ext style using a custom class.",
                            "status" : "updated"
                        }, {
                            "url" : "form/number.html",
                            "text" : "Number Field",
                            "icon" : "form-spinner.gif",
                            "desc" : "An example of the Number field, with and without a spinner.",
                            "status" : "updated"
                        }, {
                            "url" : "multiselect/multiselect-demo.html",
                            "text" : "MultiSelect and ItemSelector",
                            "icon" : "form-multiselect.gif",
                            "desc" : "Example controls for selecting a list of items in forms.",
                            "status" : "updated"
                        }, {
                            "url" : "form/registration.html",
                            "text" : "Registration Form",
                            "icon" : "form-registration.gif",
                            "desc" : "An account registration form, with custom global error message display.",
                            "status" : "new"
                        }, {
                            "url" : "form/checkout.html",
                            "text" : "Shopping Cart Checkout",
                            "icon" : "form-checkout.gif",
                            "desc" : "An example of a common shopping cart checkout form.",
                            "status" : "new"
                        }, {
                            "url" : "slider/slider-field.html",
                            "text" : "Slider Field",
                            "icon" : "form-slider.png",
                            "desc" : "Example usage of an Ext.Slider to select a number value in a form."
                        }, {
                            "url" : "form/vbox-form.html",
                            "text" : "Forms with vBox layout",
                            "icon" : "form-vbox.gif",
                            "desc" : "Example usage of the vBox layout with forms. An added bonus is the FieldReplicator plugin.",
                            "status" : "new"
                        }, {
                            "url" : "form/hbox-form.html",
                            "text" : "Forms with hBox layout",
                            "icon" : "form-hbox.gif",
                            "desc" : "Example usage of the hBox layout with a form. Includes automatically adjusting validation messages.",
                            "status" : "new"
                        }, {
                            "url" : "form/fieldcontainer.html",
                            "text" : "Field Containers",
                            "icon" : "form-fieldcontainer.png",
                            "desc" : "Example usage of the FieldContainer to place several fields on a single form row.",
                            "status" : "new"
                        }, {
                            "url" : "form/absform.html",
                            "text" : "Form with absolute layout",
                            "icon" : "form-absolute.gif",
                            "desc" : "A simple example of form fields utilizing an absolute layout in a window for flexible form resizing.",
                            "status" : "new"
                        }, {
                            "url" : "form/custom-form.html",
                            "text" : "Custom form Field",
                            "icon" : "form-custom.gif",
                            "desc" : "A simple example that demonstrate how to create a custom form field.",
                            "status" : "new"
                        }
                ],
                "title" : "Forms"
            }, {
                "items" : [
                        {
                            "url" : "direct/direct.html",
                            "text" : "Direct",
                            "icon" : "direct.gif",
                            "desc" : "An example demonstrating Remoting and Polling the server"
                        }, {
                            "url" : "direct/direct-form.html",
                            "text" : "Direct Form",
                            "icon" : "direct.gif",
                            "desc" : "Ext.Direct Remoting with a Form"
                        }, {
                            "url" : "direct/direct-grid.html",
                            "text" : "Direct Grid",
                            "icon" : "direct.gif",
                            "desc" : "Ext.Direct Remoting with a Grid"
                        }, {
                            "url" : "direct/direct-tree.html",
                            "text" : "Direct TreeLoader",
                            "icon" : "direct.gif",
                            "desc" : "Ext.Direct Remoting with a Tree",
                            "status" : "new"
                        }, {
                            "url" : "direct/named-arguments.html",
                            "text" : "Direct Named Arguments",
                            "icon" : "direct.gif",
                            "desc" : "Ext.Direct Named Arguments",
                            "status" : "new"
                        }
                ],
                "title" : "Direct"
            }, {
                "items" : [
                        {
                            "url" : "app/feed-viewer/feed-viewer.html",
                            "text" : "Feed Viewer",
                            "icon" : "feeds.gif",
                            "desc" : "An MVC application version of the Feed Viewer example. This shows best practice for a small app",
                            "status" : "new"
                        }, {
                            "url" : "app/nested-loading/nested-loading.html",
                            "text" : "Nested Loading",
                            "icon" : "nested-loading.gif",
                            "desc" : "An MVC example that shows simple navigation and nested loading with the data package",
                            "status" : "new"
                        }
                ],
                "title" : "MVC"
            }, {
                "items" : [
                        {
                            "url" : "history/history.html",
                            "text" : "History",
                            "icon" : "history.gif",
                            "desc" : "A History manager that allows the user to navigate an Ext UI via browser back/forward."
                        }, {
                            "url" : "window/gmap.html",
                            "text" : "Google Maps",
                            "icon" : "gmap-panel.gif",
                            "desc" : "A Google Maps wrapper class that enables easy display of dynamic maps in Ext panels and windows."
                        }, {
                            "url" : "simple-widgets/editor.html",
                            "text" : "Editor",
                            "icon" : "editor.gif",
                            "desc" : "An example demonstrating the ease of use of the Ext.editor class to modify DOM elements"
                        }, {
                            "url" : "slider/slider.html",
                            "text" : "Slider",
                            "icon" : "slider.gif",
                            "desc" : "A slider component that supports vertical mode, snapping, tooltips, customized styles and multiple thumbs.",
                            "status" : "updated"
                        }, {
                            "url" : "qtips/qtips.html",
                            "text" : "QuickTips",
                            "icon" : "qtips.gif",
                            "desc" : "Various tooltip and quick tip configuration options including Ajax loading and mouse tracking.",
                            "status" : "updated"
                        }, {
                            "url" : "simple-widgets/progress-bar.html",
                            "text" : "Progress Bar",
                            "icon" : "progress.gif",
                            "desc" : "A basic progress bar component shown in various configurations and with custom styles."
                        }, {
                            "url" : "panel/panel.html",
                            "text" : "Panels",
                            "icon" : "panel.gif",
                            "desc" : "A basic collapsible panel example.",
                            "status" : "updated"
                        }, {
                            "url" : "resizer/basic.html",
                            "text" : "Resizable",
                            "icon" : "resizable.gif",
                            "desc" : "Examples of making any element resizable with various configuration options."
                        }, {
                            "url" : "button/button.html",
                            "text" : "Buttons",
                            "icon" : "buttons.gif",
                            "desc" : "Shows buttons in many of their possible configurations"
                        }, {
                            "url" : "core/spotlight.html",
                            "text" : "Spotlight",
                            "icon" : "spotlight.gif",
                            "desc" : "A utility for masking everything except a single element on the page to visually highlight it."
                        }, {
                            "url" : "keynav/keynav.html",
                            "text" : "Keyboard Navigation",
                            "icon" : "keyboard.gif",
                            "desc" : "Shows a custom keyboard navigation using the KeyNav class",
                            "status" : "new"
                        }, {
                            "url" : "locale/dutch-form.html",
                            "text" : "Localization (static)",
                            "icon" : "locale-dutch.gif",
                            "desc" : "Demonstrates fully localizing a form by including a custom locale script."
                        }, {
                            "url" : "locale/multi-lang.html",
                            "text" : "Localization (dynamic)",
                            "icon" : "locale-switch.gif",
                            "desc" : "Dynamically render various Ext components in different locales by selecting from a locale list."
                        }, {
                            "url" : "state/state.html",
                            "text" : "Browser State Management",
                            "icon" : "state-saving.gif",
                            "desc" : "An example of storing your application's state.",
                            "status" : "new"
                        }, {
                            "url" : "platform/templates.html",
                            "text" : "Basic Templating",
                            "icon" : "templates.gif",
                            "desc" : "A basic templating example."
                        }, {
                            "url" : "panel/bubble-panel/bubble-panel.html",
                            "text" : "Bubble Panel",
                            "icon" : "panel-bubble.gif",
                            "desc" : "This is a custom panel UI to achieve a different look and feel while not changing the default appearance of an Ext.Panel.",
                            "status" : "updated"
                        }
                ],
                "title" : "Miscellaneous"
            }
    ]
    Enjoy and thanks for this amazing JSDoc generator!

  8. #48
    Sencha User SimoAmi's Avatar
    Join Date
    Oct 2008
    Location
    New York
    Posts
    119
    Vote Rating
    3
    SimoAmi will become famous soon enough

      0  

    Default


    The following error is not helpful, especially when dealing with long files.

    Can you modify the throw statement in js_literal_parser.rb so that the user gets a better hint at where the look/match is failing. Any or all of the following would be helpful:

    - Line Number: 120
    - Source File: extensions/uxChartPack213/uxchart.js
    - Match Type: Function
    - Error message: Expected token "(". Found token "a"

    Maven has a nice way of marking lines with errors such as:
    Code:
    [jsduck] function a() {
    [jsduck]          ^
    Code:
    Parsing extensions/uxChartPack213/uxchart.js...
    /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/js_literal_parser.rb:97:in `throw': uncaught throw `Expected: (' (NameError)
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/js_literal_parser.rb:97:in `match'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/js_parser.rb:111:in `function_parameters'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/js_parser.rb:104:in `function'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/js_parser.rb:162:in `expression'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/js_parser.rb:136:in `maybe_assignment'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/js_parser.rb:90:in `code_block'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/js_parser.rb:61:in `parse'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/source_file.rb:86:in `parse'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/source_file.rb:27:in `initialize'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/app.rb:100:in `new'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/app.rb:100:in `parallel_parse'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:271:in `call'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:271:in `call_with_index'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:209:in `process_incoming_jobs'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:187:in `worker'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:180:in `fork'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:180:in `worker'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:165:in `create_workers'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:164:in `each'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:164:in `create_workers'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:128:in `work_in_processes'
        from /Library/Ruby/Gems/1.8/gems/parallel-0.5.11/lib/parallel.rb:57:in `map'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/parallel_wrap.rb:26:in `map'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/app.rb:98:in `parallel_parse'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/lib/jsduck/app.rb:45:in `run'
        from /Library/Ruby/Gems/1.8/gems/jsduck-3.2.1/bin/jsduck:26
        from /usr/bin/jsduck:19:in `load'
        from /usr/bin/jsduck:19
    PS. I'm using jsduck for ext3.4.0 and other 3rd party extensions.

    Thanks,

  9. #49
    Sencha User SimoAmi's Avatar
    Join Date
    Oct 2008
    Location
    New York
    Posts
    119
    Vote Rating
    3
    SimoAmi will become famous soon enough

      0  

    Default


    The LovCombo package (Ext.ux.util.js) fails for the block below:

    PHP Code:
    /** * Same as {@link Ext#override} but overrides only if method does not exist in the target class
     * @member Ext
     * @param {Object} origclass
     * @param {Object} overrides
     */
    Ext.overrideIf 'function' === typeof Ext.overrideIf Ext.overrideIf : function(origclassoverrides) {
        if(
    overrides) {
            var 
    origclass.prototype;
            for(var 
    method in overrides) {
                if(!
    p[method]) {
                    
    p[method] = overrides[method];
                }
            }
        }
    }; 
    Definitely not the best syntax. Any suggestions?

  10. #50
    Sencha User renku's Avatar
    Join Date
    Feb 2009
    Location
    Estonia
    Posts
    437
    Vote Rating
    17
    renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold

      0  

    Default


    That's definitely a bug in JSDuck. Sure, the error message could be better, but it's something you'll see when things go horribly wrong, like in this case. I'll get that fixed up.

    In the mean time, simply wrapping the expression in parenthesis should avoid the crash:

    Ext.overrideIf = ('function' === typeof Ext.overrideIf) ? Ext.overrideIf : ...