package cn.autoform.web.formula.info; import java.util.List; import java.util.Map; import cn.autoform.bean.form.CpnType; import cn.autoform.db.entity.form.FormCpnInfo; /** * 表单控件 * @author WangYX * */ public interface FormCpn extends Map, Cloneable{ /** * 表单 (in,out) */ String FORM_KEY = "form"; /** * 表单子控件 (in) */ String CHILD_CPN = "child"; /** * 表单子控件值 (in) */ String CHILD_CPN_VAL= "childCpnVal"; /** * 触发事件 */ String FORMULA_KEY = "formula"; /** * 获得表单别名 * @return */ String getFieldId(); /** * 更新表单别名 * @param fieldId */ void setFieldId(String fieldId); /** * 获得属性 * Attribute * 获得子控件 * FormCpn */ @Override Object get(Object key); /** * 初始化控件 * @param formFieldEntity */ void init(FormCpnInfo formCpnInfo); /** * 获得属性 * @param key * @param row * @return */ default Object get(Object key, Integer row){ return get(key); } /** * 添加属性 * key:Attribute * 添加子控件 * key:FormCpn * 添加表单 * key:Form */ @Override Object put(Object key, Object value); /** * 添加属性 * @param key * @param value * @param row * @return */ default Object put(Object key, Object value, Integer row){ return put(key, value); } /** * 添加表单控件监听 */ void setFormCpnListener(FormCpnListener formCpnListener); /** * 获得表单控件监听器 * @return */ FormCpnListener getFormCpnListener(); /** * 获得控件类型 * @return */ CpnType getCpnType(); /** * 获得父控件 * @return */ FormCpn getParentCpn(); /** * 获得在子表单中的行号 * @return */ Integer getIndex(); /** * 获得控件公式 * @return */ List getFormulas(); /** * 更新控件公式 * @param formulas */ void setFormulas(List formulas); /** * 获得控件值 * @return */ Object getValue(); }