KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > viewtools > EventsWebAPI


1 package com.dotmarketing.viewtools;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Date JavaDoc;
5 import java.util.GregorianCalendar JavaDoc;
6 import java.util.HashMap JavaDoc;
7 import java.util.Iterator JavaDoc;
8 import java.util.List JavaDoc;
9 import java.util.StringTokenizer JavaDoc;
10
11 import org.apache.velocity.tools.view.tools.ViewTool;
12
13 import com.dotmarketing.beans.Identifier;
14 import com.dotmarketing.factories.IdentifierFactory;
15 import com.dotmarketing.factories.InodeFactory;
16 import com.dotmarketing.portlets.categories.model.Category;
17 import com.dotmarketing.portlets.entities.factories.EntityFactory;
18 import com.dotmarketing.portlets.entities.model.Entity;
19 import com.dotmarketing.portlets.events.factories.EventFactory;
20 import com.dotmarketing.portlets.events.model.Event;
21 import com.dotmarketing.portlets.events.model.Recurance;
22 import com.dotmarketing.portlets.files.model.File;
23 import com.dotmarketing.util.UtilHTML;
24 import com.dotmarketing.util.UtilMethods;
25
26 public class EventsWebAPI implements ViewTool {
27
28
29     public void init(Object JavaDoc obj) {
30
31     }
32
33     //Single event methods
34
public Event getEvent(long eventInode) {
35
36         Event ret = (Event) InodeFactory.getInode(eventInode, Event.class);
37         return ret;
38     }
39
40     public Event getEvent(String JavaDoc eventInode) {
41
42         Event ret = (Event) InodeFactory.getInode(eventInode, Event.class);
43         return ret;
44     }
45
46     public List JavaDoc getEventAttachments(Event event) {
47
48         java.util.List JavaDoc _files = InodeFactory.getChildrenClass(event, Identifier.class);
49         ArrayList JavaDoc ret = new ArrayList JavaDoc();
50         Iterator JavaDoc it = _files.iterator();
51         while (it.hasNext()) {
52             Identifier identifier = (Identifier) it.next();
53             File file = (File) IdentifierFactory.getWorkingChildOfClass(identifier, File.class);
54             ret.add(file);
55         }
56         return ret;
57     }
58
59     public Recurance getEventRecurance(Event ev) {
60         if (ev != null)
61             return (Recurance) InodeFactory.getChildOfClass(ev, Recurance.class);
62         else
63             return null;
64     }
65
66     public String JavaDoc recuranceToString(Recurance r) {
67         return com.dotmarketing.util.UtilHTML.recuranceToString(r);
68     }
69
70     public File getEventImage(String JavaDoc eventInode) {
71
72         Event event = (Event) InodeFactory.getInode(eventInode, Event.class);
73         return getEventImage(event);
74
75     }
76
77     public File getEventImage(Event event) {
78         File file = null;
79
80         if (event.getInode() > 0) {
81             List JavaDoc identifiers = InodeFactory.getChildrenClass(event, Identifier.class);
82             Iterator JavaDoc it = identifiers.iterator();
83             while (it.hasNext()) {
84                 Identifier identifier = (Identifier) it.next();
85                 file = (File) IdentifierFactory.getWorkingChildOfClass(identifier, File.class);
86                 if (UtilMethods.isImage(file.getFileName()))
87                     return file;
88             }
89         }
90
91         file = new File();
92
93         return file;
94     }
95
96     public HashMap JavaDoc getEventCategories(Event ev) {
97
98         HashMap JavaDoc ret = new HashMap JavaDoc();
99
100         Entity entity = EntityFactory.getEntity("Event");
101         List JavaDoc categories = EntityFactory.getEntityCategories(entity);
102         Iterator JavaDoc catsIter = categories.iterator();
103
104         while (catsIter.hasNext()) {
105
106             Category cat = (Category) catsIter.next();
107             List JavaDoc cats = InodeFactory.getChildrenClass(cat, Category.class);
108             List JavaDoc eventCats = InodeFactory.getParentsOfClass(ev, Category.class);
109             ArrayList JavaDoc list = new ArrayList JavaDoc();
110             Iterator JavaDoc it = eventCats.iterator();
111             while (it.hasNext()) {
112                 Category catTemp = (Category) it.next();
113                 if (cats.contains(catTemp)) {
114                     list.add(catTemp);
115                 }
116             }
117             ret.put(cat.getCategoryName(), list);
118         }
119         return ret;
120     }
121
122     
123     //Events pulling methods
124
public List JavaDoc getEventsList(Date JavaDoc from, Date JavaDoc to, String JavaDoc keywords, String JavaDoc[] categories, int maxEvents) {
125
126         java.util.Calendar JavaDoc fromCal = new GregorianCalendar JavaDoc();
127         fromCal.setTime(from);
128         java.util.Calendar JavaDoc toCal = new GregorianCalendar JavaDoc();
129         toCal.setTime(to);
130         fromCal.set(java.util.Calendar.HOUR_OF_DAY, 0);
131         fromCal.set(java.util.Calendar.MINUTE, 0);
132         fromCal.set(java.util.Calendar.SECOND, 0);
133         toCal.set(java.util.Calendar.HOUR_OF_DAY, 23);
134         toCal.set(java.util.Calendar.MINUTE, 59);
135         toCal.set(java.util.Calendar.SECOND, 59);
136
137         return EventFactory.getPublicEvents(fromCal.getTime(), toCal.getTime(), keywords, categories, maxEvents);
138
139     }
140
141     //Utility Methods
142
public Date JavaDoc getTodayDate() {
143         return new Date JavaDoc ();
144     }
145
146     public String JavaDoc getTodayDateString() {
147         return UtilMethods.dateToHTMLDate(new Date JavaDoc ());
148     }
149
150     public java.util.Calendar JavaDoc getCalendar() {
151         return new GregorianCalendar JavaDoc();
152     }
153     
154     /**
155      * Add x number of days in the calendar argument
156      * @param cal calendar where is gonna be added the dates
157      * @param days number of days to add
158      * @return s calendar object
159      */

160     public java.util.Calendar JavaDoc addCalendarDate(java.util.Calendar JavaDoc cal, int days) {
161         cal.add(GregorianCalendar.DATE, days);
162         return cal;
163     }
164     
165     public List JavaDoc getEventsCategories() {
166         ArrayList JavaDoc retList = new ArrayList JavaDoc();
167
168         Entity entity = EntityFactory.getEntity("Event");
169         List JavaDoc categories = EntityFactory.getEntityCategories(entity);
170         Iterator JavaDoc catsIter = categories.iterator();
171
172         while (catsIter.hasNext()) {
173             Category cat = (Category) catsIter.next();
174             List JavaDoc cats = InodeFactory.getChildrenClass(cat, Category.class);
175             retList.add(cats);
176         }
177         return retList;
178
179     }
180
181     public String JavaDoc getEventsCategoriesList(String JavaDoc inode) {
182         String JavaDoc retList = "";
183         Entity entity = EntityFactory.getEntity("Event");
184         List JavaDoc categories = EntityFactory.getEntityCategories(entity);
185         Iterator JavaDoc catsIter = categories.iterator();
186
187         while (catsIter.hasNext()) {
188             Category cat = (Category) catsIter.next();
189             retList = retList + UtilHTML.getSelectCategories(cat, 0, inode + ",");
190
191         }
192         return retList;
193     }
194
195     
196     
197     //Methods for macros
198
public List JavaDoc getEvents(Date JavaDoc startDate, int daysDuration, String JavaDoc cats) {
199
200         
201         List JavaDoc parents = new ArrayList JavaDoc();
202         if(cats != null){
203             StringTokenizer JavaDoc st = new StringTokenizer JavaDoc(cats, ",");
204             while (st.hasMoreTokens()) {
205                 try {
206                     Category cat = new Category();
207                     cat.setInode(st.nextToken());
208                     parents.add(cat);
209                 } catch (Exception JavaDoc e) {
210                 }
211             }
212         }
213         
214         return parents;
215     }
216
217     
218     
219     
220 }
Popular Tags