package com.fdar.apress.s2.actions.event;
import com.opensymphony.xwork2.Preparable;
import com.opensymphony.xwork2.validator.annotations.RequiredFieldValidator;
import com.opensymphony.xwork2.validator.annotations.CustomValidator;
import com.opensymphony.xwork2.validator.annotations.Validation;
import com.opensymphony.xwork2.validator.annotations.VisitorFieldValidator;
import com.fdar.apress.s2.domain.Event;
import com.fdar.apress.s2.domain.Progress;
import com.fdar.apress.s2.util.TimeUtil;
import java.util.Calendar;
import java.util.Date;
import java.text.DateFormat;
import org.apache.struts2.config.ParentPackage;
import org.apache.struts2.config.Result;
import org.apache.struts2.dispatcher.ServletActionRedirectResult;
@ParentPackage("enterEvent")
@Result(type= ServletActionRedirectResult.class,value="selectLocation",params={"method","input"})
@Validation
public class EnterEventDetailsAction extends BaseEventAction implements Preparable {
private Date partialStartDate;
private String patialStartTime;
private String partialVotingStartTime;
public void prepare() throws Exception {
event = new Event();
event.setStatus(Progress.NOT_STARTED);
event.setLastUpdateTime( Calendar.getInstance().getTime() );
}
public Date getPartialStartDate() {
return partialStartDate;
}
@RequiredFieldValidator(message="Validation Error", key="validate.notEmpty")
public void setPartialStartDate(Date partialStartDate) {
this.partialStartDate = partialStartDate;
}
public String getPatialStartTime() {
return patialStartTime;
}
@CustomValidator(type ="timeValidator", key="validate.timeOfDay")
public void setPatialStartTime(String patialStartTime) {
this.patialStartTime = patialStartTime;
}
public String getPartialVotingStartTime() {
return partialVotingStartTime;
}
@CustomValidator(type ="timeValidator", key="validate.timeOfDay")
public void setPartialVotingStartTime(String partialVotingStartTime) {
this.partialVotingStartTime = partialVotingStartTime;
}
@VisitorFieldValidator(message="Default message", fieldName="model", shortCircuit=false, appendPrefix=false)
public String execute() throws Exception {
Calendar cal = Calendar.getInstance();
cal.setTime(partialStartDate);
TimeUtil timeUtil = new TimeUtil(patialStartTime);
event.setStartTime( timeUtil.resolveDate( partialStartDate, event.getTimeZoneOffset() ) );
cal = Calendar.getInstance();
cal.setTime(partialStartDate);
timeUtil = new TimeUtil(partialVotingStartTime);
event.setVotingStartTime( timeUtil.resolveDate( partialStartDate, event.getTimeZoneOffset() ) );
return SUCCESS;
}
}