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.gismap.utils;
35
36 import java.util.ArrayList;
37 import java.util.List;
38
39 import fr.paris.lutece.plugins.directory.business.Directory;
40 import fr.paris.lutece.plugins.directory.business.DirectoryHome;
41 import fr.paris.lutece.plugins.directory.business.Entry;
42 import fr.paris.lutece.plugins.directory.business.EntryFilter;
43 import fr.paris.lutece.plugins.directory.business.EntryHome;
44 import fr.paris.lutece.plugins.directory.business.Field;
45 import fr.paris.lutece.plugins.directory.business.IEntry;
46 import fr.paris.lutece.plugins.directory.service.DirectoryPlugin;
47 import fr.paris.lutece.portal.service.plugin.Plugin;
48 import fr.paris.lutece.portal.service.plugin.PluginService;
49 import fr.paris.lutece.portal.service.util.AppPropertiesService;
50
51
52
53
54
55
56 public final class GismapDirectoryUtils
57 {
58
59 private static final Plugin _DirectoryPlugin = PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME );
60
61
62 public static final String GISMAP_VIEW = "gismap.view.";
63
64
65 public static final String GISMAP_PARAMETER = ".parameter";
66
67
68 private static final String PROPERTY_ENTRY_TYPE_GEOLOCATION = "directory.entry_type.geolocation";
69
70
71
72
73 private GismapDirectoryUtils( )
74 {
75 }
76
77
78
79
80
81
82
83 public static String getNbViewByDirectoryId( int directoryId )
84 {
85 String nbView = "";
86
87 Directory directory = DirectoryHome.findByPrimaryKey( directoryId, _DirectoryPlugin );
88 EntryFilter filter = new EntryFilter( );
89 filter.setIdDirectory( directory.getIdDirectory( ) );
90 filter.setIsComment( EntryFilter.FILTER_FALSE );
91 filter.setIsEntryParentNull( EntryFilter.FILTER_TRUE );
92
93 List<IEntry> listEntry = new ArrayList<>( );
94
95 List<IEntry> listEntryFirstLevel = EntryHome.getEntryList( filter, _DirectoryPlugin );
96
97 filter.setIsEntryParentNull( EntryFilter.ALL_INT );
98
99 for ( IEntry entry : listEntryFirstLevel )
100 {
101 if ( !entry.getEntryType( ).getGroup( ) )
102 {
103 listEntry.add( EntryHome.findByPrimaryKey( entry.getIdEntry( ), _DirectoryPlugin ) );
104 }
105
106 filter.setIdEntryParent( entry.getIdEntry( ) );
107
108 List<IEntry> listChildren = EntryHome.getEntryList( filter, _DirectoryPlugin );
109
110 for ( IEntry entryChild : listChildren )
111 {
112 listEntry.add( EntryHome.findByPrimaryKey( entryChild.getIdEntry( ), _DirectoryPlugin ) );
113 }
114 }
115
116 for ( IEntry entry : listEntry )
117 {
118 if ( "fr.paris.lutece.plugins.directory.business.EntryTypeGeolocation".equals( entry.getEntryType( ).getClassName( ) ) )
119 {
120 for ( Field field : entry.getFields( ) )
121 {
122 if ( "viewNumberGes".equals( field.getTitle( ) ) )
123 {
124 nbView = field.getValue( );
125 }
126 }
127 }
128 }
129 return nbView;
130 }
131
132
133
134
135
136
137
138
139
140
141
142 public static Integer getGeolocationEntry(Integer nIdDirectory) {
143
144 EntryFilter filterGeolocation = new EntryFilter( );
145 filterGeolocation.setIdDirectory( nIdDirectory );
146 filterGeolocation.setIdType( AppPropertiesService.getPropertyInt( PROPERTY_ENTRY_TYPE_GEOLOCATION, 16 ) );
147 filterGeolocation.setIsShownInResultRecord( 1 );
148
149 List<IEntry> entriesGeolocationList = EntryHome.getEntryList( filterGeolocation, _DirectoryPlugin );
150 Entry geolocEntry = (Entry) entriesGeolocationList.get( 0 );
151 if (geolocEntry != null )
152 {
153 return geolocEntry.getIdEntry( );
154 }
155
156 return null;
157 }
158
159 }