argos/dmp-backend/roadmap/src/main/java/eu/eudat/migration/entities/QuestionFormat.java

135 lines
3.1 KiB
Java

package eu.eudat.migration.entities;
import eu.eudat.models.data.components.commons.ViewStyle;
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "question_formats")
public class QuestionFormat {
@Id
private Long id;
private String title;
private String description;
@Column(name = "created_at")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;
@Column(name = "updated_at")
@Temporal(TemporalType.TIMESTAMP)
private Date updatedAt;
@Column(name = "option_based")
private Boolean optionBased;
private FormatType formattype;
public enum FormatType {
TEXTAREA,
TEXT_FIELD,
RADIOBUTTON,
CHECKBOX,
DROPDOWN,
MULTI_SELECT,
DATE,
RDA_METADATA
}
@Override
public String toString() {
return "QuestionFormat{" +
"id=" + id +
", title='" + title + '\'' +
", description='" + description + '\'' +
", createdAt=" + createdAt +
", updatedAt=" + updatedAt +
", optionBased=" + optionBased +
", formattype=" + formattype +
'}';
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Boolean getOptionBased() {
return optionBased;
}
public void setOptionBased(Boolean optionBased) {
this.optionBased = optionBased;
}
public FormatType getFormattype() {
return formattype;
}
public void setFormattype(FormatType formattype) {
this.formattype = formattype;
}
public ViewStyle buildViewStyle() {
ViewStyle viewStyle = new ViewStyle();
viewStyle.setCssClass("");
switch (formattype) {
case TEXT_FIELD:
viewStyle.setRenderStyle("freetext");
break;
case TEXTAREA:
viewStyle.setRenderStyle("richTextarea");
break;
case CHECKBOX:
viewStyle.setRenderStyle("checkBox");
break;
case RADIOBUTTON:
viewStyle.setRenderStyle("radiobox");
break;
case DATE:
viewStyle.setRenderStyle("datePicker");
break;
case DROPDOWN:
case MULTI_SELECT:
viewStyle.setRenderStyle("combobox");
break;
default:
break;
}
return viewStyle;
}
}