mirror of
http://git.whoc.org.uk/git/password-manager.git
synced 2025-12-17 11:57:02 +01:00
First version of the newly restructured repository
This commit is contained in:
101
frontend/beta/js/YUI-extensions/grid/GridDD.js
Normal file
101
frontend/beta/js/YUI-extensions/grid/GridDD.js
Normal file
@@ -0,0 +1,101 @@
|
||||
|
||||
// kill dependency issue
|
||||
if(YAHOO.util.DDProxy){
|
||||
/**
|
||||
* @class YAHOO.ext.grid.GridDD
|
||||
* Custom implementation of YAHOO.util.DDProxy used internally by the grid
|
||||
* @extends YAHOO.util.DDProxy
|
||||
*/
|
||||
YAHOO.ext.grid.GridDD = function(grid, bwrap){
|
||||
this.grid = grid;
|
||||
var ddproxy = document.createElement('div');
|
||||
ddproxy.id = grid.container.id + '-ddproxy';
|
||||
ddproxy.className = 'ygrid-drag-proxy';
|
||||
document.body.insertBefore(ddproxy, document.body.firstChild);
|
||||
YAHOO.util.Dom.setStyle(ddproxy, 'opacity', .80);
|
||||
var ddicon = document.createElement('span');
|
||||
ddicon.className = 'ygrid-drop-icon ygrid-drop-nodrop';
|
||||
ddproxy.appendChild(ddicon);
|
||||
var ddtext = document.createElement('span');
|
||||
ddtext.className = 'ygrid-drag-text';
|
||||
ddtext.innerHTML = " ";
|
||||
ddproxy.appendChild(ddtext);
|
||||
|
||||
this.ddproxy = ddproxy;
|
||||
this.ddtext = ddtext;
|
||||
this.ddicon = ddicon;
|
||||
YAHOO.util.Event.on(bwrap, 'click', this.handleClick, this, true);
|
||||
YAHOO.ext.grid.GridDD.superclass.constructor.call(this, bwrap.id, 'GridDD',
|
||||
{dragElId : ddproxy.id, resizeFrame: false});
|
||||
|
||||
this.unlockDelegate = grid.selModel.unlock.createDelegate(grid.selModel);
|
||||
};
|
||||
YAHOO.extendX(YAHOO.ext.grid.GridDD, YAHOO.util.DDProxy);
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.handleMouseDown = function(e){
|
||||
var row = this.grid.getRowFromChild(YAHOO.util.Event.getTarget(e));
|
||||
if(!row) return;
|
||||
if(this.grid.selModel.isSelected(row)){
|
||||
YAHOO.ext.grid.GridDD.superclass.handleMouseDown.call(this, e);
|
||||
}else {
|
||||
this.grid.selModel.unlock();
|
||||
YAHOO.ext.EventObject.setEvent(e);
|
||||
this.grid.selModel.rowClick(this.grid, row.rowIndex, YAHOO.ext.EventObject);
|
||||
YAHOO.ext.grid.GridDD.superclass.handleMouseDown.call(this, e);
|
||||
this.grid.selModel.lock();
|
||||
}
|
||||
};
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.handleClick = function(e){
|
||||
if(this.grid.selModel.isLocked()){
|
||||
setTimeout(this.unlockDelegate, 1);
|
||||
YAHOO.util.Event.stopEvent(e);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Updates the DD visual element to allow/not allow a drop
|
||||
* @param {Boolean} dropStatus True if drop is allowed on the target
|
||||
*/
|
||||
YAHOO.ext.grid.GridDD.prototype.setDropStatus = function(dropStatus){
|
||||
if(dropStatus === true){
|
||||
YAHOO.util.Dom.replaceClass(this.ddicon, 'ygrid-drop-nodrop', 'ygrid-drop-ok');
|
||||
}else{
|
||||
YAHOO.util.Dom.replaceClass(this.ddicon, 'ygrid-drop-ok', 'ygrid-drop-nodrop');
|
||||
}
|
||||
};
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.startDrag = function(e){
|
||||
this.ddtext.innerHTML = this.grid.getDragDropText();
|
||||
this.setDropStatus(false);
|
||||
this.grid.selModel.lock();
|
||||
this.grid.fireEvent('startdrag', this.grid, this, e);
|
||||
};
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.endDrag = function(e){
|
||||
YAHOO.util.Dom.setStyle(this.ddproxy, 'visibility', 'hidden');
|
||||
this.grid.fireEvent('enddrag', this.grid, this, e);
|
||||
};
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.autoOffset = function(iPageX, iPageY) {
|
||||
this.setDelta(-12, -20);
|
||||
};
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.onDragEnter = function(e, id) {
|
||||
this.setDropStatus(true);
|
||||
this.grid.fireEvent('dragenter', this.grid, this, id, e);
|
||||
};
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.onDragDrop = function(e, id) {
|
||||
this.grid.fireEvent('dragdrop', this.grid, this, id, e);
|
||||
};
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.onDragOver = function(e, id) {
|
||||
this.grid.fireEvent('dragover', this.grid, this, id, e);
|
||||
};
|
||||
|
||||
YAHOO.ext.grid.GridDD.prototype.onDragOut = function(e, id) {
|
||||
this.setDropStatus(false);
|
||||
this.grid.fireEvent('dragout', this.grid, this, id, e);
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user