📄 olapgrid.js
字号:
this.remove(this._resizeOutline);this._resizeInfo=null;if(changed)
{}
this._gridFixedTopElement.style.cursor="";this._gridFixedLeftElement.style.cursor="";this._gridFixedCornerElement.style.cursor="";if(changed)
{this.invalidateLayout();}};_p._beforeSupportsDrop=function(e)
{var info=this.getCellInfoFromMouseEvent(e);this._stateManager.setDragOver(info,e);};_p.getDropDataTypes=function()
{if(this._dropDataTypes)
return this._dropDataTypes;var dm=this.getDataModel();var sm=this._stateManager;var vm=this.getViewManager();var info=sm.getDragOver();var axis=info.getAxis();if(info.getBody())
{return dm.getDropDataTypes(info.getColumn(),info.getRow())||[];}
else if(info.getHeader())
{if(this.getCanReorganizeDimensions())
{var dndm=new BiDragAndDropManager();if(dndm.getSource()==this)
{var info2=dndm.getData("bindows/BiOlapGridCellInfo");if(info2&&info2.getHeader())
{return["bindows/BiOlapGridCellInfo"];}}}
return dm.getAxisDropDataTypes(axis,info.getDimension(),info.getAxisPosition())||[];}
return[];};BiOlapGrid.prototype.getCanReorganizeDimensions=function(){return this._canReorganizeDimensions;};_p.setCanReorganizeDimensions=function(b)
{if(this._canReorganizeDimensions!=b)
{this._canReorganizeDimensions=b;if(b)
{this.addEventListener("dragstart",this._onDimDragStart);this.addEventListener("dragmove",this._onDimDragMove);this.addEventListener("dragout",this._onDimDragOut);this.addEventListener("dragdrop",this._onDimDragDrop);}
else {this.removeEventListener("dragstart",this._onDimDragStart);this.removeEventListener("dragmove",this._onDimDragMove);this.removeEventListener("dragout",this._onDimDragOut);this.removeEventListener("dragdrop",this._onDimDragDrop);}}};_p._onDimDragStart=function(e)
{var g=e.getTarget();if(g!=this)
return;var dm=g.getDataModel();var vm=g.getViewManager();var info=g.getStateManager().getDrag();if(info.getHeader())
{e.addData("bindows/BiOlapGridCellInfo",info);e.addAction("move");e.startDrag();if(!this._dropMarker)
{this._dropMarker=new BiOlapGridDropMarker;}
this._dropMarker.showDimensionDropMarker(g,info,this._shouldDropBefore(g,info,e));}};_p._onDimDragMove=function(e)
{var g=e.getTarget();if(g!=this)
return;var info=g.getStateManager().getDragOver();if(info.getHeader())
{this._dropMarker.showDimensionDropMarker(g,info,this._shouldDropBefore(g,info,e));}};_p._onDimDragOut=function(e)
{this._dropMarker.hide();};_p._onDimDragDrop=function(e)
{var g=e.getTarget();var dst=g.getStateManager().getDragOver();var before=this._shouldDropBefore(g,dst,e);var src=e.getData("bindows/BiOlapGridCellInfo");var relPos;if(before)
relPos=BiOlapGridDragEvent.BEFORE;else relPos=BiOlapGridDragEvent.AFTER;var e2=new BiOlapGridDragEvent("dimensiondrop",e);e2.initEvent(src,dst,relPos);this.dispatchEvent(e2);};_p._shouldDropBefore=function(g,info,e)
{var vm=g.getViewManager();if(info.getAxis()==0)
{var top=vm.getDimensionTop(info.getDimension());var height=vm.getDimensionHeight(info.getDimension());var y=e.getScreenY()-g.getScreenTop()-g.getInsetTop();return y-top<height/2;}
else {var left=vm.getDimensionLeft(info.getDimension());var width=vm.getDimensionWidth(info.getDimension());var x=e.getScreenX()-g.getScreenLeft()-g.getInsetLeft();return x-left<width/2;}};_p.getCellInfoBounds=function(oCellInfo)
{var x,y,w,h;var vm=this.getViewManager();var axis=oCellInfo.getAxis();if(oCellInfo.getQuadrant()==4)
{x=vm.getCellLeft(oCellInfo.getColumn())-vm.getCellLeft(vm.getNonFixedCell(axis));y=vm.getCellTop(oCellInfo.getRow())-vm.getCellTop(vm.getNonFixedCell(1-axis));x-=this.getScrollLeft();y-=this.getScrollTop();x+=vm.getFixedLeftWidth();y+=vm.getFixedTopHeight();w=vm.getCellWidth(oCellInfo.getColumn());h=vm.getCellHeight(oCellInfo.getRow());}
else if(oCellInfo.getQuadrant()==1)
{if(oCellInfo.getBody())
{x=vm.getCellLeft(oCellInfo.getColumn())-vm.getCellLeft(vm.getNonFixedCell(axis));y=vm.getCellTop(oCellInfo.getRow())-vm.getCellTop(vm.getFixedCell(1-axis));x-=this.getScrollLeft();x+=vm.getFixedLeftWidth();y+=vm.getAxisHeight();w=vm.getCellWidth(oCellInfo.getColumn());h=vm.getCellHeight(oCellInfo.getRow());}
else if(oCellInfo.getHeader())
{x=vm.getCellLeft(oCellInfo.getAxisPosition())-vm.getCellLeft(vm.getNonFixedCell(axis));y=vm.getDimensionTop(oCellInfo.getDimension());x-=this.getScrollLeft();x+=vm.getFixedLeftWidth();w=vm.getAxisCellWidth(oCellInfo.getDimension(),oCellInfo.getAxisPosition());h=vm.getDimensionHeight(oCellInfo.getDimension());}}
else if(oCellInfo.getQuadrant()==3)
{if(oCellInfo.getBody())
{x=vm.getCellLeft(oCellInfo.getColumn())-vm.getCellLeft(vm.getFixedCell(axis));y=vm.getCellTop(oCellInfo.getRow())-vm.getCellTop(vm.getNonFixedCell(1-axis));y-=this.getScrollTop();y+=vm.getFixedTopHeight();x+=vm.getAxisWidth();w=vm.getCellWidth(oCellInfo.getColumn());h=vm.getCellHeight(oCellInfo.getRow());}
else if(oCellInfo.getHeader())
{y=vm.getCellTop(oCellInfo.getAxisPosition())-vm.getCellTop(vm.getNonFixedCell(axis));x=vm.getDimensionLeft(oCellInfo.getDimension());y-=this.getScrollTop();y+=vm.getFixedTopHeight();h=vm.getAxisCellHeight(oCellInfo.getDimension(),oCellInfo.getAxisPosition());w=vm.getDimensionWidth(oCellInfo.getDimension());}}
else {if(oCellInfo.getBody())
{x=vm.getCellLeft(oCellInfo.getColumn())-vm.getCellLeft(vm.getFixedCell(axis));y=vm.getCellTop(oCellInfo.getRow())-vm.getCellTop(vm.getFixedCell(1-axis));x+=vm.getAxisWidth();y+=vm.getAxisHeight();w=vm.getCellWidth(oCellInfo.getColumn());h=vm.getCellHeight(oCellInfo.getRow());}
else if(oCellInfo.getHeader())
{if(oCellInfo.getAxis()==0)
{x=vm.getCellLeft(oCellInfo.getAxisPosition())-vm.getCellLeft(vm.getFixedCell(axis));y=vm.getDimensionTop(oCellInfo.getDimension());x+=vm.getAxisWidth();w=vm.getAxisCellWidth(oCellInfo.getDimension(),oCellInfo.getAxisPosition());h=vm.getDimensionHeight(oCellInfo.getDimension());}
else {y=vm.getCellTop(oCellInfo.getAxisPosition())-vm.getCellTop(vm.getFixedCell(axis));x=vm.getDimensionLeft(oCellInfo.getDimension());y+=vm.getAxisHeight();h=vm.getAxisCellHeight(oCellInfo.getDimension(),oCellInfo.getAxisPosition());w=vm.getDimensionWidth(oCellInfo.getDimension());}}}
return{left:x,top:y,width:w,height:h};};_p._updateAttachedComponents=function()
{var hc;for(hc in this._attachedComponents)
{this._addAttachedComponent(hc);}
this._oldAttachedComponents={};var vm=this.getViewManager();var dm=this.getDataModel();this._createUpdateCache();var uc=this._updateCache;var scrollLeft=uc.scrollLeft;var scrollTop=uc.scrollTop;var clientWidth=uc.scrollClientWidth;var clientHeight=uc.scrollClientHeight;var startRow=uc.startRow;var startCol=uc.startCol;var obj,c,x,y,w,h,row,col,axis,clipWidth,clipHeight;axis=0;var axisHeight=vm.getShowHeaders(axis)?vm.getAxisHeight():0;var axisWidth=vm.getShowHeaders(1-axis)?vm.getAxisWidth():0;var nonFixedRow=vm.getNonFixedCell(1-axis);var nonFixedCol=vm.getNonFixedCell(axis);scrollLeft=this.getScrollLeft();scrollTop=this.getScrollTop();for(hc in this._attachedComponents)
{obj=this._attachedComponents[hc];c=obj.component;row=obj.row;col=obj.col;axis=obj.axis;if(!this._getHasAttachedComponent(col,row))
{this._removeAttachedComponent(hc);}
else {x=vm.getCellLeft(col)+axisWidth-(col>=nonFixedCol?scrollLeft:0);y=vm.getCellTop(row)+axisHeight-(row>=nonFixedRow?scrollTop:0);if(row>=nonFixedRow&&row<startRow||col>=nonFixedCol&&col<startCol)
{this._removeAttachedComponent(hc);}
else {var changed=this._layoutChild2(c,x,y,obj.width,obj.height);clipWidth=x+obj.width>clientWidth?clientWidth-x:null;clipHeight=y+obj.height>clientHeight?clientHeight-y:null;c.setClip(null,null,clipWidth,clipHeight);if(changed)
c.invalidateLayout();}}}};_p._getHasAttachedComponent=function(x,y)
{var axis=0;var dm=this.getDataModel();if(x>=dm.getAxisPositionWidth(axis)||y>=dm.getAxisPositionWidth(1-axis))
{return false;}
var iem=this.getInlineEditModel();if(iem&&iem.getHasAttachedComponent(x,y))
{return true;}
var acm=this.getAttachedComponentModel();if(acm&&acm.getHasAttachedComponent(x,y))
{return true;}
return false;};_p._onAttachedComponentKeyDown=function(e)
{var c,iem,wasEditing,x,y,item,vm,acm,sm;switch(e.getKeyCode())
{case BiKeyboardEvent.ESC:iem=this.getInlineEditModel();wasEditing=iem&&iem.getIsEditing();if(wasEditing)
{iem.cancelEdit();}
break;case BiKeyboardEvent.ENTER:case BiKeyboardEvent.TAB:case BiKeyboardEvent.UP:case BiKeyboardEvent.DOWN:if(e.getDefaultPrevented())
break;sm=this._selectionModel;iem=this.getInlineEditModel();wasEditing=iem&&iem.getIsEditing();var oldItem=sm.getLeadItem();if(wasEditing)
iem._onComponentChange();sm.handleKeyDown(e);item=sm.getLeadItem();vm=this.getViewManager();acm=this.getAttachedComponentModel();if(item&&!item.equals(oldItem))
{x=item.getLeft();y=item.getTop();if(wasEditing)
{if(iem.getCanEdit(x,y))
{this._startEditing(item,e);}
else {iem.commitEdit();}}
else if(acm&&acm.getHasAttachedComponent(x,y))
{c=this._getAttachedComponent(x,y);}}
e.preventDefault();break;}
e.stopPropagation();this._updateInvalidSelectionState();};_p._onAttachedComponentFocusIn=function(e)
{var vm=this.getViewManager();var c=e.getCurrentTarget();var info=this.getCellInfoFromMouseEvent(e);var item=new BiArea(info.getColumn(),info.getRow());this._selectionModel.setSelectedItems([item]);this._selectionModel.setLeadItem(item);this._selectionModel.setAnchorItem(item);this._updateInvalidSelectionState();};_p._onAttachedComponentMouseDown=function(e)
{var info=this.getCellInfoFromMouseEvent(e);var item=new BiArea(info.getColumn(),info.getRow());this._stateManager.updateState(e.getType(),info,e);this._selectionModel.handleMouseDown(item,e);e.stopPropagation();};_p._onAttachedComponentMouseUp=function(e)
{var info=this.getCellInfoFromMouseEvent(e);var item=new BiArea(info.getColumn(),info.getRow());this._stateManager.updateState(e.getType(),info,e);this._selectionModel.handleMouseUp(item,e);e.stopPropagation();};_p._onAttachedComponentClick=function(e)
{var info=this.getCellInfoFromMouseEvent(e);var item=new BiArea(info.getColumn(),info.getRow());this._selectionModel.handleClick(item,e);e.stopPropagation();};_p._onAttachedComponentDblClick=function(e)
{var info=this.getCellInfoFromMouseEvent(e);var item=new BiArea(info.getColumn(),info.getRow());this._selectionModel.handleDblClick(item,e);e.stopPropagation();};_p.getPrintHtml=function()
{var vm=this.getViewManager();var axis=0;var x=vm.getFirstVisibleCell(axis);var y=vm.getFirstVisibleCell(1-axis);var sb=[];sb.push("<style>"+".grid-header{position:absolute}"+"table{table-layout:fixed}"+"</style>");var left=vm.getAxisWidth();var top=vm.getAxisHeight();sb.push("<div style=\"position:absolute;top:0;left:",left,"px\">");sb.push(this.getHeadersHtmlCode(x,Infinity,Infinity));sb.push("</div>");sb.push("<div style=\"position:absolute;left:0;top:",top,"px\">")
sb.push(this.getRowHeadersHtmlCode(y,Infinity,Infinity));sb.push("</div>");sb.push("<div style=\"position:absolute;top:",top,"px;left:",left,"px\">")
sb.push(this.getHtmlCode(x,y,Infinity,Infinity));sb.push("</div>");return sb.join("");};_p.print=function()
{var f=new BiIframe;var aw=application.getWindow();f.setLeft(0);f.setRight(0);f.setTop(0);f.setBottom(0);f.setBackColor("window");f.setBorder(new BiBorder(0));aw.add(f);var d=f.getContentDocument();d.open();d.write(this.getPrintHtml());d.close();var w=f.getContentWindow();w.focus();w.print();aw.remove(f);};_p._allowTab=false;BiOlapGrid.prototype.getAllowTab=function(){return this._allowTab;};_p.getAllowTab=function(){var iem=this.getInlineEditModel();return iem&&iem.getIsEditing()||this._allowTab;};function BiOlapGridDataModel()
{if(_biInPrototype)return;BiEventTarget.call(this);}
_p=_biExtend(BiOlapGridDataModel,BiEventTarget,"BiOlapGridDataModel");_p.getCellText=function(x,y)
{return y+", "+x;};_p.getHasIcon=function(x,y)
{return false;};_p.getIcon=function(x,y){};_p.getCellStyle=function(x,y)
{return"";};_p.getFillerCellStyle=function(x,y)
{return"";};_p.getIconStyle=function(x,y)
{return"";};_p.getContextMenu=function(x,y)
{return null;};_p.getAxisContextMenu=function(nAxis,nDim,nPos)
{return null;};_p.getToolTip=function(x,y)
{return null;};_p.getAxisToolTip=function(nAxis,nDim,nPos)
{return null;};_p.getDropDataTypes=function(x,y)
{return[];};_p.getAxisDropDataTypes=function(nAxis,nDim,nPos)
{return[];};_p.getAxisDimensionCount=function(nAxis)
{return 0;};_p.getAxisCellStartPosition=function(nAxis,nDim,nPos)
{return null;};_p.getAxisPositionWidth=function(nAxis)
{return 0;};_p.getAxisDimensionName=function(nAxis,nDim)
{return"Dimension "+nAxis+"."+nDim;};_p.getAxisCellText=function(nAxis,nDim,nPos)
{return"Cell "+nAxis+"."+nDim+"."+nPos;};_p.getAxisCellWidth=function(nAxis,nDim,nPos)
{return 1;};_p.getAxisCellStyle=function(nAxis,nDim,nPos)
{return"";};function BiOlapGridResizeOutline()
{if(_biInPrototype)return;BiResizeHandle.call(this);this.setRight(null);this._handleFor=this;this.setMinimumWidth(18);this.setMinimumHeight(18);this.setStyleProperty("MozAppearance","none");this.removeAll();}
_p=_biExtend(BiOlapGridResizeOutline,BiResizeHandle,"BiOlapGridResizeOutline");_p.setResizeDirection=function(sDir)
{BiResizeHandle.prototype.setResizeDirection.call(this,sDir);var b=new BiBorder;switch(sDir)
{case"e":b.setRight(1,"solid","black");this.setRight(null);this.setTop(0);this.setBottom(0);break;case"s":b.setBottom(1,"solid","black");this.setBottom(null);this.setLeft(0);this.setRight(0);break;}
this.setBorder(b);};function BiArea(nLeft,nTop,nWidth,nHeight)
{if(_biInPrototype)return;this._left=nLeft;this._top=nTop;if(nWidth!=null)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -