PleaseWaitMessage.js [plain text]
WebInspector.PleaseWaitMessage = function()
{
this.element = document.createElement("div");
this.element.className = "please-wait-msg";
this.element.textContent = WebInspector.UIString("Please wait\u2026");
this.cancelButton = document.createElement("button");
this.cancelButton.textContent = WebInspector.UIString("Cancel");
this.cancelButton.addEventListener("click", this._cancelClicked.bind(this), false);
}
WebInspector.PleaseWaitMessage.prototype = {
_cancelClicked: function()
{
if (this._cancelCallback) {
var cancelCallback = this._cancelCallback;
delete this._cancelCallback;
cancelCallback();
}
},
hide: function()
{
var instance = WebInspector.PleaseWaitMessage.prototype.instance;
var message = instance.element;
if (message.parentNode)
message.parentNode.removeChild(message);
},
get instance()
{
if (!("_instance" in WebInspector.PleaseWaitMessage.prototype))
WebInspector.PleaseWaitMessage.prototype._instance = new WebInspector.PleaseWaitMessage();
return WebInspector.PleaseWaitMessage.prototype._instance;
},
show: function(element, cancelCallback)
{
var instance = WebInspector.PleaseWaitMessage.prototype.instance;
var message = instance.element;
if (message.parentNode === element)
return;
else if (message.parentNode)
message.parentNode.removeChild(message);
if (message.childNodes.length > 1)
message.removeChild(instance.cancelButton);
if (cancelCallback) {
message.appendChild(instance.cancelButton);
instance._cancelCallback = cancelCallback;
}
element.appendChild(message);
},
showAndWaitFor: function(element, listenObject, listenEvent)
{
var instance = WebInspector.PleaseWaitMessage.prototype.instance;
var message = instance.element;
if (message.parentNode === element)
return;
listenObject.addEventListener(listenEvent, WebInspector.PleaseWaitMessage.prototype.unlistenAndHide.bind(instance, listenObject, listenEvent), instance);
WebInspector.PleaseWaitMessage.prototype.show(element);
},
unlistenAndHide: function(listenObject, listenEvent)
{
var instance = WebInspector.PleaseWaitMessage.prototype.instance;
listenObject.removeEventListener(listenEvent, WebInspector.PleaseWaitMessage.prototype.unlistenAndHide, instance);
WebInspector.PleaseWaitMessage.prototype.hide();
}
};