205 lines
4.1 KiB
JavaScript
205 lines
4.1 KiB
JavaScript
|
//>>built
|
||
|
define("dojox/grid/_ViewManager",["dojo/_base/declare","dojo/_base/sniff","dojo/dom-class"],function(_1,_2,_3){
|
||
|
return _1("dojox.grid._ViewManager",null,{constructor:function(_4){
|
||
|
this.grid=_4;
|
||
|
},defaultWidth:200,views:[],resize:function(){
|
||
|
this.onEach("resize");
|
||
|
},render:function(){
|
||
|
this.onEach("render");
|
||
|
},addView:function(_5){
|
||
|
_5.idx=this.views.length;
|
||
|
this.views.push(_5);
|
||
|
},destroyViews:function(){
|
||
|
for(var i=0,v;v=this.views[i];i++){
|
||
|
v.destroy();
|
||
|
}
|
||
|
this.views=[];
|
||
|
},getContentNodes:function(){
|
||
|
var _6=[];
|
||
|
for(var i=0,v;v=this.views[i];i++){
|
||
|
_6.push(v.contentNode);
|
||
|
}
|
||
|
return _6;
|
||
|
},forEach:function(_7){
|
||
|
for(var i=0,v;v=this.views[i];i++){
|
||
|
_7(v,i);
|
||
|
}
|
||
|
},onEach:function(_8,_9){
|
||
|
_9=_9||[];
|
||
|
for(var i=0,v;v=this.views[i];i++){
|
||
|
if(_8 in v){
|
||
|
v[_8].apply(v,_9);
|
||
|
}
|
||
|
}
|
||
|
},normalizeHeaderNodeHeight:function(){
|
||
|
var _a=[];
|
||
|
for(var i=0,v;(v=this.views[i]);i++){
|
||
|
if(v.headerContentNode.firstChild){
|
||
|
_a.push(v.headerContentNode);
|
||
|
}
|
||
|
}
|
||
|
this.normalizeRowNodeHeights(_a);
|
||
|
},normalizeRowNodeHeights:function(_b){
|
||
|
var h=0;
|
||
|
var _c=[];
|
||
|
if(this.grid.rowHeight){
|
||
|
h=this.grid.rowHeight;
|
||
|
}else{
|
||
|
if(_b.length<=1){
|
||
|
return;
|
||
|
}
|
||
|
for(var i=0,n;(n=_b[i]);i++){
|
||
|
if(!_3.contains(n,"dojoxGridNonNormalizedCell")){
|
||
|
_c[i]=n.firstChild.offsetHeight;
|
||
|
h=Math.max(h,_c[i]);
|
||
|
}
|
||
|
}
|
||
|
h=(h>=0?h:0);
|
||
|
if((_2("mozilla")||_2("ie")>8)&&h){
|
||
|
h++;
|
||
|
}
|
||
|
}
|
||
|
for(i=0;(n=_b[i]);i++){
|
||
|
if(_c[i]!=h){
|
||
|
n.firstChild.style.height=h+"px";
|
||
|
}
|
||
|
}
|
||
|
},resetHeaderNodeHeight:function(){
|
||
|
for(var i=0,v,n;(v=this.views[i]);i++){
|
||
|
n=v.headerContentNode.firstChild;
|
||
|
if(n){
|
||
|
n.style.height="";
|
||
|
}
|
||
|
}
|
||
|
},renormalizeRow:function(_d){
|
||
|
var _e=[];
|
||
|
for(var i=0,v,n;(v=this.views[i])&&(n=v.getRowNode(_d));i++){
|
||
|
n.firstChild.style.height="";
|
||
|
_e.push(n);
|
||
|
}
|
||
|
this.normalizeRowNodeHeights(_e);
|
||
|
},getViewWidth:function(_f){
|
||
|
return this.views[_f].getWidth()||this.defaultWidth;
|
||
|
},measureHeader:function(){
|
||
|
this.resetHeaderNodeHeight();
|
||
|
this.forEach(function(_10){
|
||
|
_10.headerContentNode.style.height="";
|
||
|
});
|
||
|
var h=0;
|
||
|
this.forEach(function(_11){
|
||
|
h=Math.max(_11.headerNode.offsetHeight,h);
|
||
|
});
|
||
|
return h;
|
||
|
},measureContent:function(){
|
||
|
var h=0;
|
||
|
this.forEach(function(_12){
|
||
|
h=Math.max(_12.domNode.offsetHeight,h);
|
||
|
});
|
||
|
return h;
|
||
|
},findClient:function(_13){
|
||
|
var c=this.grid.elasticView||-1;
|
||
|
if(c<0){
|
||
|
for(var i=1,v;(v=this.views[i]);i++){
|
||
|
if(v.viewWidth){
|
||
|
for(i=1;(v=this.views[i]);i++){
|
||
|
if(!v.viewWidth){
|
||
|
c=i;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if(c<0){
|
||
|
c=Math.floor(this.views.length/2);
|
||
|
}
|
||
|
return c;
|
||
|
},arrange:function(l,w){
|
||
|
var i,v,vw,len=this.views.length,_14=this;
|
||
|
var c=(w<=0?len:this.findClient());
|
||
|
var _15=function(v,l){
|
||
|
var ds=v.domNode.style;
|
||
|
var hs=v.headerNode.style;
|
||
|
if(!_14.grid.isLeftToRight()){
|
||
|
ds.right=l+"px";
|
||
|
if(_2("ff")<4||_2("webkit")){
|
||
|
hs.right=l+v.getScrollbarWidth()+"px";
|
||
|
hs.width=parseInt(hs.width,10)-v.getScrollbarWidth()+"px";
|
||
|
}else{
|
||
|
hs.right=l+"px";
|
||
|
}
|
||
|
}else{
|
||
|
ds.left=l+"px";
|
||
|
hs.left=l+"px";
|
||
|
}
|
||
|
ds.top=0+"px";
|
||
|
hs.top=0;
|
||
|
};
|
||
|
for(i=0;(v=this.views[i])&&(i<c);i++){
|
||
|
vw=this.getViewWidth(i);
|
||
|
v.setSize(vw,0);
|
||
|
_15(v,l);
|
||
|
if(v.headerContentNode&&v.headerContentNode.firstChild){
|
||
|
vw=v.getColumnsWidth()+v.getScrollbarWidth();
|
||
|
}else{
|
||
|
vw=v.domNode.offsetWidth;
|
||
|
}
|
||
|
l+=vw;
|
||
|
}
|
||
|
i++;
|
||
|
var r=w;
|
||
|
for(var j=len-1;(v=this.views[j])&&(i<=j);j--){
|
||
|
vw=this.getViewWidth(j);
|
||
|
v.setSize(vw,0);
|
||
|
vw=v.domNode.offsetWidth;
|
||
|
r-=vw;
|
||
|
_15(v,r);
|
||
|
}
|
||
|
if(c<len){
|
||
|
v=this.views[c];
|
||
|
vw=Math.max(1,r-l);
|
||
|
v.setSize(vw+"px",0);
|
||
|
_15(v,l);
|
||
|
}
|
||
|
return l;
|
||
|
},renderRow:function(_16,_17,_18){
|
||
|
var _19=[];
|
||
|
for(var i=0,v,n,_1a;(v=this.views[i])&&(n=_17[i]);i++){
|
||
|
_1a=v.renderRow(_16);
|
||
|
n.appendChild(_1a);
|
||
|
_19.push(_1a);
|
||
|
}
|
||
|
if(!_18){
|
||
|
this.normalizeRowNodeHeights(_19);
|
||
|
}
|
||
|
},rowRemoved:function(_1b){
|
||
|
this.onEach("rowRemoved",[_1b]);
|
||
|
},updateRow:function(_1c,_1d){
|
||
|
for(var i=0,v;v=this.views[i];i++){
|
||
|
v.updateRow(_1c);
|
||
|
}
|
||
|
if(!_1d){
|
||
|
this.renormalizeRow(_1c);
|
||
|
}
|
||
|
},updateRowStyles:function(_1e){
|
||
|
this.onEach("updateRowStyles",[_1e]);
|
||
|
},setScrollTop:function(_1f){
|
||
|
var top=_1f;
|
||
|
for(var i=0,v;v=this.views[i];i++){
|
||
|
top=v.setScrollTop(_1f);
|
||
|
if(_2("ie")&&v.headerNode&&v.scrollboxNode){
|
||
|
v.headerNode.scrollLeft=v.scrollboxNode.scrollLeft;
|
||
|
}
|
||
|
}
|
||
|
return top;
|
||
|
},getFirstScrollingView:function(){
|
||
|
for(var i=0,v;(v=this.views[i]);i++){
|
||
|
if(v.hasHScrollbar()||v.hasVScrollbar()){
|
||
|
return v;
|
||
|
}
|
||
|
}
|
||
|
return null;
|
||
|
}});
|
||
|
});
|