package pl.net.bluesoft.rnd.processtool.ui.basewidgets.xml.jaxb;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import pl.net.bluesoft.rnd.processtool.ui.basewidgets.editor.RequiredAttribute;
import pl.net.bluesoft.rnd.processtool.ui.basewidgets.xml.XmlConstants;
import pl.net.bluesoft.rnd.processtool.ui.basewidgets.xml.validation.XmlValidationError;
import pl.net.bluesoft.rnd.processtool.ui.widgets.annotations.AperteDoc;
import pl.net.bluesoft.util.lang.StringUtil;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import java.util.ArrayList;
import java.util.List;
@XmlAccessorType(XmlAccessType.FIELD)
//@XmlRootElement(name = "date")
@XStreamAlias("date")
public class DateWidgetElement extends WidgetElement {
@XmlAttribute
@XStreamAsAttribute
@RequiredAttribute
@AperteDoc(humanNameKey = "date.format", descriptionKey = "date.format.description")
private String format;
@XmlAttribute(name = "not-before")
@XStreamAsAttribute
@XStreamAlias("not-before")
@AperteDoc(humanNameKey = "date.notBefore", descriptionKey = "date.notBefore.description")
private String notBefore;
@XmlAttribute(name = "not-after")
@XStreamAsAttribute
@XStreamAlias("not-after")
@AperteDoc(humanNameKey = "date.notAfter", descriptionKey = "date.notAfter.description")
private String notAfter;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "date.showMinutes", descriptionKey = "date.showMinutes.description")
private Boolean showMinutes;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "date.discludeNotBefore", descriptionKey = "date.discludeNotBefore.description")
private Boolean discludeNotBefore;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "date.discludeNotAfter", descriptionKey = "date.discludeNotAfter.description")
private Boolean discludeNotAfter;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.required", descriptionKey = "any.required.description")
private Boolean required;
public Boolean getShowMinutes() {
return showMinutes;
}
public void setShowMinutes(Boolean showMinutes) {
this.showMinutes = showMinutes;
}
public Boolean getDiscludeNotAfter() {
return discludeNotAfter;
}
public void setDiscludeNotAfter(Boolean discludeNotAfter) {
this.discludeNotAfter = discludeNotAfter;
}
public Boolean getDiscludeNotBefore() {
return discludeNotBefore;
}
public void setDiscludeNotBefore(Boolean discludeNotBefore) {
this.discludeNotBefore = discludeNotBefore;
}
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
public String getNotBefore() {
return notBefore;
}
public void setNotBefore(String notBefore) {
this.notBefore = notBefore;
}
public String getNotAfter() {
return notAfter;
}
public void setNotAfter(String notAfter) {
this.notAfter = notAfter;
}
public Boolean getRequired() {
return required;
}
public void setRequired(Boolean required) {
this.required = required;
}
@Override
public List<XmlValidationError> validateElement() {
List<XmlValidationError> errors = new ArrayList<XmlValidationError>();
if (!StringUtil.hasText(format)) {
errors.add(new XmlValidationError("date", "format", XmlConstants.XML_TAG_EMPTY));
}
return errors;
}
}