1 package fr.paris.lutece.plugins.calendar.business.rss;
2
3 import fr.paris.lutece.plugins.calendar.business.CalendarFilter;
4 import fr.paris.lutece.plugins.calendar.business.CalendarHome;
5 import fr.paris.lutece.plugins.calendar.business.Event;
6 import fr.paris.lutece.plugins.calendar.service.AgendaResource;
7 import fr.paris.lutece.plugins.calendar.service.CalendarPlugin;
8 import fr.paris.lutece.plugins.calendar.web.Constants;
9 import fr.paris.lutece.portal.business.rss.FeedResource;
10 import fr.paris.lutece.portal.business.rss.FeedResourceItem;
11 import fr.paris.lutece.portal.business.rss.IFeedResource;
12 import fr.paris.lutece.portal.business.rss.IFeedResourceItem;
13 import fr.paris.lutece.portal.business.rss.ResourceRss;
14 import fr.paris.lutece.portal.service.content.XPageAppService;
15 import fr.paris.lutece.portal.service.plugin.Plugin;
16 import fr.paris.lutece.portal.service.plugin.PluginService;
17 import fr.paris.lutece.portal.service.util.AppPathService;
18 import fr.paris.lutece.util.url.UrlItem;
19
20 import java.util.ArrayList;
21 import java.util.Date;
22 import java.util.List;
23 import java.util.Locale;
24 import java.util.Map;
25
26 import javax.servlet.http.HttpServletRequest;
27
28
29
30
31
32 public class CalendarResourceRss extends ResourceRss
33 {
34 private static final String EMPTY_STRING = "";
35 private static final String AGENDA_TITLE = "Calendar RSS";
36 private static final String AGENDA_DESCRIPTION = "Calendar RSS";
37 private static final String AGENDA_LINK = "portal.jsp";
38
39
40
41
42
43 public boolean checkResource( )
44 {
45 Plugin pluginCalendar = PluginService.getPlugin( CalendarPlugin.PLUGIN_NAME );
46 AgendaResource agenda = CalendarHome.findAgendaResource( this.getId( ), pluginCalendar );
47
48 return ( agenda != null );
49 }
50
51
52
53
54
55 public boolean contentResourceRss( )
56 {
57 Plugin pluginCalendar = PluginService.getPlugin( CalendarPlugin.PLUGIN_NAME );
58
59 return !CalendarHome.findAgendaResourcesList( pluginCalendar ).isEmpty( );
60 }
61
62
63
64
65 public void deleteResourceRssConfig( int idResourceRss )
66 {
67 }
68
69
70
71
72 public void doSaveConfig( HttpServletRequest request, Locale locale )
73 {
74 }
75
76
77
78
79 public void doUpdateConfig( HttpServletRequest request, Locale locale )
80 {
81 }
82
83
84
85
86 public String doValidateConfigForm( HttpServletRequest request, Locale locale )
87 {
88 this.setDescription( AGENDA_DESCRIPTION );
89 return null;
90 }
91
92
93
94
95 public String getDisplayCreateConfigForm( HttpServletRequest request, Locale locale )
96 {
97 return EMPTY_STRING;
98 }
99
100
101
102
103 public String getDisplayModifyConfigForm( HttpServletRequest request, Locale locale )
104 {
105 return EMPTY_STRING;
106 }
107
108
109
110
111 public Map<String, String> getParameterToApply( HttpServletRequest request )
112 {
113 return null;
114 }
115
116
117
118
119
120 public IFeedResource getFeed( )
121 {
122 Plugin pluginCalendar = PluginService.getPlugin( CalendarPlugin.PLUGIN_NAME );
123
124
125 IFeedResource resource = new FeedResource( );
126 resource.setTitle( AGENDA_TITLE );
127 resource.setDescription( AGENDA_DESCRIPTION );
128 resource.setLink( AGENDA_LINK );
129
130 CalendarFilter filter = new CalendarFilter( );
131 List<Event> listEvent = CalendarHome.findEventsByFilter( filter, pluginCalendar );
132 List<IFeedResourceItem> listItems = new ArrayList<IFeedResourceItem>( );
133
134
135 for ( Event simpleEvent : listEvent )
136 {
137 IFeedResourceItem item = new FeedResourceItem( );
138
139 item.setTitle( ( simpleEvent.getTitle( ) != null ) ? simpleEvent.getTitle( ) : "" );
140
141 item.setDescription( ( simpleEvent.getDescription( ) != null ) ? simpleEvent.getDescription( ) : "" );
142
143 Date dateCreation = new Date( simpleEvent.getDateCreation( ).getTime( ) );
144 item.setDate( dateCreation );
145
146 UrlItem urlEvent = new UrlItem( AppPathService.getPortalUrl( ) );
147 urlEvent.addParameter( XPageAppService.PARAM_XPAGE_APP, CalendarPlugin.PLUGIN_NAME );
148 urlEvent.addParameter( Constants.PARAMETER_ACTION, Constants.ACTION_SHOW_RESULT );
149 urlEvent.addParameter( Constants.PARAMETER_EVENT_ID, simpleEvent.getId( ) );
150 urlEvent.addParameter( Constants.PARAM_AGENDA, simpleEvent.getIdCalendar( ) );
151 item.setLink( urlEvent.getUrl( ) );
152
153 listItems.add( item );
154 }
155
156 resource.setItems( listItems );
157
158 return resource;
159
160 }
161 }