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.column.display;
35
36 import java.util.ArrayList;
37 import java.util.Collections;
38 import java.util.List;
39
40 import fr.paris.lutece.plugins.directory.modules.multiview.business.record.column.IRecordColumn;
41 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.column.display.factory.IRecordColumnDisplayFactory;
42 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.column.display.factory.RecordColumnDisplayFactoryFacade;
43 import fr.paris.lutece.plugins.directory.modules.multiview.web.record.util.RecordListPositionComparator;
44
45
46
47
48 public class RecordColumnDisplayFactory
49 {
50
51
52
53
54
55
56
57 public List<IRecordColumnDisplay> createRecordColumnDisplayList( List<IRecordColumn> listRecordColumn )
58 {
59 List<IRecordColumnDisplay> listRecordColumnDisplay = new ArrayList<>( );
60 List<IRecordColumnDisplayFactory> listRecordColumnDisplayFactory = new RecordColumnDisplayFactoryFacade( ).buildRecordColumnDisplayFactoryList( );
61
62 if ( listRecordColumn != null && !listRecordColumn.isEmpty( ) && listRecordColumnDisplayFactory != null && !listRecordColumnDisplayFactory.isEmpty( ) )
63 {
64 for ( IRecordColumn recordColumn : listRecordColumn )
65 {
66 IRecordColumnDisplay recordColumnDisplay = null;
67 for ( IRecordColumnDisplayFactory recordColumnDisplayFactory : listRecordColumnDisplayFactory )
68 {
69 recordColumnDisplay = recordColumnDisplayFactory.buildRecordColumnDisplay( recordColumn );
70 if ( recordColumnDisplay != null )
71 {
72 recordColumnDisplay.setPosition( recordColumn.getRecordColumnPosition( ) );
73 listRecordColumnDisplay.add( recordColumnDisplay );
74 break;
75 }
76 }
77 }
78
79
80 Collections.sort( listRecordColumnDisplay, new RecordListPositionComparator( ) );
81 }
82
83 return listRecordColumnDisplay;
84 }
85 }