nope that didn't work...
here is the source for the control maybe I'm missing something...
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.beforePageLoad><![CDATA[#{javascript:if(param.containsKey("showmsg")){
var dummyAlerts = [{
"title":"This is a sample info",
"type":"Info",
"messages":[
{"detail":"Details with out a label"},
{"label":"Label no detail"}
]
},
{
"title":"This is a sample warning",
"type":"Warning",
"messages":[
{"label":"","detail":"Details with out a label"},
{"label":"Label2","detail":"Message details goes here"}
]
},
{
"title":"This is a sample Error",
"type":"Error",
"messages":[
{"label":"Label","detail":"Message details goes here"},
{"label":"Label2","detail":"Message details goes here"}
]
},
{
"title":"This is a sample Confirm",
"type":"Confirm",
"messages":[
{"label":"Label","detail":"Message details goes here"},
{"label":"Label2","detail":"Message details goes here"}
]
},
{
"title":"",
"type":"Confirm",
"messages":[
{"label":"Label","detail":"This message box has no title"}
]
}];
sessionScope.put("appMessages", dummyAlerts)
}
}]]></xp:this.beforePageLoad>
<xp:this.afterRenderResponse><![CDATA[#{javascript:sessionScope.remove("appMessages")}]]></xp:this.afterRenderResponse>
<xp:this.beforeRenderResponse><![CDATA[#{javascript:if(sessionScope.containsKey("previousMessages")){
var pClientIds:Array = sessionScope.get("previousMessages");
for (var x=0;x<pClientIds.length;x++){
var pInput:javax.faces.component.UIComponent = getComponent(pClientIds[x]);
if(pInput!= null){
pInput.styleClass = String(@ReplaceSubstring(pInput.styleClass,"lotusError ", ""));
}
}
sessionScope.remove("previousMessages")
}
var clientIds:Iterator = facesContext.getClientIdsWithMessages();
var previousMessages:Array = new Array();
var curMessages:appMessageBox = new appMessageBox();
while (clientIds.hasNext()){
curMessages.title = sessionScope.get("formErrorTitle");
curMessages.type="Error"
var clientId:String = clientIds.next();
var thisId:String = @RightBack(clientId,":")
//var input:javax.faces.component.UIComponent = getComponent(thisId);
var input:javax.faces.component.UIComponent = view.findComponent( clientId.replace( view.getClientId( facesContext )+":", '' ));
if(input!= null && !(input.isValid())){
var messagesIter:Iterator = facesContext.getMessages(clientId);
var label:javax.faces.component.UIComponent = getLabelFor(input);
previousMessages.push(thisId);
while(messagesIter.hasNext() ){
var messageObj:javax.faces.application.FacesMessage = messagesIter.next();
var curMsg:appMessage = new appMessage();
curMsg.label = ((label!=null)?label.getValue():"");
curMsg.detail = messageObj.getSummary();
curMessages.messages.push(curMsg)
}
input.styleClass = "lotusError " + input.styleClass
}
}
if(curMessages.messages.length > 0){
var newMsgs = null;
if(sessionScope.containsKey("appMessages")){
newMsgs = sessionScope.get("appMessages");
}else{
newMsgs = new Array();
}
newMsgs.push(curMessages);
sessionScope.put("appMessages",newMsgs);
}
if (previousMessages.length > 0){
sessionScope.put("previousMessages",previousMessages)
}
}]]></xp:this.beforeRenderResponse>
<xp:repeat id="msgBox" rows="5" value="#{sessionScope.appMessages}"
indexVar="i" var="msgObj">
<xp:panel>
<xp:this.styleClass><![CDATA[#{javascript:"lotusMessage lotus" + msgObj.type}]]></xp:this.styleClass>
<xp:image url="/blank.gif" id="image1"></xp:image>
<xp:text escape="true" id="msgBoxTitle" styleClass="lotusBold lotusBig"
value="#{javascript:msgObj.title}">
<xp:this.rendered><![CDATA[#{javascript:(msgObj.title != null && msgObj.title != "")}]]></xp:this.rendered>
</xp:text>
<xp:repeat id="msgDetail" rows="10"
value="#{javascript:msgObj.messages}" var="msgDtlObj" indexVar="d">
<xp:span>
<xp:text escape="true" id="msgDtlTitle" styleClass="lotusMessageTitle"
value="#{javascript:msgDtlObj.label}">
<xp:this.rendered><![CDATA[#{javascript:msgDtlObj.label != null && msgDtlObj.label != ""}]]></xp:this.rendered>
</xp:text>
<xp:text escape="true" id="msgDtlDetail" styleClass="lotusMessageDetail"
value="#{javascript:msgDtlObj.detail}">
<xp:this.rendered><![CDATA[#{javascript:msgDtlObj.detail != null && msgDtlObj.detail != ""}]]></xp:this.rendered>
</xp:text>
</xp:span>
</xp:repeat>
</xp:panel>
</xp:repeat>
</xp:view>