⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grids.js

📁 ajax 框价.是个好工具.javascript 矿家.可以用在任何平台.
💻 JS
📖 第 1 页 / 共 5 页
字号:
/* * Bindows 1.5 * http://www.bindows.net/ * Copyright (c) 2003-2005 MB Technologies * * Bindows(tm) belongs to MB Technologies (Georgia, USA). All rights reserved. * You are not allowed to copy or modify this code. Commercial use requires * license. */function BiGridHeaders()
{if(_biInPrototype)return;BiComponent.call(this);this._columnWidths=[];this._columnOrders=[];this._invertedColumnOrders=[];this.setCssClassName("bi-tree-headers");this.setTop(0);this.setSize(296,18);this._resizeHandle=new BiResizeHandle;this._moveHandle=new BiMoveHandle;this._moveHandle.setMoveDirection("horizontal");this._resizeHandle.addEventListener("beforeresize",this._onBeforeResizeHandleResize,this);this._resizeHandle.addEventListener("resize",this._onResizeHandleResize,this);this._resizeHandle.addEventListener("resizeend",this._onResizeHandleResizeEnd,this);this._moveHandle.addEventListener("moveend",this._onMoveHandleMoveEnd,this);this._moveHandle.addEventListener("move",this._onMoveHandleMove,this);this._filler=new this._gridHeaderFillerConstructor;this.add(this._filler);}
_p=_biExtend(BiGridHeaders,BiComponent,"BiGridHeaders");_p._gridHeaderFillerConstructor=BiGridHeaderFiller;_p._gridHeaderConstructor=BiGridHeader;_p._sortColumn= -1;_p._ascending=null;_p._columnCount=0;_p._fitColumnWidths=false;BiGridHeaders.prototype.getFitColumnWidths=function(){return this._fitColumnWidths;};_p.setFitColumnWidths=function(b)
{if(this._fitColumnWidths!=b)
{this._fitColumnWidths=b;if(this.getCreated())
this.layoutAllChildren();}};BiGridHeaders.prototype.getFiller=function(){return this._filler;};_p.layoutAllChildren=function()
{if(this._fitColumnWidths)
this._distributeColumns();var l=Math.min(this._columnCount,this._children.length);var sum=0;var j;for(var i=0;i<l;i++)
{j=this._columnOrders[i];if(this._children[j].getVisible())
sum+=this._columnWidths[j];}
var fillerWidth=this.getCreated()?this.getClientWidth()-sum:0;if(this.getRightToLeft())
{this._filler.setLeft(0);this._filler.setWidth(fillerWidth);var x=fillerWidth;for(i=l-1;i>=0;i--)
{j=this._columnOrders[i]
if(this._children[j].getVisible())
{this._children[j].setLeft(x);this._children[j].setWidth(this._columnWidths[j]);x+=this._columnWidths[j];}}}
else {x=0;for(i=0;i<l;i++)
{j=this._columnOrders[i];if(this._children[j].getVisible())
{this._children[j].setLeft(x);this._children[j].setWidth(this._columnWidths[j]);x+=this._columnWidths[j];}}
this._filler.setLeft(x);if(this.getCreated()){this._filler.setWidth(fillerWidth);}}
BiComponent.prototype.layoutAllChildren.call(this);};_p._distributeColumns=function()
{var sBefore=this._columnWidths.join("-");var l=Math.min(this._columnCount,this._children.length);var cs=this._children;var j,mw,i;var sum=0;var minSum=0;var availWidth=this.getClientWidth();for(i=0;i<l;i++)
{j=this._columnOrders[i];if(this._children[j].getVisible())
{mw=this._children[j].getMinimumWidth();availWidth-=mw;sum+=this._columnWidths[j]-mw;minSum+=mw;}}
if(availWidth<0)
availWidth=0;if(sum<=0)
sum=minSum;var w;var res=new Array(l);for(i=0;i<l;i++)
{if(this._children[i].getVisible())
{w=this._columnWidths[i];mw=this._children[i].getMinimumWidth();this._columnWidths[i]=mw+Math.round((w-mw)/sum*availWidth);}}
var sAfter=this._columnWidths.join("-");if(sAfter!=sBefore)
this.dispatchEvent(new BiEvent("columnwidthschanged"));};_p.add=function(oChild,oBefore){if(oBefore==null&&oChild!=this._filler)
oBefore=this._filler;BiComponent.prototype.add.call(this,oChild,oBefore);if(oChild instanceof BiGridHeader&&!(oChild instanceof BiGridHeaderFiller)){oChild._columnIndex=this._children.indexOf(oChild);}};_p.remove=function(oChild){BiComponent.prototype.remove.call(this,oChild);if(oChild instanceof BiGridHeader&&!oChild instanceof BiGridHeaderFiller){delete oChild._columnIndex;}};BiGridHeaders.prototype.getColumnCount=function(){return this._columnCount;};BiGridHeaders.prototype.setColumnCount=function(v){this._columnCount=v;};BiGridHeaders.prototype.getColumnWidths=function(){return this._columnWidths;};_p.setColumnWidths=function(aWidths)
{var sBefore=this._columnWidths.join("-");this._columnWidths=aWidths;for(var i=0;i<aWidths.length;i++)
this._columnWidths[i]=Number(aWidths[i]);var sAfter=this._columnWidths.join("-");if(sAfter!=sBefore)
this.dispatchEvent(new BiEvent("columnwidthschanged"));};BiGridHeaders.prototype.getColumnOrders=function(){return this._columnOrders;};_p.setColumnOrders=function(aOrders){var sBefore=this._columnOrders.join("-");this._columnOrders=aOrders;this._invertedColumnOrders=new Array(aOrders.length);for(var i=0;i<aOrders.length;i++)
{this._columnOrders[i]=Number(aOrders[i]);this._invertedColumnOrders[aOrders[i]]=i;}
var sAfter=this._columnOrders.join("-");if(sAfter!=sBefore)
this.dispatchEvent(new BiEvent("columnorderschanged"));};BiGridHeaders.prototype.getSortColumn=function(){return this._sortColumn;};_p.setSortColumn=function(n){if(this._sortColumn!=n){if(this._sortColumn!= -1)
this._children[this._sortColumn].setAscending(null);this._sortColumn=n;if(n!= -1)
this._children[this._sortColumn].setAscending(this._ascending);this.dispatchEvent(new BiEvent("sortcolumnchanged"));}};BiGridHeaders.prototype.getAscending=function(){return this._ascending;};_p.setAscending=function(b){if(this._ascending!=b){this._ascending=b;if(this._children[this._sortColumn])
this._children[this._sortColumn].setAscending(this._ascending);this.dispatchEvent(new BiEvent("ascendingchanged"));}};_p._onBeforeResizeHandleResize=function(e)
{this._beforeWidth=e.getTarget().getHandleFor().getWidth();};_p._onResizeHandleResize=function(e){if(this._fitColumnWidths)
{var current=e.getTarget().getHandleFor();var visualIndex=this._invertedColumnOrders[current._columnIndex];var nextIndex=this._columnOrders[visualIndex+1];var next=this._children[nextIndex];if(next){var delta=current.getWidth()-this._beforeWidth;var mw=next.getMinimumWidth();var w=Math.max(mw,next.getWidth()-delta);next.setWidth(w);if(w==mw)
current.setWidth(this._beforeWidth);}}
var l=Math.min(this._columnWidths.length,this._children.length);for(var i=0;i<l;i++){this._columnWidths[i]=this._children[i].getWidth();}
this._columnResized=true;this.layoutAllChildren();this.dispatchEvent(new BiEvent("columnwidthschanging"));};_p._onResizeHandleResizeEnd=function(e){var sAfter=this._columnWidths.join("-");if(this._beforeColumnWidths!=sAfter){delete this._beforeColumnWidths;this.dispatchEvent(new BiEvent("columnwidthschanged"));}};_p._onMoveHandleMove=function(e){if(Math.abs(this._moveHeader.getLeft()-this._currentDragHeader.getLeft())>5){this._moveHeader.setVisible(true);this._headerDropMarker.setVisible(true);this._columnDragged=true;}
var left=BiMouseEvent.getScreenX()-this.getScreenLeft()-this.getInsetLeft()+this.getScrollLeft();if(left<0)return;var x=0;var l=this._columnWidths.length;var i=0;var j;for(;i<l;i++){j=this._columnOrders[i];if(this._children[j].getVisible())
{if(left>=x-(this._columnWidths[this._columnOrders[i-1]]||0)/2&&left<=x+this._columnWidths[j]/2)
break;x+=this._columnWidths[j];}}
this._headerDropMarker.setLeft(x-1);this._headerDropMarker._dropIndex=i;};_p._onMoveHandleMoveEnd=function(e){var dropIndex=this._headerDropMarker._dropIndex;this._moveHandle.setHandleFor(null);this.remove(this._moveHeader);this._moveHeader.dispose();this._moveHeader=null;this.remove(this._headerDropMarker);this._headerDropMarker.dispose();this._headerDropMarker=null;if(typeof dropIndex=="number"){var colIndex=this._currentDragHeader._columnIndex;var visIndex=this._invertedColumnOrders[colIndex];if(visIndex==dropIndex||visIndex+1==dropIndex){}
else{if(dropIndex<visIndex){var tmp=this._columnOrders.copy();tmp.remove(colIndex);tmp.insertAt(colIndex,dropIndex);this.setColumnOrders(tmp);}
else{var tmp=this._columnOrders.copy();tmp.remove(colIndex);tmp.insertAt(colIndex,dropIndex-1);this.setColumnOrders(tmp);}
this.layoutAllChildren();}}
if(this._currentDragHeader){this._currentDragHeader._setDownState(false);this._currentDragHeader=null;}};_p._startDrag=function(oSrc,e){this._columnResized=false;this._columnDragged=false;this._currentDragHeader=oSrc;this._moveHeader=new this._gridHeaderConstructor;var tm=application.getThemeManager();tm.setStateValue(this._moveHeader,"active",true);tm.applyAppearance(this._moveHeader);this._moveHeader.setVisible(false);this._moveHeader.setOpacity(0.7);this._moveHeader.setText(oSrc.getText());this._moveHeader.setAscending(oSrc.getAscending());this._moveHeader.setLeft(oSrc.getLeft());this._moveHeader.setWidth(oSrc.getWidth());this._moveHeader.setZIndex(1);this.add(this._moveHeader);this._headerDropMarker=new BiComponent;this._headerDropMarker.setVisible(false);this._headerDropMarker.setBackColor("blue");this._headerDropMarker.setWidth(2);this._headerDropMarker.setTop(0);this._headerDropMarker.setBottom(0);this._headerDropMarker.setZIndex(1);this.add(this._headerDropMarker,this._moveHeader);this._moveHandle.setHandleFor(this._moveHeader);this._moveHandle.startMove(e);};_p.dispose=function()
{if(this._disposed)return;BiComponent.prototype.dispose.call(this);this._resizeHandle.dispose();this._moveHandle.dispose();this._filler.dispose();if(this._moveHeader)this._moveHeader.dispose();if(this._headerDropMarker)this._headerDropMarker.dispose();this._resizeHandle=null;this._moveHandle=null;this._filler=null;this._moveHeader=null;this._headerDropMarker=null;};function BiGridHeader(sText){if(_biInPrototype)return;BiLabel.call(this,sText);this.setCssClassName("bi-grid-header");this.setAppearance("grid-header");this.setIconPosition("right");this.setTop(0);this.setBottom(0);this.addEventListener("mousedown",this._onMouseDown);this.addEventListener("mouseup",this._onMouseUp);this.addEventListener("mousemove",this._onMouseMove);}
_p=_biExtend(BiGridHeader,BiLabel,"BiGridHeader");_p._minimumWidth=20;_p._ascending=null;_p._resizable=true;_p._sortable=true;_p._movable=true;BiGridHeader.prototype.getResizable=function(){return this._resizable;};BiGridHeader.prototype.setResizable=function(v){this._resizable=v;};BiGridHeader.prototype.getSortable=function(){return this._sortable;};BiGridHeader.prototype.setSortable=function(v){this._sortable=v;};BiGridHeader.prototype.getMovable=function(){return this._movable;};BiGridHeader.prototype.setMovable=function(v){this._movable=v;};BiGridHeader.prototype.getColumnIndex=function(){return this._columnIndex;};BiGridHeader.prototype.getAscending=function(){return this._ascending;};_p.setAscending=function(b){this._ascending=b;if(b==null)
this.setIcon(null);else if(b)
this.setIcon(this.getAscendingIcon());else this.setIcon(this.getDescendingIcon());};BiGridHeader.prototype.setAscendingIcon=function(v){this._ascendingIcon=v;};_p.getAscendingIcon=function()
{if(this._ascendingIcon!=null)
return this._ascendingIcon;return new BiImage(application.getTheme().getAppearanceProperty("grid","ascending-icon"));};BiGridHeader.prototype.setDescendingIcon=function(v){this._descendingIcon=v;};_p.getDescendingIcon=function()
{if(this._descendingIcon!=null)
return this._descendingIcon;return new BiImage(application.getTheme().getAppearanceProperty("grid","descending-icon"));};_p._onMouseDown=function(e){if(e.getButton()!=BiMouseEvent.LEFT)
return;if(this._resizeDir!=""&&this._resizeDir!=null){var p=this._parent;if(this._resizeDir=="e"){p._resizeHandle.setHandleFor(this);}
else{var visualIndex=p._invertedColumnOrders[this._columnIndex];var previousIndex=p._columnOrders[visualIndex-1];p._resizeHandle.setHandleFor(p._children[previousIndex]);}
p._columnResized=false;p._columnDragged=false;p._beforeColumnWidths=p._columnWidths.join("-");p._resizeHandle.startResize("e",e);}
else{if(this._sortable)
this._setDownState(true);if(this._movable){this.setCursor("");this._parent._startDrag(this,e);}}};_p._setDownState=function(b)
{var tm=application.getThemeManager();tm.setStateValue(this,"active",b);tm.applyAppearance(this);};_p._onMouseUp=function(e){if(e.getButton()!=BiMouseEvent.LEFT)
return;if(this._parent._currentDragHeader&&this!=this._parent._currentDragHeader){this._parent._currentDragHeader._onMouseUp(e);return;}
if(this._resizeDir!="")
return;if(this._sortable){this._setDownState(false);}
if(!this._parent._columnDragged&&!this._parent._columnResized&&this._sortable){var oldAscending=this._ascending;var newAscending=oldAscending==null?true:!oldAscending;if(this._parent.getSortColumn()==this._columnIndex)
this._parent.setAscending(newAscending);else{this._parent._ascending=newAscending;this._parent.setSortColumn(this._columnIndex);}}};_p._onMouseMove=function(e){var p=this.getParent();var visualIndex=p._invertedColumnOrders[this._columnIndex];var previousIndex=p._columnOrders[visualIndex-1];var ps=p._children[previousIndex];if(!this._resizable&&(ps==null||!ps._resizable))
return;if(p._currentDragHeader)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -