Changeset 365
- Timestamp:
- 04/12/06 01:15:22
- Files:
-
- trunk/calendar3/appcommon/src/org/bedework/appcommon/MyCalendarVO.java (modified) (4 diffs)
- trunk/calendar3/calFacade/src/org/bedework/calfacade/BwFreeBusyComponent.java (modified) (3 diffs)
- trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/TimeRange.java (modified) (2 diffs)
- trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/CompFilter.java (modified) (4 diffs)
- trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/Filter.java (modified) (13 diffs)
- trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/PropFilter.java (modified) (3 diffs)
- trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java (modified) (1 diff)
- trunk/calendar3/webadmin/src/org/bedework/webadmin/event/PEUpdateEventAction.java (modified) (1 diff)
- trunk/calendar3/webclient/src/org/bedework/webclient/BwAccessAction.java (modified) (1 diff)
- trunk/calendar3/webclient/src/org/bedework/webclient/BwFreeBusyAction.java (modified) (8 diffs)
- trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/calendar3/appcommon/src/org/bedework/appcommon/MyCalendarVO.java
r278 r365 471 471 firstDay.set(Calendar.DAY_OF_MONTH, 472 472 calendar.getMinimum(Calendar.DAY_OF_MONTH)); 473 firstDay.set(Calendar.HOUR_OF_DAY, 0); 474 firstDay.set(Calendar.MINUTE, 0); 475 firstDay.set(Calendar.SECOND, 0); 476 firstDay.set(Calendar.MILLISECOND, 0); 473 477 return new MyCalendarVO(firstDay, calInfo.getLocale()); 474 478 } … … 485 489 c.add(Calendar.MONTH, 1); 486 490 c.add(Calendar.DATE, -1); 491 c.set(Calendar.HOUR_OF_DAY, 0); 492 c.set(Calendar.MINUTE, 0); 493 c.set(Calendar.SECOND, 0); 494 c.set(Calendar.MILLISECOND, 0); 487 495 return new MyCalendarVO(c, calInfo.getLocale()); 488 496 } … … 496 504 Calendar firstDay = (Calendar)calendar.clone(); 497 505 firstDay.set(Calendar.DAY_OF_WEEK, calInfo.getFirstDayOfWeek()); 506 firstDay.set(Calendar.HOUR_OF_DAY, 0); 507 firstDay.set(Calendar.MINUTE, 0); 508 firstDay.set(Calendar.SECOND, 0); 509 firstDay.set(Calendar.MILLISECOND, 0); 498 510 return new MyCalendarVO(firstDay, calInfo.getLocale()); 499 511 } … … 509 521 c.add(Calendar.WEEK_OF_YEAR, 1); 510 522 c.add(Calendar.DATE, -1); 523 c.set(Calendar.HOUR_OF_DAY, 0); 524 c.set(Calendar.MINUTE, 0); 525 c.set(Calendar.SECOND, 0); 526 c.set(Calendar.MILLISECOND, 0); 511 527 return new MyCalendarVO(c, calInfo.getLocale()); 512 528 } trunk/calendar3/calFacade/src/org/bedework/calfacade/BwFreeBusyComponent.java
r2 r365 55 55 56 56 import java.io.Serializable; 57 import java.util.ArrayList; 57 58 import java.util.Collection; 58 59 import java.util.Iterator; 59 import java.util.Vector;60 60 61 61 import net.fortuna.ical4j.model.Period; … … 83 83 /** Collection of Period 84 84 */ 85 private Vectorperiods;85 private ArrayList periods; 86 86 87 87 /** Constructor … … 111 111 public Collection getPeriods() { 112 112 if (periods == null) { 113 periods = new Vector();113 periods = new ArrayList(); 114 114 } 115 115 return periods; trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/TimeRange.java
r2 r365 57 57 import org.bedework.calfacade.BwDateTime; 58 58 59 import net.fortuna.ical4j.model.property.DateProperty; 59 60 import net.fortuna.ical4j.model.Property; 60 61 … … 133 134 */ 134 135 public boolean matches(Property candidate) { 136 if (!(candidate instanceof DateProperty)) { 137 return false; 138 } 139 135 140 // XXX later 136 141 return true; trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/CompFilter.java
r2 r365 58 58 import edu.rpi.cct.webdav.servlet.common.WebdavUtils; 59 59 60 import java.util.ArrayList; 61 import java.util.Collection; 60 62 import java.util.Iterator; 61 import java.util.Vector;62 63 63 64 import org.apache.log4j.Logger; … … 75 76 private TimeRange timeRange; 76 77 77 private VectorcompFilters;78 79 private VectorpropFilters;78 private Collection compFilters; 79 80 private Collection propFilters; 80 81 81 82 /** Constructor … … 131 132 * @return Vector of comp filters 132 133 */ 133 public VectorgetCompFilters() {134 public Collection getCompFilters() { 134 135 if (compFilters == null) { 135 compFilters = new Vector();136 compFilters = new ArrayList(); 136 137 } 137 138 … … 156 157 * @return Vector of prop filter 157 158 */ 158 public VectorgetPropFilters() {159 public Collection getPropFilters() { 159 160 if (propFilters == null) { 160 propFilters = new Vector();161 propFilters = new ArrayList(); 161 162 } 162 163 trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/Filter.java
r310 r365 70 70 import edu.rpi.sss.util.xml.XmlUtil; 71 71 72 import java.util.ArrayList; 72 73 import java.util.Collection; 73 74 import java.util.Iterator; 74 import java.util.Vector;75 75 import javax.servlet.http.HttpServletResponse; 76 76 … … 236 236 237 237 if (!"VCALENDAR".equals(cfltr.getName())) { 238 return new Vector();238 return new ArrayList(); 239 239 } 240 240 … … 262 262 if ((calTimerange != null) && 263 263 (calTimerange.getStart().after(calTimerange.getEnd()))) { 264 return new Vector();264 return new ArrayList(); 265 265 } 266 266 … … 274 274 eventq.trange = calTimerange; 275 275 } else { 276 Vectorsubcfs = cfltr.getCompFilters();277 CompFilter subcf = (CompFilter)subcfs. firstElement();276 Collection subcfs = cfltr.getCompFilters(); 277 CompFilter subcf = (CompFilter)subcfs.iterator().next(); 278 278 279 279 if ("VEVENT".equals(subcf.getName())) { … … 287 287 postFilterNeeded = true; 288 288 if (eventFilters == null) { 289 eventFilters = new Vector();289 eventFilters = new ArrayList(); 290 290 } 291 291 eventFilters.addAll(subcf.getPropFilters()); … … 293 293 294 294 if (eventq == null) { 295 return new Vector();295 return new ArrayList(); 296 296 } 297 297 } else { … … 299 299 Collection 300 300 */ 301 return new Vector();301 return new ArrayList(); 302 302 } 303 303 } … … 305 305 306 306 if (eventq == null) { 307 return new Vector();307 return new ArrayList(); 308 308 } 309 309 … … 369 369 // Currently only handle VCALENDAR for top level. 370 370 if (!"VCALENDAR".equals(cfltr.getName())) { 371 return new Vector();372 } 373 374 Vector filtered = new Vector();371 return new ArrayList(); 372 } 373 374 ArrayList filtered = new ArrayList(); 375 375 Iterator it = nodes.iterator(); 376 376 while (it.hasNext()) { … … 419 419 * and provide conditions for the query. 420 420 * 421 * @param cfs 421 * @param cfs Collection 422 422 * @param globaltr 423 423 * @return EventQuery defining query or null if nothing could be … … 425 425 * @throws WebdavException 426 426 */ 427 private EventQuery buildEventQuery( Vectorcfs,427 private EventQuery buildEventQuery(Collection cfs, 428 428 TimeRange globaltr) throws WebdavException { 429 429 Iterator it = cfs.iterator(); … … 468 468 } 469 469 470 VectorpropFilters = cf.getPropFilters();470 Collection propFilters = cf.getPropFilters(); 471 471 472 472 if (eq.propFilters == null) { … … 484 484 TimeRange trange; 485 485 486 VectorpropFilters;486 Collection propFilters; 487 487 488 488 /* true if we have to postfilter the result obtained via a search trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/filter/PropFilter.java
r2 r365 58 58 import edu.rpi.cct.webdav.servlet.shared.WebdavException; 59 59 60 import java.util.ArrayList; 61 import java.util.Collection; 60 62 import java.util.Iterator; 61 import java.util.Vector;62 63 63 64 import net.fortuna.ical4j.model.Component; … … 81 82 private TextMatch match; 82 83 83 private VectorparamFilters;84 private ArrayList paramFilters; 84 85 85 86 /** Constructor … … 178 179 179 180 /** 180 * @return Vector181 */ 182 public VectorgetParamFilters() {181 * @return Collection 182 */ 183 public Collection getParamFilters() { 183 184 if (paramFilters == null) { 184 paramFilters = new Vector();185 paramFilters = new ArrayList(); 185 186 } 186 187 trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java
r363 r365 1047 1047 } 1048 1048 1049 Collection evs = getEvents(sub, null, start, end, CalFacadeDefs.retrieveRecurExpanded); 1049 Collection evs = getEvents(sub, null, start, end, 1050 CalFacadeDefs.retrieveRecurExpanded); 1050 1051 1051 1052 try { trunk/calendar3/webadmin/src/org/bedework/webadmin/event/PEUpdateEventAction.java
r300 r365 123 123 * guid must be set to null to avoid dup guid. 124 124 */ 125 EventInfo ei = f orm.fetchSvci().getEvent(event.getId());125 EventInfo ei = fetchEvent(event, form); 126 126 BwEvent evcopy = new BwEventObj(); 127 127 ei.getEvent().shallowCopyTo(evcopy); trunk/calendar3/webclient/src/org/bedework/webclient/BwAccessAction.java
r314 r365 137 137 } 138 138 } else { 139 EventInfo ei = svci.getEvent(id);139 EventInfo ei = findEvent(request, form); 140 140 141 141 if (ei == null) { trunk/calendar3/webclient/src/org/bedework/webclient/BwFreeBusyAction.java
r119 r365 56 56 57 57 //import org.bedework.calfacade.BwDateTime; 58 import org.bedework.appcommon.MyCalendarVO; 58 59 import org.bedework.calfacade.BwFreeBusy; 59 60 import org.bedework.calfacade.BwFreeBusyComponent; 60 61 import org.bedework.calfacade.BwUser; 61 62 import org.bedework.calfacade.CalFacadeUtil; 63 import org.bedework.calfacade.ifs.CalTimezones; 62 64 import org.bedework.calsvci.CalSvcI; 63 65 … … 73 75 * <p>Request parameters - all optional:<ul> 74 76 * <li> userid: whose free busy we want - default to current user</li>. 75 * <li> calendar: name of the calendar - default to main calendar</li>. 77 * <li> calendar: name of the calendar - default to subscriptions 78 * specified by user</li>. 76 79 * <li> start: start of period - default to beginning of this week</li>. 77 80 * <li> end: end of period - default to end of this week</li>. 78 * <li> interval: default entire period or a number</li>.81 * <li> interval: default entire period or a multiplier</li>. 79 82 * <li> intunit: default to hours, "minutes", "hours, "days", "weeks" 80 83 * "months"</li>. 81 84 * </ul> 85 * <p>e.g interval=30 and intunit="minutes" means half hour intervals 82 86 * <p>Forwards to:<ul> 83 87 * <li>"doNothing" input error or we want to ignore the request.</li> … … 96 100 public String doAction(HttpServletRequest request, 97 101 BwActionForm form) throws Throwable { 98 String userId = request.getParameter("userid");99 102 BwUser user; 100 103 CalSvcI svci = form.fetchSvci(); 104 String userId = getReqPar(request, "userid"); 101 105 102 106 if (userId != null) { … … 110 114 } 111 115 112 Calendar start = Calendar.getInstance(request.getLocale()); 116 MyCalendarVO today = form.getToday(); 117 MyCalendarVO thisWeek = today.getFirstDayOfThisWeek(); 118 Calendar start = thisWeek.getCalendar(); 113 119 //BwDateTime startDt = form.getEventStartDate().getDateTime(); 114 120 115 Calendar end = Calendar.getInstance(request.getLocale());121 Calendar end = thisWeek.getNextWeek().getCalendar(); 116 122 //BwDateTime endDt = form.getEventEndDate().getDateTime(); 117 123 118 int interval = 1; 119 String intstr = request.getParameter("interval"); 120 121 if (intstr != null) { 122 try { 123 interval = Integer.parseInt(intstr); 124 } catch (Throwable t) { 125 form.getErr().emit("org.bedework.client.error.badinterval"); 126 return "error"; 127 } 128 } 129 124 int interval = getIntReqPar(request, "interval", 1); 130 125 if (interval <= 0) { 131 126 form.getErr().emit("org.bedework.client.error.badinterval"); … … 134 129 135 130 int intunit = Calendar.HOUR; 136 String intunitStr = request.getParameter("intunit");131 String intunitStr = getReqPar(request, "intunit"); 137 132 138 133 if (intunitStr != null) { … … 154 149 155 150 //int maxRequests = 1000; 151 CalTimezones tzs = svci.getTimezones(); 156 152 157 153 BwFreeBusy fb = null; … … 165 161 } 166 162 BwFreeBusy fb1 = svci.getFreeBusy(null, user, 167 CalFacadeUtil.getDateTime(sdt, false, true, 168 svci.getTimezones()), 163 CalFacadeUtil.getDateTime(sdt, false, true, tzs), 169 164 CalFacadeUtil.getDateTime(start.getTime(), false, true, 170 svci.getTimezones()));165 tzs)); 171 166 172 167 if (fb == null) { … … 184 179 } 185 180 186 fb.setEnd( form.getEventEndDate().getDateTime());181 fb.setEnd(CalFacadeUtil.getDateTime(end.getTime(), false, false, tzs)); 187 182 188 183 form.assignFreeBusy(fb); trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java
r362 r365 61 61 import org.bedework.calfacade.BwCalendar; 62 62 import org.bedework.calfacade.BwCategory; 63 import org.bedework.calfacade.BwEvent; 63 64 import org.bedework.calfacade.BwLocation; 64 65 import org.bedework.calfacade.BwSponsor; … … 391 392 } else if (debug) { 392 393 debugMsg("Get event by guid found " + ev.getEvent()); 394 } 395 396 return ev; 397 } 398 399 /** Refetch an event givena copy of that event. Calnedar guid and possibly 400 * recurrecne id must be set. 401 * 402 * @param event BwEvent to refetch 403 * @param form 404 * @return EventInfo or null if not found 405 * @throws Throwable 406 */ 407 protected EventInfo fetchEvent(BwEvent event, 408 BwActionFormBase form) throws Throwable { 409 CalSvcI svci = form.fetchSvci(); 410 EventInfo ev = null; 411 BwSubscription sub = null; 412 413 BwCalendar cal = event.getCalendar(); 414 415 if (cal == null) { 416 // Assume no access 417 form.getErr().emit("org.bedework.client.error.noaccess"); 418 return null; 419 } 420 421 String guid = event.getGuid(); 422 423 if (guid == null) { 424 // Assume no access 425 form.getErr().emit("org.bedework.client.error.noaccess"); 426 return null; 427 } 428 429 String rid = event.getRecurrence().getRecurrenceId(); 430 431 // XXX is this right? 432 int retMethod = CalFacadeDefs.retrieveRecurMaster; 433 Collection evs = svci.getEvent(sub, cal, guid, rid, retMethod); 434 if (debug) { 435 debugMsg("Get event by guid found " + evs.size()); 436 } 437 if (evs.size() == 1) { 438 ev = (EventInfo)evs.iterator().next(); 439 } else { 440 // XXX this needs dealing with 441 } 442 443 if (ev == null) { 444 form.getErr().emit("org.bedework.client.error.nosuchevent", /*eid*/guid); 445 return null; 446 } else if (debug) { 447 debugMsg("Fetch event found " + ev.getEvent()); 393 448 } 394 449
