All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.richfaces.component.behavior.MessageUpdateScript Maven / Gradle / Ivy

There is a newer version: 4.3.7.Final
Show newest version
package org.richfaces.component.behavior;

import java.io.IOException;
import java.util.Iterator;

import javax.faces.application.FacesMessage;


import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.ScriptString;
import org.ajax4jsf.javascript.ScriptStringBase;
import org.richfaces.javascript.Message;

import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterators;

public class MessageUpdateScript extends ScriptStringBase implements ScriptString {

    private static final Function MESSAGES_TRANSFORMER = new Function() {

        public Message apply(FacesMessage msg) {
            return new Message(msg);
        }
    };
    private final ImmutableList messages;
    private final String clientId;

    public MessageUpdateScript(String clientId,Iterator messages) {
        this.clientId = clientId;
        this.messages = ImmutableList.copyOf(Iterators.transform(messages, MESSAGES_TRANSFORMER));
    }

    public void appendScript(Appendable target) throws IOException {
        JSFunction resetMessages = new JSFunction("RichFaces.csv.clearMessage",clientId);
        resetMessages.appendScript(target);
        target.append(';');
        for (Message message : messages) {
            JSFunction sendMessage = new JSFunction("RichFaces.csv.sendMessage",clientId,message);
            sendMessage.appendScript(target);
            target.append(';');
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy