ExtJS

Products

 * http://www.feyasoft.com/

Examples

 * http://www.sencha.com/examples/explorer.html#overview
 * http://www.sencha.com/products/extgwt/examples/

Unfiled

 * http://ww.extjs.com/learn/Ext_2_to_3_Migration_Guide
 * http://www.sencha.com/learn/index.php?title=Main_Page
 * http://www.sencha.com/forum/showthread.php?18632-Grid-GroupSummary
 * http://dev.sencha.com/deploy/dev/examples/grid/totals.html
 * http://www.sencha.com/forum/showthread.php?54789-Position-Anchor-Layout-(anchor-your-component-s-position-and-size-to-their-container)
 * http://stackoverflow.com/questions/725613/extjs-add-single-click-action-to-a-node-in-a-treepanel
 * http://www.ext4yii.com/doc/pages/tutorial-working-with-borderlayout.html
 * http://www.sencha.com/learn/Ext_2_Overview

Unfiled 2

 * http://www.extensions.extjs.com/learn/Tutorial:Using_Ext_Grid_with_Ruby_on_Rails
 * http://www.fusioncube.net/index.php/replacing-data-in-extjs-grid-store
 * http://www.pam.org/CFIDE/scripts/ajax/ext/docs/output/TreeSelectionModel.jss.html
 * http://stackoverflow.com/questions/3554860/update-content-of-one-window-on-event-in-other-window-with-extjs
 * http://www.sencha.com/forum/archive/index.php/t-10737.html

Extending

 * http://northsideofthemoon.net/blog/2009/07/07/making-an-ext-panel-act-as-a-window-part-2/

Java

 * http://www.sencha.com/learn/Tutorial:Using_Ext_grid_form_dialog_to_achieve_paging_list,_create,_edit,_delete_function

Forms

 * http://dev.sencha.com/deploy/dev/examples/form/dynamic.html

GWT

 * http://www.java2s.com/Code/Java/GWT/CreateapopupwindowwithWindowclassExtGWT.htm

Blogger

 * http://hutten.org/bill/extjs/

Layout

 * http://dev.sencha.com/deploy/dev/examples/layout-browser/layout-browser.html
 * http://www.miamicoder.com/post/2008/02/07/Sample-ExtJS-Layout.aspx
 * http://stackoverflow.com/questions/3778145/how-to-get-extjs-layout-used-for-container
 * http://www.sencha.com/forum/showthread.php?91803-LayoutConfig-problem

Overview

 * http://www.ibm.com/developerworks/web/library/wa-aj-extjs/
 * http://dev.sencha.com/deploy/dev/examples/

Viewport
var viewport = new Ext.Viewport({  layout:'border',   id:'movieview',   renderTo:document.body,   items:[{      // extra code removed //      region:'east',      xtype:'panel',      id:'moreinfo'      // extra code removed // }});
 * https://www.packtpub.com/article/layouts-in-ext-js

var moreinfo = Ext.getCmp('movieview').findById('moreinfo');

Tab Panel
Ext.Ajax.request({   url: 'json.php',    success: function(xhr) {        newPanel = eval(xhr.responseText);        myTabPanel.add(newPanel);        myTabPanel.setActiveItem(newPanel);    } });
 * http://www.sencha.com/forum/showthread.php?34000-Dynamically-adding-tabs-to-TabPanel
 * http://stackoverflow.com/questions/3471966/extjs-tabpanel-and-json-data-not-loading
 * http://stackoverflow.com/questions/tagged/extjs+tabpanel
 * http://dev.sencha.com/deploy/dev/examples/tabs/tabs-adv.html
 * http://dev.sencha.com/deploy/dev/docs/output/Ext.TabPanel.html#Ext.TabPanel-autoTabs

Accordion
new Ext.Panel({ renderTo:document.body,  autoHeight: true,  title: 'Accordion Layout',  layout: 'accordion',  defaults: {    bodyStyle: 'padding:0.2em'  },  layoutConfig: {    titleCollapse: true,    animate: false,    fill: false  },  items:[    new Ext.Panel({ title: 'My Panel 1', contentEl:"panel1-markup" }),   new Ext.Panel({ title: 'My Panel 2', contentEl:"panel2-markup" }) ] });
 * http://stackoverflow.com/questions/4163973/how-to-make-the-extjs-accordion-layout-example-dynamic
 * http://marketplace3.extjs.com/learn/Manual:Widgets:Layouts:AccordionLayout

Grid Container
g.view.getGroup = g.view.getGroup.wrap(function(normal,v, r, groupRenderer, rowIndex, colIndex, ds) {    var cm = g.getColumnModel;     var id=cm.getColumnId(colIndex);     var col=cm.getColumnById(id);     if(col.renderer == formatDateTime) {         v = (new Date(v)).format('m/d/yy');         groupRenderer = formatDate;     }     return normal(v, r, groupRenderer, rowIndex, colIndex, ds); });
 * http://www.sencha.com/forum/showthread.php?46820-autoheight-of-grid-s-parent-container
 * http://www.sencha.com/forum/showthread.php?28190-A-Simple-GridPanel-Grouping-Store-and-PHP
 * http://dev.sencha.com/deploy/gxtdocs/com/extjs/gxt/ui/client/store/GroupingStore.html
 * http://stackoverflow.com/questions/1230516/ext-js-groupingstore-group-datetime-column-by-just-date

Tree Panel

 * http://www.sencha.com/forum/showthread.php?14445-How-to-add-a-tree-panel-to-a-viewport
 * http://stackoverflow.com/questions/1630513/ext-js-tolayout-on-viewport-doesnt-show-anything
 * http://stackoverflow.com/questions/1571358/how-to-reload-ext-tree-treepanel-on-demand
 * http://www.sencha.com/forum/showthread.php?18377-hide-icons-in-treepanel
 * http://dev.sencha.com/deploy/dev/docs/output/Ext.tree.TreePanel.html
 * http://www.lib.virginia.edu/scripts/yui_ext-1.0.1/docs/output/Ext.tree.TreePanel.html
 * http://www.sencha.com/forum/showthread.php?31176-Fit-Grid-with-layout-fit-won-t-work
 * http://www.sencha.com/forum/showthread.php?16278-Parent-based-TreeLoader
 * http://ww.extjs.com/learn/Tutorial:Ext_TreeLoader_and_Java
 * http://9ex8.com/11579/ext-defines-a-ext-tree-treeloader-if-the-first-does-not-load-when-the-point-mo-button-after-loading-how-to-100.html
 * http://www.sencha.com/forum/showthread.php?50079-2.0-CLOSED-Preload-Children-On-Tree-Doesn-t-Work-More-Than-A-Depth-Of-1
 * http://stackoverflow.com/questions/3554860/update-content-of-one-window-on-event-in-other-window-with-extjs

Codebase

 * http://code.google.com/p/extjs-public/
 * http://code.google.com/apis/libraries/devguide.html
 * http://www.sencha.com/products/js/download.php
 * http://www.ext.net/store/

Examples

 * http://examples.extjs.eu/
 * http://www.sencha.com/learn/Manual:Basic_Application_Design

Layouts

 * http://www.packtpub.com/article/layouts-in-ext-js
 * http://dev.sencha.com/deploy/dev/examples/layout-browser/layout-browser.html
 * http://dev.sencha.com/deploy/dev/docs/?class=Ext.layout.BorderLayout

Books

 * https://www.packtpub.com/learning-ext-js/book

Snippets
var visibleIdx = 6; var fadeTo = function(nextIdx) { var items = Ext.DomQuery.select('.app'); var totalItems = items.length; var selectedItem;
 * http://www.sencha.com/contest/

if(nextIdx === undefined) nextIdx = (visibleIdx + 1) % totalItems; if (nextIdx < 0) nextIdx = totalItems - 1; if (nextIdx >= totalItems) nextIdx = 0; var nextItem = items[nextIdx]; var thisItem = items[visibleIdx]; Ext.get(thisItem).fadeOut({       duration: 0.35    }); Ext.get(nextItem).fadeIn({duration: 0.35,       callback: function {            visibleIdx = items.indexOf( Ext.DomQuery.selectNode('.app{visibility!=hidden}') );           Ext.fly('topten').down('li:nth-child(' + (visibleIdx + 1) +')').radioClass('active');    }});

};

Ext.onReady(function{   var prev = Ext.get('prev');    var next = Ext.get('next');    Ext.each(Ext.DomQuery.select('#topten a'), function(link) { var l = Ext.get(link); var linkIdx = Ext.DomQuery.select('#topten a').indexOf(link); l.addListener('click', function(e, el, opts) {           fadeTo(opts.linkIdx);        }, this, {preventDefault: true, linkIdx: linkIdx}) });           prev.addListener('click', function(e, el, opts) { fadeTo(visibleIdx -1); }, this, {preventDefault: true})   next.addListener('click', function(e, el, opts) { fadeTo(visibleIdx +1); }, this, {preventDefault: true}) })