/** * Copyright (C) 2008-2010, Squale Project - http://www.squale.org * * This file is part of Squale. * * Squale 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 any later version. * * Squale 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 General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Squale. If not, see <http://www.gnu.org/licenses/>. */ /* * Cr�� le 18 mars 05 * * Pour changer le mod�le de ce fichier g�n�r�, allez � : * Fen�tre>Pr�f�rences>Java>G�n�ration de code>Code et commentaires */ package org.squale.welcom.taglib.button.impl; import java.util.Locale; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.Tag; import org.apache.commons.validator.GenericValidator; import org.apache.struts.Globals; import org.apache.struts.util.RequestUtils; import org.squale.welcom.outils.Charte; import org.squale.welcom.outils.WelcomConfigurator; import org.squale.welcom.taglib.button.IButtonRenderer; /** * ButtonSkinv1 : boutons statiques charte v001 et charte v002 */ public class ButtonSkinv1 implements IButtonRenderer { /** * retourne une String pour la locale * * @param page : Contexte de la page * @return la locale (en String) */ private String getLocaleString( final PageContext page ) { final Locale userLocale = RequestUtils.retrieveUserLocale( page, Globals.LOCALE_KEY ); if ( userLocale != null ) { return userLocale.getLanguage(); } else { return "fr"; } } /** * retourne le path de l'image du bouton * * @param type le type du bouton * @param name nom du bouton * @param page : Contexte de la page * @return le path */ private String getButtonName( final PageContext page, final String name, final String rawValue, final String type ) { String path = null; if ( type.equals( "form" ) ) { path = WelcomConfigurator.getMessage( "chartev2.bouton.path.form." + name, getLocaleString( page ) ); } else { path = WelcomConfigurator.getMessage( "chartev2.bouton.path.menu." + name, getLocaleString( page ) ); } if ( path != null ) { return path; } // Recherche dans les diffs generique if ( type.equals( "form" ) ) { path = WelcomConfigurator.getMessage( WelcomConfigurator.CHARTEV2_BOUTON_PATH_FORM, getLocaleString( page ) ); } else { path = WelcomConfigurator.getMessage( WelcomConfigurator.CHARTEV2_BOUTON_PATH_MENU, getLocaleString( page ) ); } path += ( "/" + name + ".gif" ); return path; } /** * @see org.squale.welcom.taglib.button.IButtonRenderer#drawRenderHRefTag(StringBuffer results) */ public String drawRenderHRefTag( final PageContext page, final Tag parent, final String name, final String rawValue, final String target, final String href, final String onclick, final String toolTip, final String styleId ) { StringBuffer results = new StringBuffer(); results.append( "<a href=\"" + href ); results.append( "\" " ); if ( !GenericValidator.isBlankOrNull( onclick ) ) { results.append( "onClick=\"" + onclick + "\" " ); } if ( !GenericValidator.isBlankOrNull( toolTip ) ) { results.append( toolTip ); } if ( !GenericValidator.isBlankOrNull( styleId ) ) { results.append( " id=\"" + styleId + "\"" ); } results.append( "onclick=\"this.blur()\" >" ); results.append( "<img src=\"" + getButtonName( page, name, rawValue, "form" ) + "\" border=\"0\" align=\"absmiddle\">" ); results.append( "</a>" ); return results.toString(); } /** * @see org.squale.welcom.taglib.button.IButtonRenderer#drawRenderMenuHRefTag(StringBuffer results) */ public String drawRenderMenuHRefTag( final PageContext page, final Tag parent, final String name, final String rawValue, final String target, final String href, final String onclick, final String toolTip, final String styleId ) { StringBuffer results = new StringBuffer(); String onClickAction = ""; if ( !GenericValidator.isBlankOrNull( onclick ) ) { onClickAction = onclick; } if ( WelcomConfigurator.getCharte() == Charte.V2_002 ) { results.append( "<a href=\"" + href + "\" onclick=\"this.blur();" + onClickAction + "\" " ); } else { results.append( "<a href=\"" + href + "\" onclick=\"this.blur();" + onClickAction + "\" class=\"mymenu\"" ); } if ( !GenericValidator.isBlankOrNull( target ) ) { results.append( " target=\"" + target + "\" " ); } if ( !GenericValidator.isBlankOrNull( styleId ) ) { results.append( " id=\"" + styleId + "\"" ); } if ( !GenericValidator.isBlankOrNull( toolTip ) ) { results.append( toolTip ); } results.append( ">" ); results.append( "<img src=\"" + getButtonName( page, name, rawValue, "menu" ) + "\" width=\"140\" height=\"18\" border=\"0\">" ); results.append( "</a>" ); return results.toString(); } /** * @see org.squale.welcom.taglib.button.IButtonRenderer#drawRenderFormHRefTag(StringBuffer results) */ public String drawRenderFormHRefTag( final PageContext page, final Tag parent, final String name, final String rawValue, final String target, final String onclick, final String toolTip, final String styleId ) { StringBuffer results = new StringBuffer(); results.append( "<a href=\"javascript:" ); results.append( onclick ); results.append( "\" " ); if ( !GenericValidator.isBlankOrNull( toolTip ) ) { results.append( toolTip ); } if ( !GenericValidator.isBlankOrNull( styleId ) ) { results.append( " id=\"" + styleId + "\"" ); } results.append( " onclick=\"this.blur()\" >" ); results.append( "<img src=\"" + getButtonName( page, name, rawValue, "form" ) + "\" border=\"0\" align=\"absmiddle\">" ); results.append( "</a>" ); return results.toString(); } /** * @see org.squale.welcom.taglib.button.IButtonRenderer#drawRenderFormInputTag(StringBuffer results) */ public String drawRenderFormInputTag( final PageContext page, final Tag parent, final String name, final String rawValue, final String target, final String onclick, final String toolTip, final String styleId ) { StringBuffer results = new StringBuffer(); results.append( "<input" ); if ( !GenericValidator.isBlankOrNull( toolTip ) ) { results.append( toolTip ); } if ( !GenericValidator.isBlankOrNull( styleId ) ) { results.append( " id=\"" + styleId + "\"" ); } results.append( " class=\"normal\" type=\"image\" name=\"Submit\" value=\"Submit\"" ); results.append( " src=\"" + getButtonName( page, name, rawValue, "form" ) + "\"" ); results.append( " onclick=\"" + onclick + "\"" ); results.append( " />" ); return results.toString(); } }