DwtUiEvent.js
Summary
No overview generated for 'DwtUiEvent.js'
function DwtUiEvent(init) {
if (arguments.length == 0) return;
DwtEvent.call(this, true);
this.reset();
}
DwtUiEvent.prototype = new DwtEvent;
DwtUiEvent.prototype.constructor = DwtUiEvent;
DwtUiEvent.prototype.toString =
function() {
return "DwtUiEvent";
}
DwtUiEvent.prototype.reset =
function() {
this.dwtObj = null
this.altKey = false;
this.ctrlKey = false;
this.shiftKey = false;
this.target = null;
this.type = null;
this.docX = -1;
this.docY = -1;
this.elementX = -1;
this.elementY = -1;
this._stopPropagation = false;
this._returnValue = true;
}
DwtUiEvent.getEvent =
function(ev) {
return (ev) ? ev : ((window.event) ? window.event : null);
}
DwtUiEvent.getTarget =
function(ev) {
ev = DwtUiEvent.getEvent(ev);
if (ev && ev.target) {
return ev.target.nodeType == 3 ? ev.target.parentNode : ev.target;
} else if (ev && ev.srcElement) {
return ev.srcElement;
} else {
return null;
}
}
DwtUiEvent.getTargetWithProp =
function(ev, prop) {
var htmlEl = DwtUiEvent.getTarget(ev);
while (htmlEl) {
if (Dwt.getAttr(htmlEl, prop) != null) {
return htmlEl;
}
htmlEl = htmlEl.parentNode;
}
return null;
}
DwtUiEvent.getTargetWithProps =
function(ev, props) {
var htmlEl = DwtUiEvent.getTarget(ev);
while (htmlEl) {
var okay = true;
for (var i in props) {
if (htmlEl[props[i]] == null) {
htmlEl = htmlEl.parentNode;
okay = false;
break;
}
}
if (okay)
return htmlEl;
}
return null;
}
DwtUiEvent.getDwtObjFromEvent =
function(ev) {
var htmlEl = DwtUiEvent.getTargetWithProp(ev, "dwtObj");
return htmlEl ? Dwt.getObjectFromElement(htmlEl) : null;
}
DwtUiEvent.getDwtObjWithProp =
function(ev, prop) {
var htmlEl = DwtUiEvent.getTargetWithProps(ev, ["dwtObj", prop]);
return htmlEl ? Dwt.getObjectFromElement(htmlEl) : null;
}
DwtUiEvent.copy =
function(dest, src) {
dest.altKey = src.altKey;
dest.ctrlKey = src.ctrlKey;
dest.shiftKey = src.shiftKey;
dest.target = src.target;
dest.type = src.type;
dest.dwtObj = src.dwtObj;
dest.docX = src.docX;
dest.docY = src.docY;
dest.elementX = src.elementX;
dest.elementY = src.elementY;
dest._stopPropagation = src._stopPropagation;
dest._returnValue = src._returnValue;
}
DwtUiEvent.prototype.setFromDhtmlEvent =
function(ev) {
ev = DwtUiEvent.getEvent(ev);
if (!ev) return;
this.altKey = ev.altKey;
this.ctrlKey = ev.ctrlKey;
this.shiftKey = ev.shiftKey;
this.type = ev.type;
this.target = DwtUiEvent.getTarget(ev);
var target = this.target;
while (target != null) {
if (target.dwtObj != null) {
this.dwtObj = Dwt.getObjectFromElement(target);
break;
}
target = target.parentNode;
}
if (ev.pageX != null) {
this.docX = ev.pageX;
this.docY = ev.pageY;
} else if (ev.clientX != null) {
this.docX = ev.clientX + document.body.scrollLeft - document.body.clientLeft;
this.docY = ev.clientY + document.body.scrollTop - document.body.clientTop;
if (document.body.parentElement) {
var bodParent = document.body.parentElement;
this.docX += bodParent.scrollLeft - bodParent.clientLeft;
this.docY += bodParent.scrollTop - bodParent.clientTop;
}
}
if (ev.offsetX != null) {
this.elementX = ev.offsetX;
this.elementY = ev.offsetY;
} else if (ev.layerX != null) {
this.elementX = ev.layerX;
this.elementY = ev.layerY;
} else {
this.elementX = Dwt.DEFAULT;
this.elementY = Dwt.DEFAULT;
}
return ev;
}
DwtUiEvent.prototype.setToDhtmlEvent =
function(ev) {
DwtUiEvent.setBehaviour(ev, this._stopPropagation, this._returnValue);
}
DwtUiEvent.setBehaviour =
function(ev, stopPropagation, allowDefault) {
ev = DwtUiEvent.getEvent(ev);
if (ev.stopPropagation != null) {
if (stopPropagation)
ev.stopPropagation();
if (!allowDefault)
ev.preventDefault();
} else {
ev.returnValue = allowDefault;
ev.cancelBubble = stopPropagation;
}
}
Documentation generated by
JSDoc on Thu Apr 27 13:54:34 2006