195 lines
6.2 KiB
JavaScript
195 lines
6.2 KiB
JavaScript
Type.registerNamespace("Sys.Extended.UI.HtmlEditor.Popups");
|
|
|
|
Sys.Extended.UI.HtmlEditor.Popups.PopupCommonButton = function(element) {
|
|
Sys.Extended.UI.HtmlEditor.Popups.PopupCommonButton.initializeBase(this, [element]);
|
|
|
|
this._loaded = false;
|
|
this._activated = null;
|
|
this._app_onload$delegate = Function.createDelegate(this, this._app_onload);
|
|
this._cssClass = "";
|
|
this._name = "";
|
|
|
|
this._onmouseover$delegate = Function.createDelegate(this, this._onmouseover);
|
|
this._onmouseout$delegate = Function.createDelegate(this, this._onmouseout);
|
|
this._onmousedown$delegate = Function.createDelegate(this, this._onmousedown);
|
|
this._onmouseup$delegate = Function.createDelegate(this, this._onmouseup);
|
|
this._onclick$delegate = Function.createDelegate(this, this._onclick);
|
|
}
|
|
|
|
Sys.Extended.UI.HtmlEditor.Popups.PopupCommonButton.prototype = {
|
|
|
|
isImage: function() {
|
|
return true;
|
|
},
|
|
|
|
set_toolTip: function(value) {
|
|
this.get_element().title = value;
|
|
},
|
|
|
|
get_toolTip: function() {
|
|
return this.get_element().title;
|
|
},
|
|
|
|
set_name: function(value) {
|
|
this._name = value;
|
|
},
|
|
|
|
get_name: function() {
|
|
return this._name;
|
|
},
|
|
|
|
initialize: function() {
|
|
var element = this.get_element();
|
|
|
|
Sys.Extended.UI.HtmlEditor.Popups.PopupCommonButton.callBaseMethod(this, "initialize");
|
|
Sys.Application.add_load(this._app_onload$delegate);
|
|
this._cssClass = element.className.split(" ")[0];
|
|
|
|
if(this.isImage()) {
|
|
$addHandlers(element, {
|
|
mouseover: this._onmouseover$delegate,
|
|
mouseout: this._onmouseout$delegate,
|
|
mousedown: this._onmousedown$delegate,
|
|
mouseup: this._onmouseup$delegate,
|
|
click: this._onclick$delegate
|
|
});
|
|
}
|
|
|
|
if(Sys.Extended.UI.HtmlEditor.isIE) {
|
|
function diveSelectable(el) {
|
|
if(el.nodeType == 1 && el.tagName) {
|
|
var tag = el.tagName.toUpperCase();
|
|
|
|
if(tag != "INPUT" && tag != "TEXTAREA" && tag != "IFRAME")
|
|
el.unselectable = "on";
|
|
|
|
for(var k = 0; k < el.childNodes.length; k++)
|
|
diveSelectable(el.childNodes.item(k));
|
|
}
|
|
}
|
|
|
|
diveSelectable(element);
|
|
} else {
|
|
try {
|
|
element.style.MozUserSelect = "none";
|
|
element.parentNode.style.MozUserSelect = "none";
|
|
} catch(ex) { }
|
|
}
|
|
},
|
|
|
|
activate: function(element) {
|
|
this._activated = element;
|
|
|
|
if(this.isImage()) {
|
|
Sys.Extended.UI.HtmlEditor._addEvent(this._activated, "mouseover", this._onmouseover$delegate);
|
|
Sys.Extended.UI.HtmlEditor._addEvent(this._activated, "mouseout", this._onmouseout$delegate);
|
|
Sys.Extended.UI.HtmlEditor._addEvent(this._activated, "mousedown", this._onmousedown$delegate);
|
|
Sys.Extended.UI.HtmlEditor._addEvent(this._activated, "mouseup", this._onmouseup$delegate);
|
|
Sys.Extended.UI.HtmlEditor._addEvent(this._activated, "click", this._onclick$delegate);
|
|
}
|
|
},
|
|
|
|
dispose: function() {
|
|
if(this.isImage() && this._activated != null) {
|
|
Sys.Extended.UI.HtmlEditor._removeEvent(this._activated, "mouseover", this._onmouseover$delegate);
|
|
Sys.Extended.UI.HtmlEditor._removeEvent(this._activated, "mouseout", this._onmouseout$delegate);
|
|
Sys.Extended.UI.HtmlEditor._removeEvent(this._activated, "mousedown", this._onmousedown$delegate);
|
|
Sys.Extended.UI.HtmlEditor._removeEvent(this._activated, "mouseup", this._onmouseup$delegate);
|
|
Sys.Extended.UI.HtmlEditor._removeEvent(this._activated, "click", this._onclick$delegate);
|
|
}
|
|
this._activated = null;
|
|
this._loaded = false;
|
|
|
|
Sys.Application.remove_load(this._app_onload$delegate);
|
|
Sys.Extended.UI.HtmlEditor.Popups.PopupCommonButton.callBaseMethod(this, "dispose");
|
|
},
|
|
|
|
_app_onload: function(sender, e) {
|
|
if(this._loaded)
|
|
return;
|
|
|
|
this.onButtonLoaded();
|
|
this._loaded = true;
|
|
},
|
|
|
|
onButtonLoaded: function() {
|
|
},
|
|
|
|
_onmouseover: function(e) {
|
|
if(!this.isEnable())
|
|
return false;
|
|
|
|
Sys.UI.DomElement.addCssClass(this._activated, this._cssClass + "_hover");
|
|
|
|
return true;
|
|
},
|
|
|
|
_onmouseout: function(e) {
|
|
if(!this.isEnable())
|
|
return false;
|
|
|
|
var _target1 = e.toElement || e.relatedTarget;
|
|
|
|
try {
|
|
while(_target1 && typeof _target1 != "undefined")
|
|
if(_target1 == this._activated)
|
|
break;
|
|
else
|
|
_target1 = _target1.parentNode;
|
|
} catch(e) {
|
|
_target1 = null;
|
|
}
|
|
|
|
if(_target1 != null)
|
|
return true;
|
|
|
|
Sys.UI.DomElement.removeCssClass(this._activated, this._cssClass + "_hover");
|
|
Sys.UI.DomElement.removeCssClass(this._activated, this._cssClass + "_mousedown");
|
|
|
|
return true;
|
|
},
|
|
|
|
_onmousedown: function(e) {
|
|
if(!this.isEnable())
|
|
return null;
|
|
|
|
Sys.UI.DomElement.addCssClass(this._activated, this._cssClass + "_mousedown");
|
|
|
|
return false;
|
|
},
|
|
|
|
_onmouseup: function(e) {
|
|
if(!this.isEnable())
|
|
return false;
|
|
|
|
Sys.UI.DomElement.removeCssClass(this._activated, this._cssClass + "_mousedown");
|
|
|
|
return true;
|
|
},
|
|
|
|
_onclick: function(e) {
|
|
if(!this.isEnable())
|
|
return false;
|
|
|
|
this.callMethod(e);
|
|
|
|
return true;
|
|
},
|
|
|
|
callMethod: function(e) {
|
|
var doc = this._activated.ownerDocument || this._activated.document || target,
|
|
contWin = doc.defaultView || doc.parentWindow,
|
|
method = contWin.popupMediator.get_callMethodByName(this._name);
|
|
|
|
Function.createDelegate(this, method)(contWin);
|
|
},
|
|
|
|
isEnable: function() {
|
|
if(!this._loaded)
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
Sys.Extended.UI.HtmlEditor.Popups.PopupCommonButton.registerClass("Sys.Extended.UI.HtmlEditor.Popups.PopupCommonButton", Sys.UI.Control); |