(function($, rf) { // Constructor definition rf.ui.Message = function(componentId, options) { // call constructor of parent class $super.constructor.call(this, componentId, options, defaultOptions); if (this.options.isMessages) { this.severityClasses = ["rf-msgs-inf", "rf-msgs-wrn", "rf-msgs-err", "rf-msgs-ftl"]; this.summaryClass = "rf-msgs-sum"; this.detailClass = "rf-msgs-det"; } else { this.severityClasses = ["rf-msg-inf", "rf-msg-wrn", "rf-msg-err", "rf-msg-ftl"]; this.summaryClass = "rf-msg-sum"; this.detailClass = "rf-msg-det"; } }; // Extend component class and add protected methods from parent class to our container rf.ui.Base.extend(rf.ui.Message); // define super class link var $super = rf.ui.Message.$super; var defaultOptions = { showSummary:true, level:0, isMessages: false, globalOnly: false }; var onMessage = function (event, element, data) { var content = $(rf.getDomElement(this.id)); var sourceId = data.sourceId; var message = data.message; if (!this.options.forComponentId) { if (!message || this.options.globalOnly) { // rf.csv.clearMessage var element; while (element = rf.getDomElement(this.id + ':' + sourceId)) { $(element).remove(); } } else { renderMessage.call(this, sourceId, message); } } else if (this.options.forComponentId === sourceId) { content.empty(); renderMessage.call(this, sourceId, message); } } var renderMessage = function(index, message) { if (message && message.severity >= this.options.level) { var content = $(rf.getDomElement(this.id)); var msgContent = $("", {'class':(this.severityClasses)[message.severity],"id":this.id + ':' + index}); if (message.summary) { if (this.options.tooltip) { msgContent.attr("title", message.summary); } else if (this.options.showSummary) { msgContent.append($("", {"class":(this.summaryClass)}).text(message.summary)); } } if (this.options.showDetail && message.detail) { msgContent.append($("", {"class":(this.detailClass)}).text(message.detail)); } content.append(msgContent); } } var bindEventHandlers = function () { rf.Event.bind(window.document, rf.Event.MESSAGE_EVENT_TYPE + this.namespace, onMessage, this); }; $.extend(rf.ui.Message.prototype, { name: "Message", __bindEventHandlers: bindEventHandlers, destroy : function() { rf.Event.unbind(window.document, rf.Event.MESSAGE_EVENT_TYPE + this.namespace); $super.destroy.call(this); } }); })(jQuery, window.RichFaces || (window.RichFaces = {}));