if (typeof(gridSize) == 'undefined') {
return cfg.width * 1 || this.defaultWidth;
}
- for(var i in ['xl', 'lg', 'md', 'sm', 'xs']) {
- if (typeof(cfg[i]) == 'undefined') {
+ if (gridSize === false) { // if we set it..
+ return cfg.width || false;
+ }
+ var sizes = ['xl', 'lg', 'md', 'sm', 'xs'];
+
+ for(var i = sizes.indexOf(gridSize); i < sizes.length; i++) {
+ if (typeof(cfg[ sizes[i] ] ) == 'undefined') {
continue;
}
- return cfg[i];
+ return cfg[ sizes[i] ];
}
return 1;
var total = 0;
var last = -1;
var cols = []; // visable cols.
+ var total_abs = 0;
for(var i = 0, len = cm.getColumnCount(); i < len; i++) {
+ var w = cm.getColumnWidth(i, false);
+ if(!cm.isHidden(i)){
+ w = 0;
+ }
+ if (w !== false) {
+ cols.push( { rel : false, abs : w });
+ total_abs += w;
+ continue;
+ }
var w = cm.getColumnWidth(i, sz);
if (w > 0) {
last = i
}
total += w;
- cols.push(w);
+ cols.push( { rel : w, abs : false });
}
+ var avail = this.bodyEl.dom.clientWidth - total_abs;
- var unitWidth = Math.floor(this.bodyEl.dom.clientWidth / total);
- var rem = this.bodyEl.dom.clientWidth - (unitWidth * total);
+ var unitWidth = Math.floor(avail / total);
+ var rem = avail - (unitWidth * total);
- var hidden, width;
+ var hidden, width, pos = 0;
for(var i = 0, len = cm.getColumnCount(); i < len; i++) {
var hidden = 'display:none;';
+ var left = '';
var width = 'width:0px;';
if(!cm.isHidden(i)){
hidden = '';
+
// we can honour xs/sm/md/xl ?
- var w = cols[i] * unitWidth;
+ var w = cols[i].rel == false ? cols[i].abs : (cols[i].rel * unitWidth);
if (w===0) {
hidden = 'display:none;';
}
if (i == last) {
w+=rem; // add the remaining with..
}
-
+ pos += w;
+ left = "left:" + pos + "px;";
width = "width:" + w+ "px;";
+
}
styles.push(
'#' , this.id , ' .x-col-' , i, " {\n", cm.config[i].css, width, hidden, "\n}\n",
- '#' , this.id , ' .x-hcol-' , i, " {\n", width, hidden,"}\n"
+ '#' , this.id , ' .x-hcol-' , i, " {\n", width, hidden,"}\n",
+ '#' , this.id , ' .x-grid-split-' , i, " {\n", left,"}\n"
);
}
Roo.log(styles.join(''));
var cm = this.colModel;
cm.setColumnWidth(i, w, true);
+ this.initCSS();
//var cid = cm.getColumnId(i); << not used in this version?
- Roo.log(['#' + this.id + ' .x-col-' + i, "width", w + "px"]);
+ /* Roo.log(['#' + this.id + ' .x-col-' + i, "width", w + "px"]);
this.CSS.updateRule( '#' + this.id + ' .x-col-' + i, "width", w + "px");
this.CSS.updateRule('#' + this.id + ' .x-hcol-' + i, "width", w + "px");
-
+ this.CSS.updateRule('#' + this.id + ' .x-grid-split-' + i, "left", w + "px");
+*/
//this.updateSplitters();
//this.layout(); << ??
this.fireEvent("columnresize", i, w);
}this.config[A].locked=B;if(!C){this.fireEvent("columnlockchange",this,A,B);}},getTotalLockedWidth:function(){var A=0;for(var i=0;i<this.config.length;i++){if(this.isLocked(i)&&!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}return A;},getLockedCount:function(){for(var i=0,A=this.config.length;
i<A;i++){if(!this.isLocked(i)){return i;}}return this.config.length;},getColumnCount:function(A){if(A===true){var c=0;for(var i=0,B=this.config.length;i<B;i++){if(!this.isHidden(i)){c++;}}return c;}return this.config.length;},getColumnsBy:function(fn,A){var r=[];
for(var i=0,B=this.config.length;i<B;i++){var c=this.config[i];if(fn.call(A||this,c,i)===true){r[r.length]=c;}}return r;},isSortable:function(A){if(typeof this.config[A].sortable=="undefined"){return this.defaultSortable;}return this.config[A].sortable;},getRenderer:function(A){if(!this.config[A].renderer){return Roo.grid.ColumnModel.defaultRenderer;
-}return this.config[A].renderer;},setRenderer:function(A,fn){this.config[A].renderer=fn;},getColumnWidth:function(A,B){var C=this.config[A];if(typeof(B)=='undefined'){return C.width*1||this.defaultWidth;}for(var i in ['xl','lg','md','sm','xs']){if(typeof(C[i])=='undefined'){continue;
-}return C[i];}return 1;},setColumnWidth:function(A,B,C){this.config[A].width=B;this.totalWidth=null;if(!C){this.fireEvent("widthchange",this,A,B);}},getTotalWidth:function(A){if(!this.totalWidth){this.totalWidth=0;for(var i=0,B=this.config.length;i<B;i++){if(A||!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);
-}}}return this.totalWidth;},getColumnHeader:function(A){return this.config[A].header;},setColumnHeader:function(A,B){this.config[A].header=B;this.fireEvent("headerchange",this,A,B);},getColumnTooltip:function(A){return this.config[A].tooltip;},setColumnTooltip:function(A,B){this.config[A].tooltip=B;
-},getDataIndex:function(A){return this.config[A].dataIndex;},setDataIndex:function(A,B){this.config[A].dataIndex=B;},isCellEditable:function(A,B){return (this.config[A].editable||(typeof this.config[A].editable=="undefined"&&this.config[A].editor))?true:false;
+}return this.config[A].renderer;},setRenderer:function(A,fn){this.config[A].renderer=fn;},getColumnWidth:function(A,B){var C=this.config[A];if(typeof(B)=='undefined'){return C.width*1||this.defaultWidth;}if(B===false){return C.width||false;}var D=['xl','lg','md','sm','xs'];
+for(var i=D.indexOf(B);i<D.length;i++){if(typeof(C[D[i]])=='undefined'){continue;}return C[D[i]];}return 1;},setColumnWidth:function(A,B,C){this.config[A].width=B;this.totalWidth=null;if(!C){this.fireEvent("widthchange",this,A,B);}},getTotalWidth:function(A){if(!this.totalWidth){this.totalWidth=0;
+for(var i=0,B=this.config.length;i<B;i++){if(A||!this.isHidden(i)){this.totalWidth+=this.getColumnWidth(i);}}}return this.totalWidth;},getColumnHeader:function(A){return this.config[A].header;},setColumnHeader:function(A,B){this.config[A].header=B;this.fireEvent("headerchange",this,A,B);
+},getColumnTooltip:function(A){return this.config[A].tooltip;},setColumnTooltip:function(A,B){this.config[A].tooltip=B;},getDataIndex:function(A){return this.config[A].dataIndex;},setDataIndex:function(A,B){this.config[A].dataIndex=B;},isCellEditable:function(A,B){return (this.config[A].editable||(typeof this.config[A].editable=="undefined"&&this.config[A].editor))?true:false;
},getCellEditor:function(A,B){return this.config[A].editor;},setEditable:function(A,B){this.config[A].editable=B;},isHidden:function(A){return this.config[A].hidden;},isFixed:function(A){return this.config[A].fixed;},isResizable:function(A){return A>=0&&this.config[A].resizable!==false&&this.config[A].fixed!==true;
},setHidden:function(A,B){this.config[A].hidden=B;this.totalWidth=null;this.fireEvent("hiddenchange",this,A,B);},setEditor:function(A,B){this.config[A].editor=B;},addColumn:function(c){var i=this.config.length;this.config[i]=c;if(typeof c.dataIndex=="undefined"){c.dataIndex=i;
}if(typeof c.renderer=="string"){c.renderer=Roo.util.Format[c.renderer];}if(typeof c.id=="undefined"){c.id=Roo.id();}if(c.editor&&c.editor.xtype){c.editor=Roo.factory(c.editor,Roo.grid);}if(c.editor&&c.editor.isFormField){c.editor=new Roo.grid.GridEditor(c.editor);
);}this.store.on('load',this.onLoad,this);this.store.on('beforeload',this.onBeforeLoad,this);this.store.on('update',this.onUpdate,this);this.store.on('add',this.onAdd,this);this.store.on("clear",this.clear,this);this.el.on("contextmenu",this.onContextMenu,this);
this.cm.on("headerchange",this.onHeaderChange,this);this.cm.on("hiddenchange",this.onHiddenChange,this,arguments);this.bodyEl.on("click",this.onClick,this);this.bodyEl.on("dblclick",this.onDblClick,this);this.bodyEl.on('scroll',this.onBodyScroll,this);this.relayEvents(this.bodyEl,["mousedown","mouseup","mouseover","mouseout","keypress"]);
this.resizeProxy=Roo.get(document.body).createChild({cls:"x-grid-resize-proxy",html:' '});if(this.headEl&&this.enableColumnResize!==false&&Roo.grid.SplitDragZone){new Roo.grid.SplitDragZone(this,this.headEl.dom,false);}this.initCSS();},getView:function(){return this;
-},initCSS:function(){var cm=this.cm,A=[];this.CSS.removeStyleSheet(this.id+'-cssrules');var sz=Roo.getGridSize();var B=0;var C=-1;var D=[];for(var i=0,E=cm.getColumnCount();i<E;i++){var w=cm.getColumnWidth(i,sz);if(w>0){C=i}B+=w;D.push(w);}var F=Math.floor(this.bodyEl.dom.clientWidth/B);
-var G=this.bodyEl.dom.clientWidth-(F*B);var H,I;for(var i=0,E=cm.getColumnCount();i<E;i++){var H='display:none;';var I='width:0px;';if(!cm.isHidden(i)){H='';var w=D[i]*F;if(w===0){H='display:none;';}if(i==C){w+=G;}I="width:"+w+"px;";}A.push('#',this.id,' .x-col-',i," {\n",cm.config[i].css,I,H,"\n}\n",'#',this.id,' .x-hcol-',i," {\n",I,H,"}\n");
+},initCSS:function(){var cm=this.cm,A=[];this.CSS.removeStyleSheet(this.id+'-cssrules');var sz=Roo.getGridSize();var B=0;var C=-1;var D=[];var E=0;for(var i=0,F=cm.getColumnCount();i<F;i++){var w=cm.getColumnWidth(i,false);if(!cm.isHidden(i)){w=0;}if(w!==false){D.push({rel:false,abs:w}
+);E+=w;continue;}var w=cm.getColumnWidth(i,sz);if(w>0){C=i}B+=w;D.push({rel:w,abs:false});}var G=this.bodyEl.dom.clientWidth-E;var H=Math.floor(G/B);var I=G-(H*B);var J,K,L=0;for(var i=0,F=cm.getColumnCount();i<F;i++){var J='display:none;';var M='';var K='width:0px;';
+if(!cm.isHidden(i)){J='';var w=D[i].rel==false?D[i].abs:(D[i].rel*H);if(w===0){J='display:none;';}if(i==C){w+=I;}L+=w;M="left:"+L+"px;";K="width:"+w+"px;";}A.push('#',this.id,' .x-col-',i," {\n",cm.config[i].css,K,J,"\n}\n",'#',this.id,' .x-hcol-',i," {\n",K,J,"}\n",'#',this.id,' .x-grid-split-',i," {\n",M,"}\n");
}Roo.log(A.join(''));this.CSS.createStyleSheet(A.join(''),this.id+'-cssrules');},onContextMenu:function(e,t){this.processEvent("contextmenu",e);},processEvent:function(A,e){if(A!='touchstart'){this.fireEvent(A,e);}var t=e.getTarget();var B=Roo.get(t);if(!B){return;
}if(B.findParent('tfoot',false,true)){return;}if(B.findParent('thead',false,true)){if(e.getTarget().nodeName.toLowerCase()!='th'){B=Roo.get(t).findParent('th',false,true);if(!B){Roo.log("failed to find th in thead?");Roo.log(e.getTarget());return;}}var C=B.dom.cellIndex;
var D=A=='touchstart'?'click':A;this.fireEvent("header"+D,this,C,e);return;}if(e.getTarget().nodeName.toLowerCase()!='td'){B=Roo.get(t).findParent('td',false,true);if(!B){Roo.log("failed to find th in tbody?");Roo.log(e.getTarget());return;}}var E=B.findParent('tr',false,true);
var cw=A.getWidth();this.getGridEl().select('tfoot tr, tfoot td',true).setWidth(cw);if(C){C.setWidth(A.getWidth());var E=(C.dom.offsetWidth-C.dom.clientWidth);cw-=E;}cw=Math.max(cw,this.totalWidth);this.getGridEl().select('tbody tr',true).setWidth(cw);return;
},onBodyScroll:function(){if(this.headEl){this.headEl.setStyle({'position':'relative','left':(-1*this.bodyEl.dom.scrollLeft)+'px'});}if(this.lazyLoad){var A=this.bodyEl.dom.scrollHeight;var B=Math.ceil(this.bodyEl.getScroll().top);var C=this.bodyEl.getHeight();
if(A-C==B){var D=this.ds.getTotalCount();if(this.footer.cursor+this.footer.pageSize<D){this.footer.ds.load({params:{start:this.footer.cursor+this.footer.pageSize,limit:this.footer.pageSize},add:true});}}}},onColumnSplitterMoved:function(i,w){this.userResized=true;
-var cm=this.colModel;cm.setColumnWidth(i,w,true);Roo.log(['#'+this.id+' .x-col-'+i,"width",w+"px"]);this.CSS.updateRule('#'+this.id+' .x-col-'+i,"width",w+"px");this.CSS.updateRule('#'+this.id+' .x-hcol-'+i,"width",w+"px");this.fireEvent("columnresize",i,w);
-},onHeaderChange:function(){var A=this.renderHeader();var B=this.el.select('table',true).first();this.headEl.remove();this.headEl=B.createChild(A,this.bodyEl,false);Roo.each(this.el.select('thead th.sortable',true).elements,function(e){e.on('click',this.sort,this);
-},this);if(this.enableColumnResize!==false&&Roo.grid.SplitDragZone){new Roo.grid.SplitDragZone(this,this.headEl.dom,false);}},onHiddenChange:function(A,B,C){var D='#'+this.id+' .x-hcol-'+B;var E='#'+this.id+' .x-col-'+B;this.CSS.updateRule(D,"display","");
-this.CSS.updateRule(E,"display","");if(C){this.CSS.updateRule(D,"display","none");this.CSS.updateRule(E,"display","none");}this.onHeaderChange();this.onLoad();},setColumnWidth:function(A,B){if(!this.colModel.config[A]){return;}var w=B.split(" ");var C=this.el.dom.getElementsByClassName("x-col-"+A);
-var D=this.el.dom.getElementsByClassName("x-hcol-"+A);for(var j=0;j<w.length;j++){if(!w[j]){continue;}var E=w[j].split("-");if(!Number.isInteger(E[1]*1)){continue;}if(!this.colModel.config[A][E[0]]){continue;}if(!D[0].classList.contains("col-"+E[0]+"-"+this.colModel.config[A][E[0]])){continue;
-}D[0].classList.replace("col-"+E[0]+"-"+this.colModel.config[A][E[0]],"col-"+E[0]+"-"+E[1]);for(var i=0;i<C.length;i++){var E=w[j].split("-");if(!Number.isInteger(E[1]*1)){continue;}if(!this.colModel.config[A][E[0]]){continue;}if(!C[i].classList.contains("col-"+E[0]+"-"+this.colModel.config[A][E[0]])){continue;
-}C[i].classList.replace("col-"+E[0]+"-"+this.colModel.config[A][E[0]],"col-"+E[0]+"-"+E[1]);}this.colModel.config[A][E[0]]=E[1];}}});Roo.bootstrap.Table.cellRE=/(?:.*?)x-grid-(?:hd|cell|split)-([\d]+)(?:.*?)/;Roo.bootstrap.Table.AbstractSelectionModel=Roo.grid.AbstractSelectionModel;
-Roo.bootstrap.Table.RowSelectionModel=Roo.grid.RowSelectionModel;
+var cm=this.colModel;cm.setColumnWidth(i,w,true);this.initCSS();this.fireEvent("columnresize",i,w);},onHeaderChange:function(){var A=this.renderHeader();var B=this.el.select('table',true).first();this.headEl.remove();this.headEl=B.createChild(A,this.bodyEl,false);
+Roo.each(this.el.select('thead th.sortable',true).elements,function(e){e.on('click',this.sort,this);},this);if(this.enableColumnResize!==false&&Roo.grid.SplitDragZone){new Roo.grid.SplitDragZone(this,this.headEl.dom,false);}},onHiddenChange:function(A,B,C){var D='#'+this.id+' .x-hcol-'+B;
+var E='#'+this.id+' .x-col-'+B;this.CSS.updateRule(D,"display","");this.CSS.updateRule(E,"display","");if(C){this.CSS.updateRule(D,"display","none");this.CSS.updateRule(E,"display","none");}this.onHeaderChange();this.onLoad();},setColumnWidth:function(A,B){if(!this.colModel.config[A]){return;
+}var w=B.split(" ");var C=this.el.dom.getElementsByClassName("x-col-"+A);var D=this.el.dom.getElementsByClassName("x-hcol-"+A);for(var j=0;j<w.length;j++){if(!w[j]){continue;}var E=w[j].split("-");if(!Number.isInteger(E[1]*1)){continue;}if(!this.colModel.config[A][E[0]]){continue;
+}if(!D[0].classList.contains("col-"+E[0]+"-"+this.colModel.config[A][E[0]])){continue;}D[0].classList.replace("col-"+E[0]+"-"+this.colModel.config[A][E[0]],"col-"+E[0]+"-"+E[1]);for(var i=0;i<C.length;i++){var E=w[j].split("-");if(!Number.isInteger(E[1]*1)){continue;
+}if(!this.colModel.config[A][E[0]]){continue;}if(!C[i].classList.contains("col-"+E[0]+"-"+this.colModel.config[A][E[0]])){continue;}C[i].classList.replace("col-"+E[0]+"-"+this.colModel.config[A][E[0]],"col-"+E[0]+"-"+E[1]);}this.colModel.config[A][E[0]]=E[1];
+}}});Roo.bootstrap.Table.cellRE=/(?:.*?)x-grid-(?:hd|cell|split)-([\d]+)(?:.*?)/;Roo.bootstrap.Table.AbstractSelectionModel=Roo.grid.AbstractSelectionModel;Roo.bootstrap.Table.RowSelectionModel=Roo.grid.RowSelectionModel;
// Roo/bootstrap/TableCell.js
Roo.bootstrap.TableCell=function(A){Roo.bootstrap.TableCell.superclass.constructor.call(this,A);};Roo.extend(Roo.bootstrap.TableCell,Roo.bootstrap.Component,{html:false,cls:false,tag:false,abbr:false,align:false,axis:false,bgcolor:false,charoff:false,colspan:false,headers:false,height:false,nowrap:false,rowspan:false,scope:false,valign:false,width:false,getAutoCreate:function(){var A=Roo.apply({}
,Roo.bootstrap.TableCell.superclass.getAutoCreate.call(this));A={tag:'td'};if(this.tag){A.tag=this.tag;}if(this.html){A.html=this.html}if(this.cls){A.cls=this.cls}if(this.abbr){A.abbr=this.abbr}if(this.align){A.align=this.align}if(this.axis){A.axis=this.axis}