01: /*
02: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
03: *
04: * This file is part of Resin(R) Open Source
05: *
06: * Each copy or derived work must preserve the copyright notice and this
07: * notice unmodified.
08: *
09: * Resin Open Source is free software; you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License version 2
11: * as published by the Free Software Foundation.
12: *
13: * Resin Open Source is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
16: * of NON-INFRINGEMENT. See the GNU General Public License for more
17: * details.
18: *
19: * You should have received a copy of the GNU General Public License
20: * along with Resin Open Source; if not, write to the
21: *
22: * Free Software Foundation, Inc.
23: * 59 Temple Place, Suite 330
24: * Boston, MA 02111-1307 USA
25: *
26: * @author Scott Ferguson
27: */
28:
29: package javax.faces.convert;
30:
31: import java.util.*;
32: import java.text.*;
33:
34: import javax.faces.context.*;
35: import javax.faces.component.*;
36:
37: class Util {
38: public static String l10n(FacesContext context, String id,
39: String defaultMessage, Object... args) {
40: String message = defaultMessage;
41:
42: StringBuilder sb = new StringBuilder();
43:
44: int len = message.length();
45: for (int i = 0; i < len; i++) {
46: char ch = message.charAt(i);
47:
48: if (ch == '{' && i + 2 < len
49: && '0' <= message.charAt(i + 1)
50: && message.charAt(i + 1) <= '9'
51: && message.charAt(i + 2) == '}') {
52: int index = message.charAt(i + 1) - '0';
53:
54: if (index < args.length)
55: sb.append(args[index]);
56:
57: i += 2;
58: } else
59: sb.append(ch);
60: }
61:
62: return sb.toString();
63: }
64:
65: public static String getLabel(FacesContext context,
66: UIComponent component) {
67: String label = (String) component.getAttributes().get("label");
68:
69: if (label != null && !"".equals(label))
70: return label;
71: else
72: return component.getClientId(context);
73: }
74: }
|