|
36 | 36 | import java.util.ArrayList;
|
37 | 37 | import java.util.List;
|
38 | 38 | import java.util.Optional;
|
| 39 | +import javax.servlet.http.HttpServletRequest; |
39 | 40 |
|
40 | 41 | import org.apache.commons.collections.CollectionUtils;
|
41 | 42 |
|
@@ -84,6 +85,20 @@ public void populateFormColumns( FormPanel formPanel, List<IFormColumn> listForm
|
84 | 85 |
|
85 | 86 | formPanel.setFormResponseItemList( listFormResponseItem );
|
86 | 87 | }
|
| 88 | + @Override |
| 89 | + public void populateFormColumns( FormPanel formPanel, List<IFormColumn> listFormColumn, List<FormFilter> listFormFilter, int nStartIndex, int nPageSize, |
| 90 | + FormItemSortConfig sortConfig, HttpServletRequest request ) |
| 91 | + { |
| 92 | + // To retrieve the values to display on the table we must have a FormPanel and a list of FormColumn |
| 93 | + if ( formPanel == null || CollectionUtils.isEmpty( listFormColumn ) ) |
| 94 | + { |
| 95 | + return; |
| 96 | + } |
| 97 | + |
| 98 | + List<FormResponseItem> listFormResponseItem = searchFormResponseItem( formPanel, listFormColumn, listFormFilter, nStartIndex, nPageSize, sortConfig, request ); |
| 99 | + |
| 100 | + formPanel.setFormResponseItemList( listFormResponseItem ); |
| 101 | + } |
87 | 102 |
|
88 | 103 | @Override
|
89 | 104 | public List<FormResponseItem> searchAllFormResponseItem( FormPanel formPanel, List<IFormColumn> listFormColumn, List<FormFilter> listFormFilter,
|
@@ -121,6 +136,35 @@ private List<FormResponseItem> searchFormResponseItem( FormPanel formPanel, List
|
121 | 136 |
|
122 | 137 | return listFormResponseItem;
|
123 | 138 | }
|
| 139 | + private List<FormResponseItem> searchFormResponseItem( FormPanel formPanel, List<IFormColumn> listFormColumn, List<FormFilter> listFormFilter, |
| 140 | + int nStartIndex, int nPageSize, FormItemSortConfig sortConfig, HttpServletRequest request ) |
| 141 | + { |
| 142 | + // Create the list of all values of the parameter to used |
| 143 | + List<String> listQueryParametersValues = new ArrayList<>( ); |
| 144 | + |
| 145 | + // Build the list of query part from the formPanel, the list of columns and the list of filters |
| 146 | + List<IFormPanelInitializerQueryPart> listFormPanelInitializerQueryPart = buildFormPanelInitializerQueryPartList( formPanel, listQueryParametersValues, request ); |
| 147 | + List<IFormColumnQueryPart> listFormColumnQueryPart = buildformColumnQueryPartList( listFormColumn ); |
| 148 | + List<IFormFilterQueryPart> listFormFilterQueryPart = buildFormFilterQueryPartList( listFormFilter, listQueryParametersValues ); |
| 149 | + |
| 150 | + List<FormResponseItem> listFormResponseItem = new ArrayList<>( ); |
| 151 | + |
| 152 | + for ( FormResponseSearchItem formResponseSearchItem : _formSearchEngine.getSearchResults( listFormPanelInitializerQueryPart, listFormColumnQueryPart, |
| 153 | + listFormFilterQueryPart, sortConfig, nStartIndex, nPageSize, formPanel ) ) |
| 154 | + { |
| 155 | + // Create a FormResponseItem sppfor the current result line |
| 156 | + FormResponseItem formResponseItem = createFormResponseItem( formResponseSearchItem ); |
| 157 | + listFormResponseItem.add( formResponseItem ); |
| 158 | + |
| 159 | + for ( IFormColumnQueryPart formColumnQueryPart : listFormColumnQueryPart ) |
| 160 | + { |
| 161 | + FormColumnCell formColumnCell = formColumnQueryPart.getFormColumnCell( formResponseSearchItem ); |
| 162 | + formResponseItem.addFormColumnCell( formColumnCell ); |
| 163 | + } |
| 164 | + } |
| 165 | + |
| 166 | + return listFormResponseItem; |
| 167 | + } |
124 | 168 |
|
125 | 169 | /**
|
126 | 170 | * Create a FormResponseItem from a DAOUtil
|
@@ -169,6 +213,38 @@ private static List<IFormPanelInitializerQueryPart> buildFormPanelInitializerQue
|
169 | 213 |
|
170 | 214 | return listFormPanelInitializerQueryPart;
|
171 | 215 | }
|
| 216 | + /** |
| 217 | + * Build the list of all FormPanelInitializerQueryPart associate to all the FormPanelInitializer to retrieve from the given FormPanel |
| 218 | + * |
| 219 | + * @param formPanel |
| 220 | + * The FormPanel used to retrieve the list of all FormPanelInitializer to retrieve the list of FormPanelInitializerQueryPart |
| 221 | + * @param listQueryParametersValue |
| 222 | + * The list of all parameter values to used to fill the DAOUtil statement |
| 223 | + * @return the list of all FormPanelInitializerQueryPart associate to all the FormPanelInitializer to retrieve from the given FormPanel |
| 224 | + */ |
| 225 | + private static List<IFormPanelInitializerQueryPart> buildFormPanelInitializerQueryPartList( FormPanel formPanel, List<String> listQueryParametersValue, HttpServletRequest request ) |
| 226 | + { |
| 227 | + List<IFormPanelInitializerQueryPart> listFormPanelInitializerQueryPart = new ArrayList<>( ); |
| 228 | + |
| 229 | + IFormPanelConfiguration formPanelConfiguration = formPanel.getFormPanelConfiguration( ); |
| 230 | + |
| 231 | + if ( formPanelConfiguration != null && !CollectionUtils.isEmpty( formPanel.getListFormPanelInitializer( ) ) ) |
| 232 | + { |
| 233 | + List<IFormPanelInitializer> listFormPanelInitializer = formPanel.getListFormPanelInitializer( ); |
| 234 | + |
| 235 | + for ( IFormPanelInitializer formPanelInitializer : listFormPanelInitializer ) |
| 236 | + { |
| 237 | + IFormPanelInitializerQueryPart formPanelInitializerQueryPart = retrieveFormPanelInitializerQueryPart( formPanelInitializer, |
| 238 | + listQueryParametersValue, request ); |
| 239 | + if ( formPanelInitializerQueryPart != null ) |
| 240 | + { |
| 241 | + listFormPanelInitializerQueryPart.add( formPanelInitializerQueryPart ); |
| 242 | + } |
| 243 | + } |
| 244 | + } |
| 245 | + |
| 246 | + return listFormPanelInitializerQueryPart; |
| 247 | + } |
172 | 248 |
|
173 | 249 | /**
|
174 | 250 | * Retrieve the IformPanelInitializerQueryPart associate to the givenFormPanelInitializer
|
@@ -200,6 +276,36 @@ private static IFormPanelInitializerQueryPart retrieveFormPanelInitializerQueryP
|
200 | 276 |
|
201 | 277 | return formPanelInitializerQueryPartResult;
|
202 | 278 | }
|
| 279 | + /** |
| 280 | + * Retrieve the IformPanelInitializerQueryPart associate to the givenFormPanelInitializer |
| 281 | + * |
| 282 | + * @param formPanelInitializer |
| 283 | + * The formPanelInitializer used to retrieve the associated IFormPanelInitializerQueryPart |
| 284 | + * @param listQueryParametersPositionValue |
| 285 | + * The list of all parameter values to used to fill the DAOUtil statement |
| 286 | + * @return the IFormPanelInitializerQueryPart associate to the given FormPanelInitializer or null if not found |
| 287 | + */ |
| 288 | + private static IFormPanelInitializerQueryPart retrieveFormPanelInitializerQueryPart( IFormPanelInitializer formPanelInitializer, List<String> listQueryParametersPositionValue , HttpServletRequest request) |
| 289 | + { |
| 290 | + IFormPanelInitializerQueryPart formPanelInitializerQueryPartResult = null; |
| 291 | + |
| 292 | + if ( formPanelInitializer != null ) |
| 293 | + { |
| 294 | + formPanelInitializerQueryPartResult = formPanelInitializer.getIFormPanelInitializerQueryPart( request ); |
| 295 | + |
| 296 | + if ( formPanelInitializerQueryPartResult != null ) |
| 297 | + { |
| 298 | + FormParameters formParameters = formPanelInitializer.getFormParameters( ); |
| 299 | + formPanelInitializerQueryPartResult.buildFormPanelInitializerQuery( formParameters ); |
| 300 | + |
| 301 | + List<String> listUsedParametersValues = formParameters.getListUsedParametersValue( ); |
| 302 | + listQueryParametersPositionValue.addAll( listUsedParametersValues ); |
| 303 | + } |
| 304 | + } |
| 305 | + |
| 306 | + return formPanelInitializerQueryPartResult; |
| 307 | + } |
| 308 | + |
203 | 309 |
|
204 | 310 | /**
|
205 | 311 | * Build the list of IFormColumnQueryPart to use for build the global query from the given list of IFormColumn
|
|
0 commit comments