
Ext.ns('GeoPrisma.Test.Sniffer');

GeoPrisma.Test.Sniffer.Grid = Ext.extend(Ext.grid.GridPanel, {
    
    
    initComponent:function() {
        var store = new Ext.data.GroupingStore({
            url: 'php/service/test/sniffer.json.php',
            
            reader : new Ext.data.JsonReader({
                idProperty: "id",
                root: 'errors',
                fields: ['id','line','column','severity','message','source','file']
            }),
            
            sortInfo:{field: 'file', direction: "ASC"},
            groupField:'file'

        });
        store.load();

        this.store = store;
       
        this.columns = [        
            {header: "Severity", width: 30, sortable: true, dataIndex: 'severity', renderer: this.renderSeverity, scope: this},
            {header: "Line", width: 50, sortable: true, dataIndex: 'line'}, 
            {header: "Column", width: 50, sortable: true, dataIndex: 'column'},              
            {id: 'message', header: "Reason", width: 60, sortable: true, dataIndex: 'message'}, 
            {header: "Sniff", width: 250, sortable: true, dataIndex: 'source'},
            {header: "File", width: 250, sortable: true, dataIndex: 'file', hidden : true}
        ];

        this.autoExpandColumn = 'message';

         
        this.view = new Ext.grid.GroupingView({
            groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
        });
                 
        
        GeoPrisma.Test.Sniffer.Grid.superclass.initComponent.call(this);
    },
    

    renderSeverity: function (value, p, record)
    {
        return String.format('<img src="./img/severity/{0}.png" alt="{0}" class="icon16"/>', value);
    }
});
