/** * Copyright © 2002 Instituto Superior Técnico * * This file is part of FenixEdu Academic. * * FenixEdu Academic is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * FenixEdu Academic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with FenixEdu Academic. If not, see <http://www.gnu.org/licenses/>. */ package org.fenixedu.academic.ui.faces.bean.base; import java.util.Locale; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.fenixedu.academic.domain.Installation; import org.fenixedu.academic.domain.organizationalStructure.Unit; import org.fenixedu.academic.ui.faces.components.UIViewState; import org.fenixedu.bennu.core.domain.Bennu; import org.fenixedu.bennu.core.domain.User; import org.fenixedu.bennu.core.security.Authenticate; import org.fenixedu.bennu.core.util.CoreConfiguration; import org.fenixedu.commons.i18n.I18N; import pt.ist.fenixWebFramework.servlets.filters.contentRewrite.GenericChecksumRewriter; public class FenixBackingBean { protected String errorMessage; protected String[] errorMessageArguments; private UIViewState viewState; protected static final Bennu rootDomainObject = Bennu.getInstance(); public FenixBackingBean() { final FacesContext facesContext = FacesContext.getCurrentInstance(); final Locale locale = I18N.getLocale(); facesContext.getViewRoot().setLocale(locale); } public User getUserView() { return Authenticate.getUser(); } public String getErrorMessage() { return errorMessage; } public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } public HttpServletRequest getRequest() { return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); } protected HttpServletResponse getResponse() { return (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); } protected String getRequestParameter(String parameterName) { return (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(parameterName); } protected String[] getRequestParameterValues(String parameterName) { return (String[]) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterValuesMap() .get(parameterName); } protected Object getRequestAttribute(String attributeName) { return FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(attributeName); } protected void setRequestAttribute(String attributeName, Object attributeValue) { FacesContext.getCurrentInstance().getExternalContext().getRequestMap().put(attributeName, attributeValue); } public String getContextPath() { return ((HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest()).getContextPath(); } public UIViewState getViewState() { if (this.viewState == null) { this.viewState = new UIViewState(); } return viewState; } public void setViewState(UIViewState viewState) { this.viewState = viewState; } private void addMessage(Severity facesMessage, String message) { FacesContext facesContext = FacesContext.getCurrentInstance(); facesContext.addMessage(null, new FacesMessage(facesMessage, message, null)); } protected void addErrorMessage(String message) { addMessage(FacesMessage.SEVERITY_ERROR, message); } protected void addInfoMessage(String message) { addMessage(FacesMessage.SEVERITY_INFO, message); } protected void addWarnMessage(String message) { addMessage(FacesMessage.SEVERITY_WARN, message); } protected Integer getAndHoldIntegerParameter(final String parameterName) { final String parameterString = getRequestParameter(parameterName); final Integer parameterValue; if (parameterString != null && parameterString.length() > 0) { parameterValue = Integer.valueOf(parameterString); setRequestAttribute(parameterName, parameterValue); } else { parameterValue = null; } return parameterValue; } protected String getAndHoldStringParameter(final String parameterName) { final String parameterString = getRequestParameter(parameterName); final String parameterValue; if (parameterString != null && parameterString.length() > 0) { parameterValue = parameterString; setRequestAttribute(parameterName, parameterValue); } else { parameterValue = null; } return parameterValue; } protected Boolean getAndHoldBooleanParameter(final String parameterName) { final String parameterString = getRequestParameter(parameterName); final Boolean parameterValue; if (parameterString != null && parameterString.length() > 0) { parameterValue = Boolean.valueOf(parameterString); setRequestAttribute(parameterName, parameterValue); } else { parameterValue = null; } return parameterValue; } private String formatMessage(String message, final String... args) { if (message != null && args != null) { for (int i = 0; args.length > i; i++) { String substring = "{" + i + "}"; message = StringUtils.replace(message, substring, args[i]); } } return message; } protected Double getAndHoldDoubleParameter(final String parameterName) { final String parameterString = getRequestParameter(parameterName); final Double parameterValue; if (parameterString != null && parameterString.length() > 0) { parameterValue = Double.valueOf(parameterString); setRequestAttribute(parameterName, parameterValue); } else { parameterValue = null; } return parameterValue; } public String[] getErrorMessageArguments() { return errorMessageArguments; } public String getErrorMessageArgument() { final StringBuilder stringBuilder = new StringBuilder(); if (errorMessageArguments != null) { for (final String string : errorMessageArguments) { stringBuilder.append(" ").append(string); } } return stringBuilder.toString(); } public void setErrorMessageArguments(String[] errorMessageArguments) { this.errorMessageArguments = errorMessageArguments; } public Boolean getRenderInEnglish() { final Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale(); return locale.getLanguage().equals(Locale.ENGLISH.getLanguage()); } public boolean isMessagesEmpty() { return FacesContext.getCurrentInstance().getMessages().hasNext(); } public String getHasChecksumString() { return GenericChecksumRewriter.NO_CHECKSUM_PREFIX; } public String getInstitutionUrl() { return Installation.getInstance() == null ? "" : Installation.getInstance().getInstituitionURL(); } public String getInstitutionAcronym() { return Unit.getInstitutionAcronym(); } public String getApplicationUrl() { return CoreConfiguration.getConfiguration().applicationUrl(); } }