org.anon.gui.BackingBase.java Source code

Java tutorial

Introduction

Here is the source code for org.anon.gui.BackingBase.java

Source

package org.anon.gui;

import javax.faces.application.ConfigurableNavigationHandler;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;

import org.anon.gui.navigation.NavigationCaseEnum;
import org.anon.license.LicenseManager;
import org.anon.service.ServiceException;
import org.anon.service.ServiceResultMessage;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;

public class BackingBase {

    public static final String INFO_MESSAGE_ID = "infoMessage";

    @ManagedProperty(value = "#{licenseManager}")
    private LicenseManager licenseManager;

    public void setLicenseManager(LicenseManager licenseManager) {
        this.licenseManager = licenseManager;
    }

    @Override
    public String toString() {
        try {
            return ReflectionToStringBuilder.toString(this, ToStringStyle.NO_FIELD_NAMES_STYLE);
        } catch (Exception e) {
            String message = "Failed toString on " + this.getClass().getName();
            logInfo(message);
            return message;
        }
    }

    protected void logDebug(Object message) {
        Logger.getLogger(getClass()).log(Level.DEBUG, message);
    }

    protected void logInfo(Object message) {
        Logger.getLogger(getClass()).log(Level.INFO, message);
    }

    protected void logError(Object message, Exception e) {
        Logger.getLogger(getClass()).log(Level.ERROR, message, e);
    }

    protected void showInfoInGui(String guiMessage) {
        showExtInfoInGui(guiMessage, "");
    }

    protected void showExtInfoInGui(String head, String message) {
        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, head, message);
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    protected void showErrorInGui(String guiMessage) {
        showExtErrorInGui(guiMessage, "");
    }

    protected void showExceptionInGui(Exception e) {
        showExtErrorInGui(e.getMessage(), e.getCause() == null ? "" : e.getCause().getMessage());
    }

    protected void showErrorInGui(String guiMessage, String detail) {
        showExtErrorInGui(guiMessage, detail);
    }

    protected void showExtErrorInGui(String head, String message) {
        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, head, message);
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    protected void handleServiceResult(ServiceException serviceException) {
        for (ServiceResultMessage msg : serviceException.getResultMessages()) {
            FacesContext.getCurrentInstance().addMessage(null,
                    new FacesMessage(msg.getSeverity(), msg.getHeadline(), msg.getDetails()));
        }
    }

    protected void handleServiceResultAsInfoMessage(ServiceException serviceException) {
        for (ServiceResultMessage msg : serviceException.getResultMessages()) {
            FacesContext.getCurrentInstance().addMessage(INFO_MESSAGE_ID,
                    new FacesMessage(msg.getSeverity(), msg.getHeadline(), msg.getDetails()));
        }
    }

    protected void redirectPageTo(NavigationCaseEnum nav) {

        FacesContext context = FacesContext.getCurrentInstance();
        context.getExternalContext().getFlash().setKeepMessages(true);

        ConfigurableNavigationHandler handler = (ConfigurableNavigationHandler) context.getApplication()
                .getNavigationHandler();

        handler.performNavigation(nav.getUrl() + "?faces-redirect=true");
    }

    protected void failInFreeEdition() {
        if (licenseManager.isFreeEdition()) {
            String message = "The free edition does not support this feature";
            showErrorInGui(message);
            throw new RuntimeException(message);
        }
    }

}