1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.mylutece.business.attribute;
35
36 import fr.paris.lutece.plugins.mylutece.service.MyLutecePlugin;
37 import fr.paris.lutece.portal.service.message.AdminMessage;
38 import fr.paris.lutece.portal.service.message.AdminMessageService;
39 import fr.paris.lutece.portal.service.plugin.Plugin;
40 import fr.paris.lutece.portal.service.plugin.PluginService;
41 import fr.paris.lutece.portal.web.constants.Messages;
42
43 import org.apache.commons.lang3.StringUtils;
44
45 import java.util.ArrayList;
46 import java.util.List;
47 import java.util.Locale;
48
49 import javax.servlet.http.HttpServletRequest;
50
51
52
53
54
55
56 public class AttributeText extends AbstractAttribute
57 {
58
59 private static final String EMPTY_STRING = "";
60
61
62 private static final String PARAMETER_TITLE = "title";
63 private static final String PARAMETER_HELP_MESSAGE = "help_message";
64 private static final String PARAMETER_MANDATORY = "mandatory";
65 private static final String PARAMETER_WIDTH = "width";
66 private static final String PARAMETER_MAX_SIZE_ENTER = "max_size_enter";
67 private static final String PARAMETER_VALUE = "value";
68 private static final String PARAMETER_IS_SHOWN_IN_SEARCH = "is_shown_in_search";
69
70
71 private static final String PROPERTY_TYPE_TEXT = "mylutece.attribute.type.text";
72 private static final String PROPERTY_CREATE_TEXT_PAGETITLE = "mylutece.create_attribute.pageTitleAttributeText";
73 private static final String PROPERTY_MODIFY_TEXT_PAGETITLE = "mylutece.modify_attribute.pageTitleAttributeText";
74 private static final String PROPERTY_MESSAGE_NO_ARITHMETICAL_CHARACTERS = "mylutece.message.noArithmeticalCharacters";
75
76
77 private static final String TEMPLATE_CREATE_ATTRIBUTE = "admin/plugins/mylutece/attribute/text/create_attribute_text.html";
78 private static final String TEMPLATE_MODIFY_ATTRIBUTE = "admin/plugins/mylutece/attribute/text/modify_attribute_text.html";
79 private static final String TEMPLATE_HTML_FORM_ATTRIBUTE = "admin/plugins/mylutece/attribute/text/html_code_form_attribute_text.html";
80 private static final String TEMPLATE_HTML_FORM_SEARCH_ATTRIBUTE = "admin/plugins/mylutece/attribute/text/html_code_form_search_attribute_text.html";
81
82
83
84
85 public AttributeText( )
86 {
87 }
88
89
90
91
92
93
94 public String getTemplateCreateAttribute( )
95 {
96 return TEMPLATE_CREATE_ATTRIBUTE;
97 }
98
99
100
101
102
103
104 public String getTemplateModifyAttribute( )
105 {
106 return TEMPLATE_MODIFY_ATTRIBUTE;
107 }
108
109
110
111
112
113
114 public String getTemplateHtmlFormAttribute( )
115 {
116 return TEMPLATE_HTML_FORM_ATTRIBUTE;
117 }
118
119
120
121
122
123
124 public String getTemplateHtmlFormSearchAttribute( )
125 {
126 return TEMPLATE_HTML_FORM_SEARCH_ATTRIBUTE;
127 }
128
129
130
131
132
133
134 public String getPropertyCreatePageTitle( )
135 {
136 return PROPERTY_CREATE_TEXT_PAGETITLE;
137 }
138
139
140
141
142
143
144 public String getPropertyModifyPageTitle( )
145 {
146 return PROPERTY_MODIFY_TEXT_PAGETITLE;
147 }
148
149
150
151
152
153
154
155
156 public String setAttributeData( HttpServletRequest request )
157 {
158 String strTitle = request.getParameter( PARAMETER_TITLE );
159 String strHelpMessage = ( request.getParameter( PARAMETER_HELP_MESSAGE ) != null ) ? request.getParameter( PARAMETER_HELP_MESSAGE ).trim( ) : null;
160 String strIsShownInSearch = request.getParameter( PARAMETER_IS_SHOWN_IN_SEARCH );
161 String strMandatory = request.getParameter( PARAMETER_MANDATORY );
162 String strWidth = request.getParameter( PARAMETER_WIDTH );
163 String strMaxSizeEnter = request.getParameter( PARAMETER_MAX_SIZE_ENTER );
164 String strValue = request.getParameter( PARAMETER_VALUE );
165
166 if ( StringUtils.isBlank( strTitle ) )
167 {
168 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
169 }
170
171 if ( StringUtils.isBlank( strWidth ) )
172 {
173 return AdminMessageService.getMessageUrl( request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP );
174 }
175
176 int nWidth;
177
178 try
179 {
180 nWidth = Integer.parseInt( strWidth );
181 }
182 catch( NumberFormatException nfe )
183 {
184 return AdminMessageService.getMessageUrl( request, PROPERTY_MESSAGE_NO_ARITHMETICAL_CHARACTERS, AdminMessage.TYPE_STOP );
185 }
186
187 int nMaxSizeEnter = -1;
188
189 if ( StringUtils.isNotBlank( strMaxSizeEnter ) )
190 {
191 try
192 {
193 nMaxSizeEnter = Integer.parseInt( strMaxSizeEnter );
194 }
195 catch( NumberFormatException nfe )
196 {
197 return AdminMessageService.getMessageUrl( request, PROPERTY_MESSAGE_NO_ARITHMETICAL_CHARACTERS, AdminMessage.TYPE_STOP );
198 }
199 }
200
201 setTitle( strTitle );
202 setHelpMessage( strHelpMessage );
203 setMandatory( strMandatory != null );
204 setShownInSearch( strIsShownInSearch != null );
205
206 if ( getListAttributeFields( ) == null )
207 {
208 List<AttributeField> listAttributeFields = new ArrayList<AttributeField>( );
209 AttributeFieldsiness/attribute/AttributeField.html#AttributeField">AttributeField attributeField = new AttributeField( );
210 listAttributeFields.add( attributeField );
211 setListAttributeFields( listAttributeFields );
212 }
213
214 getListAttributeFields( ).get( 0 ).setValue( strValue );
215 getListAttributeFields( ).get( 0 ).setWidth( nWidth );
216 getListAttributeFields( ).get( 0 ).setMaxSizeEnter( nMaxSizeEnter );
217
218 return null;
219 }
220
221
222
223
224
225
226
227 public void setAttributeType( Locale locale )
228 {
229 AttributeTypebusiness/attribute/AttributeType.html#AttributeType">AttributeType attributeType = new AttributeType( );
230 attributeType.setLocale( locale );
231 attributeType.setClassName( this.getClass( ).getName( ) );
232 attributeType.setLabelType( PROPERTY_TYPE_TEXT );
233 setAttributeType( attributeType );
234 }
235
236
237
238
239
240
241
242
243
244
245 public List<MyLuteceUserField> getUserFieldsData( String [ ] values, int nIdUser )
246 {
247 List<MyLuteceUserField> listUserFields = new ArrayList<MyLuteceUserField>( );
248 MyLuteceUserFieldbusiness/attribute/MyLuteceUserField.html#MyLuteceUserField">MyLuteceUserField userField = new MyLuteceUserField( );
249 Plugin plugin = PluginService.getPlugin( MyLutecePlugin.PLUGIN_NAME );
250 List<AttributeField> listAttributeFields = AttributeFieldHome.selectAttributeFieldsByIdAttribute( _nIdAttribute, plugin );
251 String strValue;
252
253 if ( ( values == null ) || ( values [0] == null ) )
254 {
255 strValue = EMPTY_STRING;
256 }
257 else
258 {
259 strValue = values [0];
260 }
261
262 userField.setUserId( nIdUser );
263 userField.setAttribute( this );
264 userField.setAttributeField( listAttributeFields.get( 0 ) );
265 userField.setValue( strValue );
266
267 listUserFields.add( userField );
268
269 return listUserFields;
270 }
271
272
273
274
275
276
277 public boolean isAnonymizable( )
278 {
279 return true;
280 }
281 }