DefaultColumnModel.js
Summary
YAHOO.ext.grid.DefaultColumnModel = function(config){
YAHOO.ext.grid.DefaultColumnModel.superclass.constructor.call(this);
this.config = config;
this.defaultWidth = 100;
this.defaultSortable = false;
};
YAHOO.extendX(YAHOO.ext.grid.DefaultColumnModel, YAHOO.ext.grid.AbstractColumnModel);
YAHOO.ext.grid.DefaultColumnModel.prototype.getColumnCount = function(){
return this.config.length;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.isSortable = function(col){
if(typeof this.config[col].sortable == 'undefined'){
return this.defaultSortable;
}
return this.config[col].sortable;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.getSortType = function(col){
if(!this.dataMap){
var map = [];
for(var i = 0, len = this.config.length; i < len; i++){
map[this.getDataIndex(i)] = i;
}
this.dataMap = map;
}
col = this.dataMap[col];
if(!this.config[col].sortType){
return YAHOO.ext.grid.DefaultColumnModel.sortTypes.none;
}
return this.config[col].sortType;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.setSortType = function(col, fn){
this.config[col].sortType = fn;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.getRenderer = function(col){
if(!this.config[col].renderer){
return YAHOO.ext.grid.DefaultColumnModel.defaultRenderer;
}
return this.config[col].renderer;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.setRenderer = function(col, fn){
this.config[col].renderer = fn;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.getColumnWidth = function(col){
return this.config[col].width || this.defaultWidth;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.setColumnWidth = function(col, width, suppressEvent){
this.config[col].width = width;
this.totalWidth = null;
if(!suppressEvent){
this.onWidthChange.fireDirect(this, col, width);
}
};
YAHOO.ext.grid.DefaultColumnModel.prototype.getTotalWidth = function(includeHidden){
if(!this.totalWidth){
this.totalWidth = 0;
for(var i = 0; i < this.config.length; i++){
if(includeHidden || !this.isHidden(i)){
this.totalWidth += this.getColumnWidth(i);
}
}
}
return this.totalWidth;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.getColumnHeader = function(col){
return this.config[col].header;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.setColumnHeader = function(col, header){
this.config[col].header = header;
this.onHeaderChange.fireDirect(this, col, header);
};
YAHOO.ext.grid.DefaultColumnModel.prototype.getDataIndex = function(col){
if(typeof this.config[col].dataIndex != 'number'){
return col;
}
return this.config[col].dataIndex;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.setDataIndex = function(col, dataIndex){
this.config[col].dataIndex = dataIndex;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.isCellEditable = function(colIndex, rowIndex){
return this.config[colIndex].editable || (typeof this.config[colIndex].editable == 'undefined' && this.config[colIndex].editor);
};
YAHOO.ext.grid.DefaultColumnModel.prototype.getCellEditor = function(colIndex, rowIndex){
return this.config[colIndex].editor;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.setEditable = function(col, editable){
this.config[col].editable = editable;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.isHidden = function(colIndex){
return this.config[colIndex].hidden;
};
YAHOO.ext.grid.DefaultColumnModel.prototype.setHidden = function(colIndex, hidden){
this.config[colIndex].hidden = hidden;
this.totalWidth = null;
this.fireHiddenChange(colIndex, hidden);
};
YAHOO.ext.grid.DefaultColumnModel.prototype.setEditor = function(col, editor){
this.config[col].editor = editor;
};
YAHOO.ext.grid.DefaultColumnModel.defaultRenderer = function(value){
if(typeof value == 'string' && value.length < 1){
return ' ';
}
return value;
}
YAHOO.ext.grid.DefaultColumnModel.sortTypes = {};
YAHOO.ext.grid.DefaultColumnModel.sortTypes.none = function(s) {
return s;
};
YAHOO.ext.grid.DefaultColumnModel.sortTypes.asUCString = function(s) {
return String(s).toUpperCase();
};
YAHOO.ext.grid.DefaultColumnModel.sortTypes.asDate = function(s) {
if(s instanceof Date){
return s;
}
return Date.parse(String(s));
};
YAHOO.ext.grid.DefaultColumnModel.sortTypes.asFloat = function(s) {
var val = parseFloat(String(s).replace(/,/g, ''));
if(isNaN(val)) val = 0;
return val;
};
YAHOO.ext.grid.DefaultColumnModel.sortTypes.asInt = function(s) {
var val = parseInt(String(s).replace(/,/g, ''));
if(isNaN(val)) val = 0;
return val;
};
Documentation generated by
JSDoc on Sat Oct 14 06:07:10 2006