Alien-Web-ExtJS-V3
view release on metacpan or search on metacpan
share/docs/source/ColumnResizer.html view on Meta::CPAN
<span id='Ext-list-ColumnResizer-method-setBoundaries'> // Sets up the boundaries for the drag/drop operation
</span> setBoundaries: function(relativeX){
var view = this.view,
headerIndex = this.headerIndex,
width = view.innerHd.getWidth(),
relativeX = view.innerHd.getX(),
minWidth = Math.ceil(width * this.minPct),
maxWidth = width - minWidth,
numColumns = view.columns.length,
headers = view.innerHd.select('em', true),
minX = minWidth + relativeX,
maxX = maxWidth + relativeX,
header;
if (numColumns == 2) {
this.minX = minX;
this.maxX = maxX;
}else{
header = headers.item(headerIndex + 2);
this.minX = headers.item(headerIndex).getX() + minWidth;
this.maxX = header ? header.getX() - minWidth : maxX;
if (headerIndex == 0) {
// First
this.minX = minX;
} else if (headerIndex == numColumns - 2) {
// Last
this.maxX = maxX;
}
}
},
<span id='Ext-list-ColumnResizer-method-onDrag'> onDrag: function(e){
</span> var me = this,
cursorX = me.tracker.getXY()[0].constrain(me.minX, me.maxX);
me.proxy.setWidth(cursorX - this.dragX);
},
<span id='Ext-list-ColumnResizer-method-onEnd'> onEnd: function(e){
</span> /* calculate desired width by measuring proxy and then remove it */
var newWidth = this.proxy.getWidth(),
index = this.headerIndex,
view = this.view,
columns = view.columns,
width = view.innerHd.getWidth(),
newPercent = Math.ceil(newWidth * view.maxColumnWidth / width) / 100,
disabled = this.headersDisabled,
headerCol = columns[index],
otherCol = columns[index + 1],
totalPercent = headerCol.width + otherCol.width;
this.proxy.remove();
headerCol.width = newPercent;
otherCol.width = totalPercent - newPercent;
delete this.dragHd;
view.setHdWidths();
view.refresh();
setTimeout(function(){
view.disableHeaders = disabled;
}, 100);
}
});
// Backwards compatibility alias
Ext.ListView.ColumnResizer = Ext.list.ColumnResizer;</pre>
</body>
</html>
( run in 0.517 second using v1.01-cache-2.11-cpan-ceb78f64989 )