/**
* Copyright (C) 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jbpm.formModeler.api.model;
import org.jbpm.formModeler.api.model.wrappers.I18nSet;
import java.io.Serializable;
import java.util.*;
/**
* Definition of a Form Field.
*/
public class Field implements Serializable, Comparable<Field> {
private Long id;
private I18nSet title;
private I18nSet label;
private I18nSet errorMessage;
private String fieldName;
private Boolean fieldRequired;
private Boolean readonly;
private Long size;
private String formula;
private Boolean groupWithPrevious;
private String pattern;
private Long maxlength;
private String styleclass;
private String cssStyle;
private String height;
private Long tabindex;
private String accesskey;
private String rangeFormula;
private String labelCSSStyle;
private String labelCSSClass;
private Boolean isHTML;
private Boolean hideContent;
private String defaultValueFormula;
private I18nSet htmlContent;
private FieldType fieldType;
private String bag;
private String inputBinding;
private String outputBinding;
private int position;
//Subform data
private String defaultSubform;
private String previewSubform;
private String tableSubform;
private I18nSet newItemText = new I18nSet();
private I18nSet addItemText = new I18nSet();
private I18nSet cancelItemText = new I18nSet();
private Boolean deleteItems;
private Boolean updateItems;
private Boolean visualizeItem;
private Boolean hideCreateItem;
private Boolean expanded;
private Boolean enableTableEnterData;
//Custom types
private String customFieldType;
private String param1;
private String param2;
private String param3;
private String param4;
private String param5;
private String onChangeScript;
private Boolean verticalAlignment = Boolean.TRUE;
private Form form;
public Field() {
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public Boolean getFieldRequired() {
return fieldRequired;
}
public void setFieldRequired(Boolean fieldRequired) {
this.fieldRequired = fieldRequired;
}
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
public Boolean getReadonly() {
return this.readonly;
}
public void setReadonly(Boolean readonly) {
this.readonly = readonly;
}
public Long getSize() {
return this.size;
}
public void setSize(Long size) {
this.size = size;
}
public Boolean getGroupWithPrevious() {
return groupWithPrevious;
}
public void setGroupWithPrevious(Boolean groupWithPrevious) {
this.groupWithPrevious = groupWithPrevious;
}
public Long getMaxlength() {
return this.maxlength;
}
public void setMaxlength(Long maxlength) {
this.maxlength = maxlength;
}
public String getHeight() {
return height;
}
public void setHeight(String height) {
this.height = height;
}
public String getCssStyle() {
return cssStyle;
}
public void setCssStyle(String cssStyle) {
this.cssStyle = cssStyle;
}
public String getStyleclass() {
return this.styleclass;
}
public void setStyleclass(String styleclass) {
this.styleclass = styleclass;
}
public String getFormula() {
return formula;
}
public void setFormula(String formula) {
this.formula = formula;
}
public String getPattern() {
return pattern;
}
public void setPattern(String pattern) {
this.pattern = pattern;
}
public Long getTabindex() {
return this.tabindex;
}
public void setTabindex(Long tabindex) {
this.tabindex = tabindex;
}
public String getAccesskey() {
return this.accesskey;
}
public void setAccesskey(String accesskey) {
this.accesskey = accesskey;
}
public FieldType getFieldType() {
return this.fieldType;
}
public void setFieldType(FieldType fieldType) {
this.fieldType = fieldType;
}
public String getBag() {
return bag;
}
public void setBag(String bag) {
this.bag = bag;
}
public String getRangeFormula() {
return rangeFormula;
}
public void setRangeFormula(String rangeFormula) {
this.rangeFormula = rangeFormula;
}
public Boolean getIsHTML() {
return isHTML;
}
public void setIsHTML(Boolean HTML) {
isHTML = HTML;
}
public Boolean getHideContent() {
return hideContent;
}
public void setHideContent(Boolean hideContent) {
this.hideContent = hideContent;
}
public String getDefaultValueFormula() {
return defaultValueFormula;
}
public void setDefaultValueFormula(String defaultValueFormula) {
this.defaultValueFormula = defaultValueFormula;
}
//Subform data
public String getDefaultSubform() {
return defaultSubform;
}
public void setDefaultSubform(String defaultSubform) {
this.defaultSubform = defaultSubform;
}
public String getPreviewSubform() {
return previewSubform;
}
public void setPreviewSubform(String previewSubform) {
this.previewSubform = previewSubform;
}
public String getTableSubform() {
return tableSubform;
}
public void setTableSubform(String tableSubform) {
this.tableSubform = tableSubform;
}
public I18nSet getNewItemText() {
return newItemText;
}
public void setNewItemText(I18nSet newItemText) {
this.newItemText = newItemText;
}
public I18nSet getAddItemText() {
return addItemText;
}
public void setAddItemText(I18nSet addItemText) {
this.addItemText = addItemText;
}
public I18nSet getCancelItemText() {
return cancelItemText;
}
public void setCancelItemText(I18nSet cancelItemText) {
this.cancelItemText = cancelItemText;
}
public Boolean getDeleteItems() {
return deleteItems;
}
public void setDeleteItems(Boolean deleteItems) {
this.deleteItems = deleteItems;
}
public Boolean getUpdateItems() {
return updateItems;
}
public void setUpdateItems(Boolean updateItems) {
this.updateItems = updateItems;
}
public Boolean getVisualizeItem() {
return visualizeItem;
}
public void setVisualizeItem(Boolean visualizeItem) {
this.visualizeItem = visualizeItem;
}
public Boolean getHideCreateItem() {
return hideCreateItem;
}
public void setHideCreateItem(Boolean hideCreateItem) {
this.hideCreateItem = hideCreateItem;
}
public Boolean getExpanded() {
return expanded;
}
public void setExpanded(Boolean expanded) {
this.expanded = expanded;
}
public Boolean getEnableTableEnterData() {
return enableTableEnterData;
}
public void setEnableTableEnterData(Boolean enableTableEnterData) {
this.enableTableEnterData = enableTableEnterData;
}
public String getCustomFieldType() {
return customFieldType;
}
public void setCustomFieldType(String customFieldType) {
this.customFieldType = customFieldType;
}
public String getParam1() {
return param1;
}
public void setParam1(String param1) {
this.param1 = param1;
}
public String getParam2() {
return param2;
}
public void setParam2(String param2) {
this.param2 = param2;
}
public String getParam3() {
return param3;
}
public void setParam3(String param3) {
this.param3 = param3;
}
public String getParam4() {
return param4;
}
public void setParam4(String param4) {
this.param4 = param4;
}
public String getParam5() {
return param5;
}
public void setParam5(String param5) {
this.param5 = param5;
}
public String getOnChangeScript() {
return onChangeScript;
}
public void setOnChangeScript(String onChangeScript) {
this.onChangeScript = onChangeScript;
}
public String toString() {
return getId().toString();
}
public boolean equals(Object other) {
if (!(other instanceof Field)) return false;
Field castOther = (Field) other;
return this.getId().equals(castOther.getId());
}
public int hashCode() {
return getId().hashCode();
}
public I18nSet getTitle() {
return title;
}
public void setTitle(I18nSet title) {
this.title = title;
}
public I18nSet getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(I18nSet errorMessage) {
this.errorMessage = errorMessage;
}
public I18nSet getLabel() {
return label;
}
public void setLabel(I18nSet label) {
this.label = label;
}
public String getFieldPattern() {
if ((getPattern() == null || "".equals(getPattern())) && getFieldType() != null)
return getFieldType().getPattern();
else
return getPattern();
}
public String getFieldFormula() {
if ((getFormula() == null || "".equals(getFormula())) && getFieldType() != null)
return getFieldType().getFormula();
else
return getFormula();
}
public String getFieldRangeFormula() {
if ((getRangeFormula() == null || "".equals(getRangeFormula())) && getFieldType() != null)
return getFieldType().getRangeFormula();
else
return getRangeFormula();
}
public String getLabelCSSStyle() {
return labelCSSStyle;
}
public void setLabelCSSStyle(String labelCSSStyle) {
this.labelCSSStyle = labelCSSStyle;
}
public String getLabelCSSClass() {
return labelCSSClass;
}
public void setLabelCSSClass(String labelCSSClass) {
this.labelCSSClass = labelCSSClass;
}
public I18nSet getHtmlContent() {
return htmlContent;
}
public void setHtmlContent(I18nSet htmlContent) {
this.htmlContent = htmlContent;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public Boolean getVerticalAlignment() {
return verticalAlignment;
}
public void setVerticalAlignment(Boolean verticalAlignment) {
this.verticalAlignment = verticalAlignment;
}
public String getInputBinding() {
return inputBinding;
}
public void setInputBinding(String inputBinding) {
this.inputBinding = inputBinding;
}
public String getOutputBinding() {
return outputBinding;
}
public void setOutputBinding(String outputBinding) {
this.outputBinding = outputBinding;
}
public Form getForm() {
return form;
}
public void setForm(Form form) {
this.form = form;
}
public Set getPropertyNames() {
Set names = new TreeSet();
names.add("fieldName");
names.add("fieldRequired");
names.add("groupWithPrevious");
names.add("height");
names.add("labelCSSClass");
names.add("labelCSSStyle");
names.add("label");
names.add("title");
names.add("errorMessage");
names.add("disabled");
names.add("readonly");
names.add("size");
names.add("formula");
names.add("rangeFormula");
names.add("pattern");
names.add("maxlength");
names.add("styleclass");
names.add("cssStyle");
names.add("tabindex");
names.add("accesskey");
names.add("isHTML");
names.add("hideContent");
names.add("defaultValueFormula");
names.add("htmlContent");
names.add("inputBinding");
names.add("outputBinding");
names.add("subformClass");
names.add("defaultSubform");
names.add("creationSubform");
names.add("editionSubform");
names.add("previewSubform");
names.add("tableSubform");
names.add("newItemText");
names.add("addItemText");
names.add("cancelItemText");
names.add("deleteItems");
names.add("updateItems");
names.add("visualizeItem");
names.add("hideCreateItem");
names.add("expanded");
names.add("separator");
names.add("enableTableEnterData");
names.add("customFieldType");
names.add("param1");
names.add("param2");
names.add("param3");
names.add("param4");
names.add("param5");
names.add("onChangeScript");
names.add("verticalAlignment");
return names;
}
public Map asMap() {
Map value = new HashMap();
value.put("fieldName", getFieldName());
value.put("fieldRequired", getFieldRequired());
value.put("groupWithPrevious", getGroupWithPrevious());
value.put("height", getHeight());
value.put("labelCSSClass", getLabelCSSClass());
value.put("labelCSSStyle", getLabelCSSStyle());
value.put("label", getLabel());
value.put("errorMessage", getErrorMessage());
value.put("title", getTitle());
value.put("readonly", getReadonly());
value.put("size", getSize());
value.put("formula", getFormula());
value.put("rangeFormula", getRangeFormula());
value.put("pattern", getPattern());
value.put("maxlength", getMaxlength());
value.put("styleclass", getStyleclass());
value.put("cssStyle", getCssStyle());
value.put("tabindex", getTabindex());
value.put("accesskey", getAccesskey());
value.put("isHTML", getIsHTML());
value.put("hideContent", getHideContent());
value.put("defaultValueFormula", getDefaultValueFormula());
value.put("htmlContent", getHtmlContent());
value.put("inputBinding", getInputBinding());
value.put("outputBinding", getOutputBinding());
//SubForms
value.put("defaultSubform",getDefaultSubform());
value.put("previewSubform",getPreviewSubform());
value.put("tableSubform",getTableSubform());
value.put("newItemText",getNewItemText());
value.put("addItemText",getAddItemText());
value.put("cancelItemText",getCancelItemText());
value.put("deleteItems",getDeleteItems());
value.put("updateItems",getUpdateItems());
value.put("visualizeItem",getVisualizeItem());
value.put("hideCreateItem",getHideCreateItem());
value.put("expanded",getExpanded());
value.put("enableTableEnterData",getEnableTableEnterData());
value.put("customFieldType", getCustomFieldType());
value.put("param1", getParam1());
value.put("param2", getParam2());
value.put("param3", getParam3());
value.put("param4", getParam4());
value.put("param5", getParam5());
value.put("onChangeScript", onChangeScript);
value.put("verticalAlignment", verticalAlignment);
return value;
}
public int compareTo(Field o) {
return new Integer(getPosition()).compareTo(o.getPosition());
}
public static class Comparator implements java.util.Comparator {
public int compare(Object o1, Object o2) {
Field f1 = (Field) o1;
Field f2 = (Field) o2;
int pos1 = f1.getPosition();
int pos2 = f2.getPosition();
if (pos1 != pos2)
return f1.getPosition() - f2.getPosition();
else
return (int) (f1.getId().longValue() - f2.getId().longValue());
}
}
}