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.directory.modules.multiview.web.record.filter.display.impl;
35
36 import java.util.LinkedHashMap;
37 import java.util.Map;
38
39 import javax.servlet.http.HttpServletRequest;
40
41 import org.apache.commons.lang3.StringUtils;
42
43 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.RecordParameters;
44 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.filter.IRecordFilter;
45 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.filter.display.IRecordFilterDisplay;
46 import fr.paris.lutece.portal.service.template.AppTemplateService;
47 import fr.paris.lutece.util.ReferenceList;
48 import fr.paris.lutece.util.html.HtmlTemplate;
49
50
51
52
53 public abstract class AbstractRecordFilterDisplay implements IRecordFilterDisplay
54 {
55
56 protected static final String FILTER_TEMPLATE_NAME = "admin/plugins/directory/modules/multiview/record_filter.html";
57
58
59 protected static final String MARK_FILTER_LIST = "filter_list";
60 protected static final String MARK_FILTER_NAME = "filter_name";
61 protected static final String MARK_FILTER_LIST_VALUE = "filter_list_value";
62
63
64 private static final String DEFAULT_RECORD_FILTER_LABEL = "-";
65
66
67 private int _nPosition;
68 private String _strValue = StringUtils.EMPTY;
69 private String _strTemplate = StringUtils.EMPTY;
70 private IRecordFilter _recordFilter;
71
72
73
74
75 @Override
76 public String getValue( )
77 {
78 return _strValue;
79 }
80
81
82
83
84
85
86
87 protected void setValue( String strValue )
88 {
89 _strValue = strValue;
90 }
91
92
93
94
95 @Override
96 public int getPosition( )
97 {
98 return _nPosition;
99 }
100
101
102
103
104 @Override
105 public void setPosition( int nPosition )
106 {
107 _nPosition = nPosition;
108 }
109
110
111
112
113 @Override
114 public String getTemplate( )
115 {
116 return _strTemplate;
117 }
118
119
120
121
122
123
124
125 protected void setTemplate( String strTemplate )
126 {
127 _strTemplate = strTemplate;
128 }
129
130
131
132
133 @Override
134 public IRecordFilter getRecordFilter( )
135 {
136 return _recordFilter;
137 }
138
139
140
141
142 @Override
143 public void setRecordFilter( IRecordFilter recordFilter )
144 {
145 _recordFilter = recordFilter;
146 }
147
148
149
150
151 @Override
152 public abstract void buildTemplate( HttpServletRequest request );
153
154
155
156
157
158
159
160
161 protected abstract Map<String, Object> getFilterDisplayMapValues( HttpServletRequest request );
162
163
164
165
166 @Override
167 public RecordParameters createRecordParameters( HttpServletRequest request )
168 {
169 RecordParameters recordParameters = null;
170
171 if ( _recordFilter != null )
172 {
173 recordParameters = new RecordParameters( );
174
175 Map<String, Object> mapKeyNameValues = getFilterDisplayMapValues( request );
176 recordParameters.setRecordParametersMap( mapKeyNameValues );
177
178 _recordFilter.setRecordParameters( recordParameters );
179 }
180
181 return recordParameters;
182 }
183
184
185
186
187
188
189
190
191
192
193
194 protected void manageFilterTemplate( HttpServletRequest request, ReferenceList referenceList, String strParameterName )
195 {
196 String strTemplateResult = StringUtils.EMPTY;
197
198 Map<String, Object> model = new LinkedHashMap<>( );
199 model.put( MARK_FILTER_LIST, referenceList );
200 model.put( MARK_FILTER_LIST_VALUE, getValue( ) );
201 model.put( MARK_FILTER_NAME, strParameterName );
202
203 HtmlTemplate htmlTemplate = AppTemplateService.getTemplate( FILTER_TEMPLATE_NAME, request.getLocale( ), model );
204 if ( htmlTemplate != null )
205 {
206 strTemplateResult = htmlTemplate.getHtml( );
207 }
208
209 setTemplate( strTemplateResult );
210 }
211
212
213
214
215
216
217 protected String getRecordFilterDisplayLabel( )
218 {
219 String strRecordFilterDisplayLabel = DEFAULT_RECORD_FILTER_LABEL;
220
221 IRecordFilter recordFilter = getRecordFilter( );
222 if ( recordFilter != null && recordFilter.getRecordFilterConfiguration( ) != null )
223 {
224 strRecordFilterDisplayLabel = recordFilter.getRecordFilterConfiguration( ).getRecordFilterLabel( );
225 }
226
227 return strRecordFilterDisplayLabel;
228 }
229 }