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;
35
36 import java.util.ArrayList;
37 import java.util.Collections;
38 import java.util.List;
39
40 import javax.servlet.http.HttpServletRequest;
41
42 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.filter.IRecordFilter;
43 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.filter.configuration.RecordFilterConfiguration;
44 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.filter.display.factory.IRecordFilterDisplayFactory;
45 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.filter.display.factory.RecordFilterDisplayFactoryFacade;
46 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.util.RecordListPositionComparator;
47
48
49
50
51 public class RecordFilterDisplayFactory
52 {
53
54
55
56
57
58
59
60
61
62 public List<IRecordFilterDisplay> createRecordFilterDisplayList( HttpServletRequest request, List<IRecordFilter> listRecordFilter )
63 {
64 List<IRecordFilterDisplay> listRecordFilterDisplay = new ArrayList<>( );
65 List<IRecordFilterDisplayFactory> listRecordFilterDisplayFactory = new RecordFilterDisplayFactoryFacade( ).buildRecordFilterDisplayFactoryList( );
66
67 if ( listRecordFilter != null && !listRecordFilter.isEmpty( ) && listRecordFilterDisplayFactory != null && !listRecordFilterDisplayFactory.isEmpty( ) )
68 {
69 for ( IRecordFilter recordFilter : listRecordFilter )
70 {
71 IRecordFilterDisplay recordFilterDisplay = null;
72 for ( IRecordFilterDisplayFactory recordFilterDisplayFactory : listRecordFilterDisplayFactory )
73 {
74 recordFilterDisplay = recordFilterDisplayFactory.buildFilterDisplay( recordFilter );
75 if ( recordFilterDisplay != null )
76 {
77 manageRecordFilterDisplay( request, recordFilter, recordFilterDisplay );
78
79 listRecordFilterDisplay.add( recordFilterDisplay );
80 break;
81 }
82 }
83 }
84
85
86 Collections.sort( listRecordFilterDisplay, new RecordListPositionComparator( ) );
87 }
88
89 return listRecordFilterDisplay;
90 }
91
92
93
94
95
96
97
98
99
100
101
102 private void manageRecordFilterDisplay( HttpServletRequest request, IRecordFilter recordFilter, IRecordFilterDisplay recordFilterDisplay )
103 {
104 recordFilterDisplay.createRecordParameters( request );
105
106 RecordFilterConfiguration recordFilterConfiguration = recordFilter.getRecordFilterConfiguration( );
107 if ( recordFilterConfiguration != null )
108 {
109 recordFilterDisplay.setPosition( recordFilterConfiguration.getPosition( ) );
110 }
111 }
112 }