1 /***
2 * Copyright (c) 2003 held jointly by the individual authors.
3 *
4 * This library is free software; you can redistribute it and/or modify it under
5 * the terms of the GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1 of the License, or (at your option)
7 * any later version.
8 *
9 * This library is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
12 * for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this library; if not, write to the Free Software Foundation, Inc.,
16 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. >
17 * http://www.gnu.org/copyleft/lesser.html >
18 * http://www.opensource.org/licenses/lgpl-license.php
19 */
20 package net.mlw.vlh.web.util;
21
22 import javax.servlet.jsp.PageContext;
23
24 import org.apache.commons.logging.Log;
25 import org.apache.commons.logging.LogFactory;
26
27 /***
28 *
29 * The ImagesHomeDisplayHelper can be used by adding the folloing in the spring
30 * config file:
31 *
32 * <pre>
33 *
34 *
35 * <bean id="myLook" singleton="true" class="net.mlw.vlh.web.ValueListConfigBean">
36 * <property name="displayHelper">
37 * <bean class="net.mlw.vlh.web.util.ImagesHomeDisplayHelper" />
38 * </property>
39 * ...
40 * </bean>
41 *
42 *
43 * </pre>
44 *
45 * This ImagesHomeDisplayHelper simply takes the value of your key and replace
46 * any occurrences of the text <code>@IMAGES_HOME@</code> with <b>html </b> DisplayProvider's images home.
47 *
48 * @author Andrej Zachar
49 * @version $Revision: 1.3 $ $Date: 2005/05/23 17:44:55 $
50 */
51 public final class ImagesHomeDisplayHelper implements DisplayHelper
52 {
53 /***
54 * Logger for this class
55 */
56 private static final Log LOGGER = LogFactory
57 .getLog(ImagesHomeDisplayHelper.class);
58
59 /***
60 * Attribute key used in pageContext to store imagesHome dir. This usage
61 * will be 100% changed in the future!
62 *
63 * @TODO do not swallow this!
64 */
65 public static final String IMAGES_HOME_ATTRIBUTE_KEY = "VALUELIST_IMAGE_HOME_ATTRIBUTE_KEY";
66
67 /***
68 * @see net.mlw.vlh.web.util.DisplayHelper#help(javax.servlet.jsp.PageContext,
69 * java.lang.String)
70 */
71 public String help(PageContext pageContext, String key)
72 {
73 if (LOGGER.isDebugEnabled())
74 {
75 LOGGER.debug("Replacing images home '"
76 + (String) pageContext
77 .getAttribute(IMAGES_HOME_ATTRIBUTE_KEY)
78 + "' in key '" + key + "'");
79 }
80
81 return key.replaceAll("@IMAGES_HOME@", (String) pageContext
82 .getAttribute(IMAGES_HOME_ATTRIBUTE_KEY));
83 }
84 }