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.panel.display.impl;
35
36 import java.util.ArrayList;
37 import java.util.LinkedHashMap;
38 import java.util.List;
39 import java.util.Locale;
40 import java.util.Map;
41
42 import org.apache.commons.collections.CollectionUtils;
43 import org.apache.commons.lang3.StringUtils;
44 import org.apache.commons.lang3.math.NumberUtils;
45
46 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.DirectoryRecordItem;
47 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.panel.IRecordPanel;
48 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.panel.configuration.RecordPanelConfiguration;
49 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.panel.display.IRecordPanelDisplay;
50 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.util.IRecordListPosition;
51 import fr.paris.lutece.portal.service.template.AppTemplateService;
52
53
54
55
56 public abstract class AbstractRecordPanelDisplay implements IRecordPanelDisplay, IRecordListPosition
57 {
58
59 private static final String TEMPLATE_RECORD_PANEL = "admin/plugins/directory/modules/multiview/panel/record_panel_template.html";
60
61
62 private static final String MARK_PANEL_ACTIVE = "panel_active";
63 private static final String MARK_PANEL_TECHNICAL_CODE = "panel_technical_code";
64 private static final String MARK_PANEL_TITLE = "panel_title";
65 private static final String MARK_PANEL_RECORD_NUMBER = "panel_recordNumber";
66
67
68 private static final int DEFAULT_RECORD_NUMBER = NumberUtils.INTEGER_ZERO;
69 private static final int DEFAULT_RECORD_PANEL_POSITION = NumberUtils.INTEGER_MINUS_ONE;
70
71
72 private boolean _bActive;
73 private String _strTemplate;
74 private IRecordPanel _recordPanel;
75
76
77
78
79 @Override
80 public int getPosition( )
81 {
82 int nRecordPanelPosition = DEFAULT_RECORD_PANEL_POSITION;
83
84 if ( _recordPanel != null )
85 {
86 RecordPanelConfiguration recordPanelConfiguration = _recordPanel.getRecordPanelConfiguration( );
87
88 if ( recordPanelConfiguration != null )
89 {
90 nRecordPanelPosition = recordPanelConfiguration.getPosition( );
91 }
92 }
93
94 return nRecordPanelPosition;
95 }
96
97
98
99
100 @Override
101 public int getRecordNumber( )
102 {
103 int nRecordNumber = DEFAULT_RECORD_NUMBER;
104
105 if ( _recordPanel != null )
106 {
107 List<DirectoryRecordItem> listDirectoryRecordItem = _recordPanel.getDirectoryRecordItemList( );
108
109 if ( !CollectionUtils.isEmpty( listDirectoryRecordItem ) )
110 {
111 nRecordNumber = listDirectoryRecordItem.size( );
112 }
113 }
114
115 return nRecordNumber;
116 }
117
118
119
120
121 @Override
122 public String getTemplate( )
123 {
124 return _strTemplate;
125 }
126
127
128
129
130 @Override
131 public boolean isActive( )
132 {
133 return _bActive;
134 }
135
136
137
138
139 @Override
140 public void setActive( boolean bActive )
141 {
142 _bActive = bActive;
143 }
144
145
146
147
148 @Override
149 public String getTechnicalCode( )
150 {
151 String strTechnicalCode = StringUtils.EMPTY;
152
153 IRecordPanel recordPanel = getRecordPanel( );
154 if ( recordPanel != null )
155 {
156 strTechnicalCode = recordPanel.getTechnicalCode( );
157 }
158
159 return strTechnicalCode;
160 }
161
162
163
164
165 @Override
166 public List<DirectoryRecordItem> getDirectoryRecordItemList( )
167 {
168 List<DirectoryRecordItem> listDirectoryRecordItemResult = new ArrayList<>( );
169
170 if ( _recordPanel != null )
171 {
172 listDirectoryRecordItemResult = _recordPanel.getDirectoryRecordItemList( );
173 }
174
175 return listDirectoryRecordItemResult;
176 }
177
178
179
180
181 @Override
182 public IRecordPanel getRecordPanel( )
183 {
184 return _recordPanel;
185 }
186
187
188
189
190 @Override
191 public void setRecordPanel( IRecordPanel recordPanel )
192 {
193 _recordPanel = recordPanel;
194 }
195
196
197
198
199 @Override
200 public String buildTemplate( Locale locale )
201 {
202 String strTechnicalCode = StringUtils.EMPTY;
203 String strTitle = StringUtils.EMPTY;
204
205 IRecordPanel recordPanel = getRecordPanel( );
206 if ( recordPanel != null )
207 {
208 strTechnicalCode = recordPanel.getTechnicalCode( );
209 strTitle = recordPanel.getTitle( );
210 }
211
212 Map<String, Object> model = new LinkedHashMap<>( );
213 model.put( MARK_PANEL_ACTIVE, _bActive );
214 model.put( MARK_PANEL_TECHNICAL_CODE, strTechnicalCode );
215 model.put( MARK_PANEL_TITLE, strTitle );
216 model.put( MARK_PANEL_RECORD_NUMBER, getRecordNumber( ) );
217
218 String strRecordPanelDisplayTemplate = AppTemplateService.getTemplate( TEMPLATE_RECORD_PANEL, locale, model ).getHtml( );
219 _strTemplate = strRecordPanelDisplayTemplate;
220
221 return _strTemplate;
222 }
223 }