package pl.net.bluesoft.rnd.processtool.ui.basewidgets.xml.jaxb;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
import com.vaadin.data.Property;
import com.vaadin.ui.Field;
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.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@XmlAccessorType(XmlAccessType.NONE)
@XmlType
@XmlTransient
public abstract class WidgetElement implements Serializable {
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.width", descriptionKey = "any.width.description")
protected String width;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.height", descriptionKey = "any.height.description")
protected String height;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.fullSize", descriptionKey = "any.fullSize.description")
protected Boolean fullSize;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.undefinedSize", descriptionKey = "any.undefinedSize.description")
protected Boolean undefinedSize;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.bind", descriptionKey = "any.bind.description")
protected String bind;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.provider", descriptionKey = "any.provider.description")
protected String provider;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.dict", descriptionKey = "any.dict.description")
protected String dict;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.readonly", descriptionKey = "any.readonly.description")
protected Boolean readonly;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.caption", descriptionKey = "any.caption.description")
protected String caption;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.style", descriptionKey = "any.style.description")
protected String style;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.attributeClass", descriptionKey = "any.attributeClass.description")
protected String attributeClass;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.id", descriptionKey = "any.id.description")
protected String id;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.visible", descriptionKey = "any.visible.description")
protected Boolean visible = true;
@XmlAttribute
@XStreamAsAttribute
@AperteDoc(humanNameKey = "any.dynamicValidation", descriptionKey = "any.dynamicValidation.description")
protected Boolean dynamicValidation;
@XmlTransient
@XStreamOmitField
protected WidgetElement parent;
@XmlTransient
@XStreamOmitField
protected Object value;
@XmlAttribute
@XStreamAsAttribute
protected Boolean global;
@XmlAttribute
@XStreamAsAttribute
protected String validFor;
public String getValidFor() {
return validFor;
}
public void setValidFor(String validFor) {
this.validFor = validFor;
}
public Boolean getGlobal() {
return global;
}
public void setGlobal(Boolean global) {
this.global = global;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public Boolean getVisible() {
return visible;
}
public void setVisible(Boolean visible) {
this.visible = visible;
}
public WidgetElement getParent() {
return parent;
}
public Boolean getDynamicValidation() {
return dynamicValidation;
}
public void setDynamicValidation(Boolean dynamicValidation) {
this.dynamicValidation = dynamicValidation;
}
public void setParent(WidgetElement parent) {
this.parent = parent;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAttributeClass() {
return attributeClass;
}
public String getInheritedAttributeClass() {
return !StringUtil.hasText(attributeClass) && parent != null ? parent.getInheritedAttributeClass() : attributeClass;
}
public void setAttributeClass(String attributeClass) {
this.attributeClass = attributeClass;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
public String getWidth() {
return width;
}
public void setWidth(String width) {
this.width = width;
}
public String getHeight() {
return height;
}
public void setHeight(String height) {
this.height = height;
}
public Boolean getFullSize() {
return fullSize;
}
public void setFullSize(Boolean fullSize) {
this.fullSize = fullSize;
}
public Boolean getUndefinedSize() {
return undefinedSize;
}
public void setUndefinedSize(Boolean undefinedSize) {
this.undefinedSize = undefinedSize;
}
public String getBind() {
return bind;
}
public void setBind(String bind) {
this.bind = bind;
}
public String getProvider() {
return provider;
}
public void setProvider(String provider) {
this.provider = provider;
}
public String getDict() {
return dict;
}
public void setDict(String dict) {
this.dict = dict;
}
public Boolean getReadonly() {
return readonly;
}
public void setReadonly(Boolean readonly) {
this.readonly = readonly;
}
public String getCaption() {
return caption;
}
public void setCaption(String caption) {
this.caption = caption;
}
public List<XmlValidationError> validate() {
return validateElement();
}
public List<XmlValidationError> validateElement() {
return new ArrayList<XmlValidationError>();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof WidgetElement)) return false;
WidgetElement that = (WidgetElement) o;
if (id != null && id.equals(that.id)) return true;
return false;
}
@Override
public int hashCode() {
return 0;
}
}