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.newsletter.service.topic;
35
36 import fr.paris.lutece.plugins.newsletter.business.topic.NewsletterTopic;
37 import fr.paris.lutece.plugins.newsletter.business.topic.NewsletterTopicHome;
38 import fr.paris.lutece.plugins.newsletter.service.NewsletterPlugin;
39 import fr.paris.lutece.portal.business.user.AdminUser;
40 import fr.paris.lutece.portal.service.plugin.Plugin;
41 import fr.paris.lutece.portal.service.plugin.PluginService;
42 import fr.paris.lutece.portal.service.spring.SpringContextService;
43 import fr.paris.lutece.util.ReferenceItem;
44 import fr.paris.lutece.util.ReferenceList;
45
46 import java.io.Serializable;
47 import java.util.Locale;
48 import java.util.Map;
49
50 import org.apache.commons.lang3.StringUtils;
51
52
53
54
55 public class NewsletterTopicService implements Serializable
56 {
57
58
59
60 public static final String BEAN_NAME = "newsletter.newsletterTopicService";
61
62
63
64
65 private static final long serialVersionUID = -555734991348133022L;
66
67
68
69
70
71
72 public static NewsletterTopicService getService( )
73 {
74 return SpringContextService.getBean( BEAN_NAME );
75 }
76
77
78
79
80
81
82
83
84 public ReferenceList getNewsletterTopicTypeRefList( Locale locale )
85 {
86 ReferenceList refListResult = new ReferenceList( );
87 for ( INewsletterTopicService service : SpringContextService.getBeansOfType( INewsletterTopicService.class ) )
88 {
89 ReferenceItem refItem = new ReferenceItem( );
90 refItem.setCode( service.getNewsletterTopicTypeCode( ) );
91 refItem.setName( service.getNewsletterTopicTypeName( locale ) );
92 refListResult.add( refItem );
93 }
94 return refListResult;
95 }
96
97
98
99
100
101
102
103
104
105
106
107 public void createNewsletterTopic( NewsletterTopic newsletterTopic, AdminUser user, Locale locale )
108 {
109 Plugin plugin = PluginService.getPlugin( NewsletterPlugin.PLUGIN_NAME );
110 for ( INewsletterTopicService service : SpringContextService.getBeansOfType( INewsletterTopicService.class ) )
111 {
112 if ( StringUtils.equals( service.getNewsletterTopicTypeCode( ), newsletterTopic.getTopicTypeCode( ) ) )
113 {
114 newsletterTopic.setTitle( service.getNewsletterTopicTypeName( locale ) );
115 NewsletterTopicHome.insertNewsletterTopic( newsletterTopic, plugin );
116 service.createNewsletterTopic( newsletterTopic, user, locale );
117 }
118 }
119 }
120
121
122
123
124
125
126
127
128
129 public void removeNewsletterTopic( NewsletterTopic newsletterTopic, AdminUser user )
130 {
131 Plugin plugin = PluginService.getPlugin( NewsletterPlugin.PLUGIN_NAME );
132 for ( INewsletterTopicService service : SpringContextService.getBeansOfType( INewsletterTopicService.class ) )
133 {
134 if ( StringUtils.equals( service.getNewsletterTopicTypeCode( ), newsletterTopic.getTopicTypeCode( ) ) )
135 {
136 service.removeNewsletterTopic( newsletterTopic.getId( ) );
137 }
138 }
139 NewsletterTopicHome.removeNewsletterTopic( newsletterTopic.getId( ), plugin );
140 NewsletterTopicHome.fillBlankInOrder( newsletterTopic.getIdNewsletter( ), newsletterTopic.getOrder( ), newsletterTopic.getSection( ), plugin );
141 }
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156 public String getConfigurationPage( NewsletterTopic newsletterTopic, String strBaseUrl, AdminUser user, Locale locale )
157 {
158 for ( INewsletterTopicService service : SpringContextService.getBeansOfType( INewsletterTopicService.class ) )
159 {
160 if ( StringUtils.equals( service.getNewsletterTopicTypeCode( ), newsletterTopic.getTopicTypeCode( ) ) )
161 {
162 return service.getConfigurationPage( newsletterTopic, strBaseUrl, user, locale );
163 }
164 }
165 return null;
166 }
167
168
169
170
171
172
173
174
175
176
177
178
179
180 public void saveConfiguration( Map<String, String [ ]> mapParameters, NewsletterTopic newsletterTopic, AdminUser user, Locale locale )
181 {
182 for ( INewsletterTopicService service : SpringContextService.getBeansOfType( INewsletterTopicService.class ) )
183 {
184 if ( StringUtils.equals( service.getNewsletterTopicTypeCode( ), newsletterTopic.getTopicTypeCode( ) ) )
185 {
186 service.saveConfiguration( mapParameters, newsletterTopic, user, locale );
187 }
188 }
189 }
190
191
192
193
194
195
196
197
198
199 public void modifyNewsletterTopicOrder( NewsletterTopic newsletterTopic, boolean bMoveUp )
200 {
201 Plugin plugin = PluginService.getPlugin( NewsletterPlugin.PLUGIN_NAME );
202
203 if ( bMoveUp && newsletterTopic.getOrder( ) <= 1 || !bMoveUp && newsletterTopic.getOrder( ) == NewsletterTopicHome
204 .getLastOrder( newsletterTopic.getIdNewsletter( ), newsletterTopic.getSection( ), plugin ) )
205 {
206 return;
207 }
208
209 NewsletterTopicHome.updateNewsletterTopicOrder( newsletterTopic, bMoveUp ? newsletterTopic.getOrder( ) - 1 : newsletterTopic.getOrder( ) + 1, plugin );
210 }
211
212
213
214
215
216
217
218
219
220 public void modifyNewsletterTopicSection( NewsletterTopic newsletterTopic, int nSection )
221 {
222 Plugin plugin = PluginService.getPlugin( NewsletterPlugin.PLUGIN_NAME );
223 if ( newsletterTopic.getSection( ) == nSection )
224 {
225 return;
226 }
227
228 int nCurrentOrder = newsletterTopic.getOrder( );
229 int nCurrentSection = newsletterTopic.getSection( );
230
231
232 newsletterTopic.setSection( nSection );
233 newsletterTopic.setOrder( NewsletterTopicHome.getNewOrder( newsletterTopic.getIdNewsletter( ), nSection, plugin ) );
234 NewsletterTopicHome.updateNewsletterTopic( newsletterTopic, plugin );
235
236
237 NewsletterTopicHome.fillBlankInOrder( newsletterTopic.getIdNewsletter( ), nCurrentOrder, nCurrentSection, plugin );
238 }
239
240
241
242
243
244
245
246
247
248
249
250
251 public String getTopicContent( NewsletterTopic newsletterTopic, AdminUser user, Locale locale )
252 {
253 for ( INewsletterTopicService service : SpringContextService.getBeansOfType( INewsletterTopicService.class ) )
254 {
255 if ( StringUtils.equals( service.getNewsletterTopicTypeCode( ), newsletterTopic.getTopicTypeCode( ) ) )
256 {
257 return service.getHtmlContent( newsletterTopic, user, locale );
258 }
259 }
260 return null;
261 }
262
263
264
265
266
267
268
269
270 public String getTopicTypeName( String strTopicTypeCode )
271 {
272 for ( INewsletterTopicService service : SpringContextService.getBeansOfType( INewsletterTopicService.class ) )
273 {
274 if ( StringUtils.equals( service.getNewsletterTopicTypeCode( ), strTopicTypeCode ) )
275 {
276 return service.getNewsletterTopicTypeName( Locale.getDefault( ) );
277 }
278 }
279 return StringUtils.EMPTY;
280 }
281 }