1 123 package com.ivata.groupware.business.calendar.struts; 124 125 import java.util.HashSet ; 126 import java.util.Iterator ; 127 import java.util.List ; 128 import java.util.Set ; 129 import java.util.Vector ; 130 131 import javax.servlet.http.HttpServletRequest ; 132 import javax.servlet.http.HttpServletResponse ; 133 import javax.servlet.http.HttpSession ; 134 135 import org.apache.struts.action.ActionErrors; 136 import org.apache.struts.action.ActionForm; 137 import org.apache.struts.action.ActionMapping; 138 139 import com.ivata.groupware.admin.security.server.SecuritySession; 140 import com.ivata.groupware.business.addressbook.person.PersonDO; 141 import com.ivata.groupware.business.calendar.Calendar; 142 import com.ivata.groupware.business.calendar.event.EventDO; 143 import com.ivata.groupware.business.calendar.event.meeting.MeetingDO; 144 import com.ivata.groupware.business.calendar.event.publicholiday.PublicHolidayDO; 145 import com.ivata.groupware.container.PicoContainerFactory; 146 import com.ivata.groupware.util.SettingDateFormatter; 147 import com.ivata.mask.MaskFactory; 148 import com.ivata.mask.util.CollectionHandling; 149 import com.ivata.mask.util.SystemException; 150 import com.ivata.mask.web.format.DateFormatterConstants; 151 import com.ivata.mask.web.struts.MaskAction; 152 import com.ivata.mask.web.struts.MaskAuthenticator; 153 154 155 165 public class FindEventAction extends MaskAction { 166 private Calendar calendar; 167 private SettingDateFormatter dateFormatter; 168 178 public FindEventAction(Calendar calendar, SettingDateFormatter dateFormatter, 179 MaskFactory maskFactory, MaskAuthenticator authenticator) { 180 super(maskFactory, authenticator); 181 this.calendar = calendar; 182 this.dateFormatter = dateFormatter; 183 } 184 185 208 public String execute(final ActionMapping mapping, 209 final ActionErrors errors, 210 final ActionForm form, 211 final HttpServletRequest request, 212 final HttpServletResponse response, 213 final HttpSession session) throws SystemException { 214 SecuritySession securitySession = (SecuritySession) session.getAttribute("securitySession"); 216 EventForm eventForm = (EventForm) 217 PicoContainerFactory.getInstance().instantiateOrOverride( 218 securitySession.getContainer(), 219 EventForm.class); 220 221 eventForm.reset(mapping, request); 222 String id = request.getParameter("id"); 223 224 if (id == null) { 225 throw new SystemException("ERROR in FindEventAction: id is null"); 226 } 227 EventDO event = calendar.findEventByPrimaryKey(securitySession, id); 228 if (event instanceof MeetingDO) { 234 MeetingDO meeting = (MeetingDO) event; 235 Set attendees = meeting.getAttendees(); 236 if (attendees == null) { 237 meeting.setAttendees(attendees = new HashSet ()); 238 } 239 List attendeeIds = new Vector (attendees.size()); 240 for (Iterator i = attendees.iterator(); i.hasNext(); ) { 242 PersonDO attendee = (PersonDO) i.next(); 243 attendeeIds.add(attendee.getId().toString()); 244 } 245 eventForm.setAttendees(CollectionHandling.convertToLines(attendeeIds, ';')); 246 } 247 dateFormatter.setDateTimeText("{0}"); 248 dateFormatter.setDateFormat(DateFormatterConstants.DATE_INPUT_DISPLAY); 250 dateFormatter.setTimeFormat(DateFormatterConstants.TIME_INPUT_DISPLAY); 251 eventForm.setStartDate(dateFormatter.format(event.getStart().getTime())); 252 if (event.getFinish() == null) { 253 eventForm.setFinishDate(""); 254 } else { 255 eventForm.setFinishDate(dateFormatter.format(event.getFinish().getTime())); 256 } 257 dateFormatter.setDateTimeText("{1}"); 258 eventForm.setStartTime(dateFormatter.format(event.getStart().getTime())); 259 if (event.getFinish() == null) { 260 eventForm.setFinishTime(""); 261 } else { 262 eventForm.setFinishTime(dateFormatter.format(event.getFinish().getTime())); 263 } 264 265 if (event instanceof MeetingDO) { 269 eventForm.setTitleKey("event.title.amend.meeting"); 270 eventForm.setHelpKey("calendar.meeting.event"); 271 } else if (event instanceof PublicHolidayDO) { 272 eventForm.setTitleKey("event.title.amend.publicHoliday"); 273 eventForm.setHelpKey("calendar.publicHoliday"); 274 } else { 275 eventForm.setHelpKey("calendar.event"); 277 eventForm.setTitleKey("event.title.amend"); 278 } 279 eventForm.setEvent(event); 280 session.setAttribute("calendarEventForm", eventForm); 281 return "calendarEvent"; 282 } 283 } 284 | Popular Tags |