View Javadoc

1   /**
2    * 2014, Digitalis Informatica. All rights reserved. Distribuicao e Gestao de Informatica, Lda. Estrada de Paco de Arcos
3    * num.9 - Piso -1 2780-666 Paco de Arcos Telefone: (351) 21 4408990 Fax: (351) 21 4408999 http://www.digitalis.pt
4    */
5   
6   package pt.digitalis.dif.dem.objects;
7   
8   import pt.digitalis.dif.dem.objects.messages.Message;
9   import pt.digitalis.dif.dem.objects.messages.MessageList;
10  import pt.digitalis.dif.dem.objects.messages.MessageTranslations;
11  import pt.digitalis.dif.utils.ObjectFormatter;
12  import pt.digitalis.utils.common.StringUtils;
13  
14  /**
15   * The customization of a form field
16   * 
17   * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a><br/>
18   * @created 28/01/2014
19   */
20  public class FormFieldCustomization {
21  
22      /** the configuration id to save the help message */
23      public final static String MESSAGE_HELP_ID = "help";
24  
25      /** the configuration id to save the hint message */
26      public final static String MESSAGE_HINT_ID = "hint";
27  
28      /** the configuration id to save the label message */
29      public final static String MESSAGE_LABEL_ID = "label";
30  
31      /** the form field ID */
32      private String fieldID;
33  
34      /** if the field is mandatory */
35      private FeatureState mandatory = FeatureState.DEFAULT;
36  
37      /** the customized messages */
38      private MessageList messages = null;
39  
40      /**
41       * @param fieldID
42       */
43      public FormFieldCustomization(String fieldID)
44      {
45          this.fieldID = fieldID;
46      }
47  
48      /**
49       * Utility method that returns the desired customized message or the default one if no customization exists
50       * 
51       * @param messageID
52       *            the message ID to get
53       * @param language
54       *            the desired language
55       * @param defaultValue
56       *            the default value of not custom message exists
57       * @return the custom message or if it does not exist the given default value
58       */
59      public String getCustomMessage(String messageID, String language, String defaultValue)
60      {
61          MessageList messageList = this.getMessages();
62          MessageTranslations messageTranslations = null;
63          Message message = null;
64  
65          if (messageList != null)
66              messageTranslations = messageList.getMessageTranslations(messageID);
67          if (messageTranslations != null)
68              message = messageTranslations.getTranslations().get(language);
69  
70          if (message != null && StringUtils.isNotBlank(message.getMessage()))
71              return message.getMessage();
72          else
73              return defaultValue;
74      }
75  
76      /**
77       * Inspector for the 'fieldID' attribute.
78       * 
79       * @return the fieldID value
80       */
81      public String getFieldID()
82      {
83          return fieldID;
84      }
85  
86      /**
87       * Inspector for the 'mandatory' attribute.
88       * 
89       * @return the mandatory value
90       */
91      public FeatureState getMandatory()
92      {
93          return mandatory;
94      }
95  
96      /**
97       * Inspector for the 'messages' attribute.
98       * 
99       * @return the messages value
100      */
101     public MessageList getMessages()
102     {
103         return messages;
104     }
105 
106     /**
107      * Modifier for the 'fieldID' attribute.
108      * 
109      * @param fieldID
110      *            the new fieldID value to set
111      * @return the updated object
112      */
113     public FormFieldCustomization setFieldID(String fieldID)
114     {
115         this.fieldID = fieldID;
116 
117         return this;
118     }
119 
120     /**
121      * Modifier for the 'mandatory' attribute.
122      * 
123      * @param mandatory
124      *            the new mandatory value to set
125      * @return the updated object
126      */
127     public FormFieldCustomization setMandatory(FeatureState mandatory)
128     {
129         this.mandatory = mandatory;
130 
131         return this;
132     }
133 
134     /**
135      * Modifier for the 'messages' attribute.
136      * 
137      * @param messages
138      *            the new messages value to set
139      * @return the updated object
140      */
141     public FormFieldCustomization setMessages(MessageList messages)
142     {
143         this.messages = messages;
144 
145         return this;
146     }
147 
148     /**
149      * @see java.lang.Object#toString()
150      */
151     @Override
152     public String toString()
153     {
154         ObjectFormatter formatter = new ObjectFormatter();
155         formatter.addItem("FieldID", this.fieldID);
156         formatter.addItem("Mandatory", this.mandatory);
157         formatter.addItem("Messages", this.messages);
158 
159         return formatter.getFormatedObject();
160     }
161 }