<!-- 
/*! 
 * Ext JS Library 3.0.0 
 * Copyright(c) 2006-2009 Ext JS, LLC 
 * [email protected] 
 * http://www.extjs.com/license 
 */ 
--> 
<html> 
<head> 
<title>Hello World Window</title> 
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" /> 
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script> 
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script> 
<script type="text/javascript" src="ext-3.0.0/examples/ux/CheckColumn.js"></script> 
<style type="text/css"> 
/*! 
 * Ext JS Library 3.0.0 
 * Copyright(c) 2006-2009 Ext JS, LLC 
 * [email protected] 
 * http://www.extjs.com/license 
 */ 
#grid-example .x-grid-col-1 { 
  text-align: right; 
} 
#grid-example .x-grid-col-2{ 
  text-align: right; 
} 
#grid-example .x-grid-col-3 { 
  text-align: right; 
} 
#grid-example .x-grid-col-4 { 
  text-align: right; 
} 
#grid-example.x-grid-mso{ 
  border: 1px solid #6593cf; 
} 
#grid-example.x-grid-vista{ 
  border: 1px solid #b3bcc0; 
} 
#xml-grid-example{ 
  border: 1px solid #cbc7b8; 
  left: 0; 
  position: relative; 
  top: 0; 
} 
#editor-grid .x-grid-col-2{ 
    text-align:right; 
} 
.x-grid3-td-topic b { 
    font-family:tahoma, verdana; 
    display:block; 
} 
.x-grid3-td-topic b i { 
    font-weight:normal; 
    font-style: normal; 
    color:#000; 
} 
.x-grid3-td-topic .x-grid3-cell-inner { 
    white-space:normal; 
} 
.x-grid3-td-topic a { 
    color: #385F95; 
    text-decoration:none; 
} 
.x-grid3-td-topic a:hover { 
    text-decoration:underline; 
} 
.details .x-btn-text { 
    background-image: url(details.gif); 
} 
.x-resizable-pinned .x-resizable-handle-south{ 
    background:url(ext-3.0.0/resources/images/default/sizer/s-handle-dark.gif); 
    background-position: top; 
} 
  </style> 
</head> 
 
<!-- Revised from demo code in ext3.0.0 --> 
<body> 
<script type="text/javascript"> 
/*! 
 * Ext JS Library 3.0.0 
 * Copyright(c) 2006-2009 Ext JS, LLC 
 * [email protected] 
 * http://www.extjs.com/license 
 */ 
Ext.onReady(function(){ 
    Ext.QuickTips.init(); 
 
    function formatDate(value){ 
        return value ? value.dateFormat('M d, Y') : ''; 
    } 
    // shorthand alias 
    var fm = Ext.form; 
 
    // custom column plugin example 
    var checkColumn = new Ext.grid.CheckColumn({ 
       header: 'Indoor?', 
       dataIndex: 'indoor', 
       width: 55 
    }); 
 
    // the column model has information about grid columns 
    // dataIndex maps the column to the specific data field in 
    // the data store (created below) 
    var cm = new Ext.grid.ColumnModel([{ 
           id: 'common', 
           header: 'Common Name', 
           dataIndex: 'common', 
           width: 220, 
           // use shorthand alias defined above 
           editor: new fm.TextField({ 
               allowBlank: false 
           }) 
        },{ 
           header: 'Light', 
           dataIndex: 'light', 
           width: 130, 
           editor: new fm.ComboBox({ 
               typeAhead: true, 
               triggerAction: 'all', 
               transform:'light', 
               lazyRender: true, 
               listClass: 'x-combo-list-small' 
            }) 
        },{ 
           header: 'Price', 
           dataIndex: 'price', 
           width: 70, 
           align: 'right', 
           renderer: 'usMoney', 
           editor: new fm.NumberField({ 
               allowBlank: false, 
               allowNegative: false, 
               maxValue: 100000 
           }) 
        },{ 
           header: 'Available', 
           dataIndex: 'availDate', 
           width: 95, 
           renderer: formatDate, 
           editor: new fm.DateField({ 
                format: 'm/d/y', 
                minValue: '01/01/06', 
                disabledDays: [0, 6], 
                disabledDaysText: 'Plants are not available on the weekends' 
            }) 
        }, 
        checkColumn 
    ]); 
 
    // by default columns are sortable 
    cm.defaultSortable = true; 
 
    // create the Data Store 
    var store = new Ext.data.Store({ 
        // load remote data using HTTP 
        url: 'ext-3.0.0/examples/grid/plants.xml', 
 
        // specify a XmlReader (coincides with the XML format of the returned data) 
        reader: new Ext.data.XmlReader( 
            { 
                // records will have a 'plant' tag 
                record: 'plant' 
            }, 
            // use an Array of field definition objects to implicitly create a Record constructor 
            [ 
                // the 'name' below matches the tag name to read, except 'availDate' 
                // which is mapped to the tag 'availability' 
                {name: 'common', type: 'string'}, 
                {name: 'botanical', type: 'string'}, 
                {name: 'light'}, 
                {name: 'price', type: 'float'},              
                // dates can be automatically converted by specifying dateFormat 
                {name: 'availDate', mapping: 'availability', type: 'date', dateFormat: 'm/d/Y'}, 
                {name: 'indoor', type: 'bool'} 
            ] 
        ), 
 
        sortInfo: {field:'common', direction:'ASC'} 
    }); 
 
    // create the editor grid 
    var grid = new Ext.grid.EditorGridPanel({ 
        store: store, 
        cm: cm, 
        renderTo: 'editor-grid', 
        width: 600, 
        height: 300, 
        autoExpandColumn: 'common', 
        title: 'Edit Plants?', 
        frame: true, 
        plugins: checkColumn, 
        clicksToEdit: 1, 
        tbar: [{ 
            text: 'Add Plant', 
            handler : function(){ 
                // access the Record constructor through the grid's store 
                var Plant = grid.getStore().recordType; 
                var p = new Plant({ 
                    common: 'New Plant 1', 
                    light: 'Mostly Shade', 
                    price: 0, 
                    availDate: (new Date()).clearTime(), 
                    indoor: false 
                }); 
                grid.stopEditing(); 
                store.insert(0, p); 
                grid.startEditing(0, 0); 
            } 
        }] 
    }); 
 
    // trigger the data store load 
    store.load(); 
}); 
 
</script>  
     
    <!-- the custom editor for the 'Light' column references the id="light" --> 
    <select name="light" id="light" style="display: none;"> 
      <option value="Shade">Shade</option> 
      <option value="Mostly Shady">Mostly Shady</option> 
      <option value="Sun or Shade">Sun or Shade</option> 
      <option value="Mostly Sunny">Mostly Sunny</option> 
      <option value="Sunny">Sunny</option> 
    </select> 
<div id="editor-grid"></div> 
</body> 
</html> 
 
    
     
   |     
 
 |