Package org.jboss.dashboard.ui.formatters

Source Code of org.jboss.dashboard.ui.formatters.MessagesComponentFormatter

/**
* Copyright (C) 2012 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*       http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jboss.dashboard.ui.formatters;

import org.jboss.dashboard.LocaleManager;
import org.jboss.dashboard.annotation.config.Config;
import org.jboss.dashboard.ui.components.MessagesComponentHandler;
import org.jboss.dashboard.ui.taglib.formatter.Formatter;
import org.jboss.dashboard.ui.taglib.formatter.FormatterException;
import org.slf4j.Logger;

import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.ResourceBundle;

public class MessagesComponentFormatter extends Formatter {

    @Inject
    private transient Logger log;

    @Inject @Config("5")
    private int maxVisibleErrors;

    @Inject @Config("general/32x32/info.gif")
    private String messagesImg;

    @Inject @Config("general/32x32/warning.gif")
    private String warningsImg;

    @Inject @Config("general/32x32/error.gif")
    private String errorsImg;

    @Inject @Config("")
    private String classForMessages;

    @Inject @Config("skn-error")
    private String classForWarnings;

    @Inject @Config("skn-error")
    private String classForErrors;

    /** The locale manager. */
    protected LocaleManager localeManager;

    public MessagesComponentFormatter() {
        localeManager = LocaleManager.lookup();
    }

    public int getMaxVisibleErrors() {
        return maxVisibleErrors;
    }

    public void setMaxVisibleErrors(int maxVisibleErrors) {
        this.maxVisibleErrors = maxVisibleErrors;
    }

    public String getClassForMessages() {
        return classForMessages;
    }

    public void setClassForMessages(String classForMessages) {
        this.classForMessages = classForMessages;
    }

    public String getClassForWarnings() {
        return classForWarnings;
    }

    public void setClassForWarnings(String classForWarnings) {
        this.classForWarnings = classForWarnings;
    }

    public String getClassForErrors() {
        return classForErrors;
    }

    public void setClassForErrors(String classForErrors) {
        this.classForErrors = classForErrors;
    }

    public String getMessagesImg() {
        return messagesImg;
    }

    public void setMessagesImg(String messagesImg) {
        this.messagesImg = messagesImg;
    }

    public String getWarningsImg() {
        return warningsImg;
    }

    public void setWarningsImg(String warningsImg) {
        this.warningsImg = warningsImg;
    }

    public String getErrorsImg() {
        return errorsImg;
    }

    public void setErrorsImg(String errorsImg) {
        this.errorsImg = errorsImg;
    }

    public void service(HttpServletRequest request, HttpServletResponse response) throws FormatterException {
        MessagesComponentHandler messagesHandler = MessagesComponentHandler.lookup();
        if (messagesHandler.getErrorsToDisplay() != null && messagesHandler.getErrorsToDisplay().size() > 0) {
            renderMessages(messagesHandler.getErrorsToDisplay(), messagesHandler.getErrorsParameters(), errorsImg, classForErrors);
        } else if (messagesHandler.getWarningsToDisplay() != null && messagesHandler.getWarningsToDisplay().size() > 0) {
            renderMessages(messagesHandler.getWarningsToDisplay(), messagesHandler.getWarningsParameters(), warningsImg, classForWarnings);
        } else if (messagesHandler.getMessagesToDisplay() != null && messagesHandler.getMessagesToDisplay().size() > 0) {
            renderMessages(messagesHandler.getMessagesToDisplay(), messagesHandler.getMessagesParameters(), messagesImg, classForMessages);
        }
    }

    protected void renderMessages(List<String> messages, List<String[]> params, String img, String className) {
        while (messages.size() > params.size()) {
            params.add(null);
        }
        MessagesComponentHandler messagesComponentHandler = MessagesComponentHandler.lookup();
        long id = System.currentTimeMillis();
        boolean maxRised = false;

        setAttribute("image", img);
        setAttribute("bundle", messagesComponentHandler.getI18nBundle());
        renderFragment("outputStart");

        renderFragment("outputVisibleMessagesStart");

        for (int i = 0; i < messages.size(); i++) {
            if (i == maxVisibleErrors) {
                renderFragment("outputMessagesEnd");
                renderFragment("outputNewLine");
                setAttribute("id", id);
                renderFragment("outputHiddenMessagesStart");
                maxRised = true;
            }
            setAttribute("bundle", messagesComponentHandler.getI18nBundle());
            setAttribute("msg", messages.get(i));
            setAttribute("params", params.get(i));
            setAttribute("className", className);
            renderFragment("outputMessage");
        }
        renderFragment("outputMessagesEnd");
        if (maxRised) {
            renderFragment("outputNewLine");
            setAttribute("id", id);
            renderFragment("outputDisplayLinks");
        }
        renderFragment("outputEnd");
        if (messagesComponentHandler.isClearAfterRender()) messagesComponentHandler.clearAll();
    }

    protected String localizeMessage(String message) {
        MessagesComponentHandler messagesComponentHandler = MessagesComponentHandler.lookup();
        try {
            if (messagesComponentHandler.getI18nBundle() != null) {
                ResourceBundle bundle = localeManager.getBundle(messagesComponentHandler.getI18nBundle(), LocaleManager.currentLocale());
                message = bundle.getString(message);
            }
        } catch (Exception e) {
            if (log.isDebugEnabled())
                log.debug("Error trying to get message '" + message + "' from bundle '" + messagesComponentHandler.getI18nBundle());
        }
        return message;
    }
}
TOP

Related Classes of org.jboss.dashboard.ui.formatters.MessagesComponentFormatter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.