View Javadoc
1   /*
2    * Copyright (c) 2002-2014, Mairie de Paris
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright notice
10   *     and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright notice
13   *     and the following disclaimer in the documentation and/or other materials
14   *     provided with the distribution.
15   *
16   *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17   *     contributors may be used to endorse or promote products derived from
18   *     this software without specific prior written permission.
19   *
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30   * POSSIBILITY OF SUCH DAMAGE.
31   *
32   * License 1.0
33   */
34  package fr.paris.lutece.portal.service.message;
35  
36  import fr.paris.lutece.portal.service.i18n.I18nService;
37  
38  import java.io.Serializable;
39  
40  import java.text.MessageFormat;
41  
42  import java.util.Locale;
43  import java.util.Map;
44  
45  
46  /**
47   * The class provides a bean to hold message box informations
48   */
49  public class AdminMessage implements Serializable
50  {
51      public static final int TYPE_INFO = 0;
52      public static final int TYPE_QUESTION = 1;
53      public static final int TYPE_ERROR = 2;
54      public static final int TYPE_WARNING = 3;
55      public static final int TYPE_CONFIRMATION = 4;
56      public static final int TYPE_STOP = 5;
57      private static final long serialVersionUID = 1924932226627941151L;
58      private String _strTextKey;
59      private String _strTitleKey;
60      private String _strUrl;
61      private String _strTarget;
62      private int _nType;
63      private boolean _bCancel;
64      private Object[] _messageArgs;
65      private Map<String, Object> _requestParameters;
66      private String _strBackUrl;
67  
68      /** Creates a new instance of AppMessage
69       * @param strTextKey The message Key
70       * @param strUrl The default Button URL
71       * @param messageArgs The message arguments
72       * @param strTitleKey The Title key
73       * @param strTarget The target
74       * @param nType The message Type
75       * @param bCancelButton Add a Cancel Button
76       */
77      public AdminMessage( String strTextKey, Object[] messageArgs, String strTitleKey, String strUrl, String strTarget,
78          int nType, boolean bCancelButton )
79      {
80          buildAdminMessage( strTextKey, messageArgs, strTitleKey, strUrl, strTarget, nType, bCancelButton, null, null );
81      }
82  
83      /** Creates a new instance of AppMessage with request parameters
84       * @param strTextKey The message Key
85       * @param strUrl The default Button URL
86       * @param messageArgs The message arguments
87       * @param strTitleKey The Title key
88       * @param strTarget The target
89       * @param nType The message Type
90       * @param bCancelButton Add a Cancel Button
91       * @param requestParameters The Request parameters in a map
92       */
93      public AdminMessage( String strTextKey, Object[] messageArgs, String strTitleKey, String strUrl, String strTarget,
94          int nType, boolean bCancelButton, Map<String, Object> requestParameters )
95      {
96          buildAdminMessage( strTextKey, messageArgs, strTitleKey, strUrl, strTarget, nType, bCancelButton,
97              requestParameters, null );
98      }
99  
100     /** Creates a new instance of AppMessage with request parameters
101      * @param strTextKey The message Key
102      * @param strUrl The default Button URL
103      * @param messageArgs The message arguments
104      * @param strTitleKey The Title key
105      * @param strTarget The target
106      * @param nType The message Type
107      * @param bCancelButton Add a Cancel Button
108      * @param requestParameters The Request parameters in a map
109      * @param strBackUrl the back url
110      */
111     public AdminMessage( String strTextKey, Object[] messageArgs, String strTitleKey, String strUrl, String strTarget,
112         int nType, boolean bCancelButton, Map<String, Object> requestParameters, String strBackUrl )
113     {
114         buildAdminMessage( strTextKey, messageArgs, strTitleKey, strUrl, strTarget, nType, bCancelButton,
115             requestParameters, null );
116     }
117 
118     /**
119      * Build a new admin message
120      *
121      * @param strTextKey The message Key
122      * @param strUrl The default Button URL
123      * @param messageArgs The message arguments
124      * @param strTitleKey The Title key
125      * @param strTarget The target
126      * @param nType The message Type
127      * @param bCancelButton Add a Cancel Button
128      * @param requestParameters The Request parameters in a map
129      * @param strBackUrl the back url
130      */
131     private void buildAdminMessage( String strTextKey, Object[] messageArgs, String strTitleKey, String strUrl,
132         String strTarget, int nType, boolean bCancelButton, Map<String, Object> requestParameters, String strBackUrl )
133     {
134         _strTextKey = strTextKey;
135         _strTitleKey = strTitleKey;
136         _strUrl = strUrl;
137         _strTarget = strTarget;
138         _nType = nType;
139         _bCancel = bCancelButton;
140         _messageArgs = messageArgs;
141         _requestParameters = requestParameters;
142         _strBackUrl = strBackUrl;
143     }
144 
145     /**
146      * Return the type of message
147      * @return the type message
148      */
149     public int getType(  )
150     {
151         return _nType;
152     }
153 
154     /**
155      * Return if the cancel button is display
156      * @return true if the cancel button is display
157      */
158     public boolean isCancel(  )
159     {
160         return _bCancel;
161     }
162 
163     /**
164      * Set the display of cancel button
165      * @param bCancel the new bCancel
166      */
167     public void setCancel( boolean bCancel )
168     {
169         _bCancel = bCancel;
170     }
171 
172     /**
173      * Returns the localized text of the message
174      * @param locale The current locale
175      * @return The localized text of the message
176      */
177     public String getText( Locale locale )
178     {
179         String strText = I18nService.getLocalizedString( _strTextKey, locale );
180 
181         if ( _messageArgs != null )
182         {
183             strText = MessageFormat.format( strText, _messageArgs );
184         }
185 
186         return strText;
187     }
188 
189     /**
190      * Returns the localized text of the message
191      * @param locale The current locale
192      * @return The localized text of the message
193      */
194     public String getTitle( Locale locale )
195     {
196         return I18nService.getLocalizedString( _strTitleKey, locale );
197     }
198 
199     /**
200      * Returns the Url of the message box Ok button
201      * @return the Url of the Ok button
202      */
203     public String getUrl(  )
204     {
205         return _strUrl;
206     }
207 
208     /**
209      * Returns the Url of the message box Ok button
210      * @return the Url of the Ok button
211      */
212     public String getTarget(  )
213     {
214         return _strTarget;
215     }
216 
217     /**
218      * Return the request parameters
219      * @return the request parameters
220      */
221     public Map<String, Object> getRequestParameters(  )
222     {
223         return _requestParameters;
224     }
225 
226     /**
227      * set the back url
228      * @param strBackUrl the back url
229      */
230     public void setBackUrl( String strBackUrl )
231     {
232         this._strBackUrl = strBackUrl;
233     }
234 
235     /**
236      *
237      * @return back url
238      */
239     public String getBackUrl(  )
240     {
241         return _strBackUrl;
242     }
243 }