source: vanHelsing/trunk/gui/src/de/dass_it/vanhelsing/gui/BeanUtil.java@ 864

Last change on this file since 864 was 864, checked in by tobias, on Apr 16, 2010 at 5:55:54 PM

javadoc added

File size: 5.6 KB
Line 
1package de.dass_it.vanhelsing.gui;
2
3import javax.faces.application.FacesMessage;
4import javax.faces.application.FacesMessage.Severity;
5import javax.faces.context.FacesContext;
6import javax.faces.model.SelectItem;
7import java.util.ResourceBundle;
8import java.util.Locale;
9import java.util.HashMap;
10
11//import org.apache.log4j.Logger;
12
13/**
14 * Helper class to encapsulate common bean methods.
15 * Managed beans will extend this class either directly or
16 * via a data structure helper class like TreeNavigation
17 */
18public class BeanUtil {
19 // Logging
20
21 // protected final Logger logger = Logger.getLogger(this.getClass());
22
23 // Messagebundles
24 /**
25 * getter method for a property value
26 * @param key key of the queried property, e.g. director.client.name.type
27 * @return s value of the property
28 */
29 public static String getProperty(String key) {
30 String s = PropertyBundle.getProperty(key);
31 return s;
32 }
33 /**
34 *
35 * @param key key contains the key value of the set of properties for a given attribute<br/>
36 * except for the suffix which defines the content type of the property.
37 * @return bundle contains all four properties of an attribute
38 */
39 public static String[] getProperties(String key) {
40 String[] suffix = { "ref", "type", "required", "def" };
41 String[] bundle = new String[4];
42 for (int i = 0; i < 4; i++) {
43 bundle[i] = BeanUtil.getProperty(key + "." + suffix[i]);
44 }
45 return bundle;
46 }
47 /**
48 *
49 * @param type resource type of the attribute, like Client
50 * @param key attribute name of the resource, like Port
51 * @return true if the field is required or false
52 */
53 public static boolean getRequired(String type, String key) {
54 String s = getFieldProperty(type, key, 2);
55 if (s.equals("true"))
56 return true;
57 return false;
58 }
59 /**
60 * returns the data type of a given attribute.
61 * @param type resource type of the attribute, like Client
62 * @param key attribute name of the resource, like Port
63 * @return data type of the attribute
64 */
65 public static String getDataType(String type, String key) {
66 return getFieldProperty(type, key, 1);
67 }
68
69 // getRenderer returns rendererType based on properties
70 /**
71 * returns the renderer for a given attribute
72 * @param type resource type of the attribute, like Client
73 * @param key attribute name of the resource, like Port
74 * @return "inputText", "radioGroup" or "selectOneMenu"
75 *
76 */
77 public static String getRenderer(String type, String key) {
78 return getFieldProperty(type, key, 0);
79 }
80 /**
81 * returns properties for a given attribute depending on the value of i.
82 * One should use the getter method for the property.
83 * @param type resource type of the attribute, like Client
84 * @param key attribute name of the resource, like Port
85 * @param i i maybe between 0 and 3. The return value of the method is selected by the value of i
86 * @return one of the four properties as a String of a given attribute.
87 */
88 public static String getFieldProperty(String type, String key, int i) {
89 String daemon = "director";
90 String res = "inputText";
91 if (type.startsWith("SD")) {
92 daemon = "storagedaemon";
93 }
94 if (type.startsWith("FD")) {
95 daemon = "filedaemon";
96 }
97 type = type.toLowerCase();
98 key = key.toLowerCase();
99 key = key.replaceAll(" ", "");
100 String result[] = getProperties((daemon + "." + type + "." + key));
101 if (i == 0) {
102 if (result[1].equals("boolean")) {
103 return "radioGroup";
104 }
105 if (!(result[0].equals("0"))) {
106 return "selectOneMenu";
107 }
108 return res;
109 }
110 if (i == 2)
111 return result[2];
112 if (i == 1)
113 return result[1];
114 if (i == 3)
115 return result[3];
116 return res;
117 }
118
119 // Statusmeldungen an den Client
120 /**
121 * sends an information type message to the message field at the bottom of the screen
122 * @param client could contain an identifier of a client. value can be set to null
123 * @param message the message to be displayed at the clients view
124 */
125 public static void setInfoMessage(String client, String message) {
126 FacesContext.getCurrentInstance().addMessage(client,
127 new FacesMessage(FacesMessage.SEVERITY_INFO, message, message));
128 }
129 /**
130 * sends an error type message to the message field at the bottom of the screen
131 * @param client could contain an identifier of a client. value can be set to null
132 * @param message the message to be displayed at the clients view
133 */
134 public static void setErrorMessage(String client, String message) {
135 FacesContext.getCurrentInstance()
136 .addMessage(
137 client,
138 new FacesMessage(FacesMessage.SEVERITY_ERROR, message,
139 message));
140 }
141
142 // Linkout to Bacula documentation
143 // ListItemsConfigView
144 // ListItemsTopologyView
145 // ListItemsJobSchedule
146
147 // GetParameterFromContext
148 /**
149 * returns values of a given parameter of the FacesContext
150 * @param name name of the parameter e.g. the id of a parameter in the view.
151 * @return value of a given parameter
152 */
153 public static String getRequestParameter(String name) {
154 return (String) FacesContext.getCurrentInstance().getExternalContext()
155 .getRequestParameterMap().get(name);
156 }
157 /**
158 * translation method for resource or object names.
159 * @param type untranslated name
160 * @return translated name if there is a translation. Otherwise type will be returned.
161 */
162 public static String getAccessType(String type) {
163 String result = new String();
164 HashMap<String, String> map = new HashMap<String, String>();
165 map.put("jobdefs", "job");
166 map.put("SDStorage", "Storage");
167 map.put("Storage", "SDStorage");
168 map.put("SDDevice", "Device");
169 map.put("Device", "SDDevice");
170 map.put("SDDevice", "Device");
171 result = map.get(type);
172 if (result != null)
173 return result;
174 return type;
175 }
176
177}
Note: See TracBrowser for help on using the repository browser.