package com.primeton.eos.fbframe.fbmetadata.metadata;
import java.util.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.primeton.tp.common.xml.XmlUtil;
/**
*@author wkq
* @version 1.0
* @date 2006-5-2
* @class_displayName FieldBean
* 这个类用于维护实体字段的元数据信息
*/
public class FieldBean implements Comparable {
public FieldBean()
{
}
/**
* 把字段元数据定义转换为XML节点对象
* @param e
*/
public void toXmlNode(Element e)
{
Document doc = e.getOwnerDocument();
Node n = doc.createElement("FIELDNAME");
XmlUtil.setNodeValue(n, FIELDNAME);
e.appendChild(n);
n = doc.createElement("ENTITYNAME");
XmlUtil.setNodeValue(n, ENTITYNAME);
e.appendChild(n);
n = doc.createElement("FK_TABLENAME");
XmlUtil.setNodeValue(n, FK_TABLENAME);
e.appendChild(n);
n = doc.createElement("FK_COLUMNNAME");
XmlUtil.setNodeValue(n, FK_COLUMNNAME);
e.appendChild(n);
n = doc.createElement("FK_FIELDDESC");
XmlUtil.setNodeValue(n, FK_FIELDDESC);
e.appendChild(n);
n = doc.createElement("COLUMNNAME");
XmlUtil.setNodeValue(n, COLUMNNAME);
e.appendChild(n);
n = doc.createElement("FIELDDESC");
XmlUtil.setNodeValue(n, FIELDDESC);
e.appendChild(n);
n = doc.createElement("DISPLAYORDER");
XmlUtil.setNodeValue(n, String.valueOf(DISPLAYORDER));
e.appendChild(n);
n = doc.createElement("FIELDTYPE");
XmlUtil.setNodeValue(n, FIELDTYPE);
e.appendChild(n);
n = doc.createElement("REFTYPE");
XmlUtil.setNodeValue(n, REFTYPE);
e.appendChild(n);
n = doc.createElement("CHECKBOXVALUE");
XmlUtil.setNodeValue(n, CHECKBOXVALUE);
e.appendChild(n);
n = doc.createElement("DOCLISTCODE");
XmlUtil.setNodeValue(n, DOCLISTCODE);
e.appendChild(n);
n = doc.createElement("DISPLAYFORMAT");
XmlUtil.setNodeValue(n, DISPLAYFORMAT);
e.appendChild(n);
n = doc.createElement("WIDTH");
XmlUtil.setNodeValue(n, String.valueOf(WIDTH));
e.appendChild(n);
n = doc.createElement("DEFAULTVALUE");
XmlUtil.setNodeValue(n, DEFAULTVALUE);
e.appendChild(n);
n = doc.createElement("MINVALUE");
if (MINVALUE != null)
XmlUtil.setNodeValue(n, MINVALUE.toString());
e.appendChild(n);
n = doc.createElement("MAXVALUE");
if (MAXVALUE != null)
XmlUtil.setNodeValue(n, MAXVALUE.toString());
e.appendChild(n);
n = doc.createElement("LENGTH");
XmlUtil.setNodeValue(n, String.valueOf(LENGTH));
e.appendChild(n);
n = doc.createElement("PRECISION");
XmlUtil.setNodeValue(n, String.valueOf(PRECISION));
e.appendChild(n);
n = doc.createElement("VALIDATETYPE");
XmlUtil.setNodeValue(n, VALIDATETYPE);
e.appendChild(n);
n = doc.createElement("ISMODIFY");
XmlUtil.setNodeValue(n, ISMODIFY);
e.appendChild(n);
n = doc.createElement("ISDISPLAY");
XmlUtil.setNodeValue(n, ISDISPLAY);
e.appendChild(n);
n = doc.createElement("ISPK");
XmlUtil.setNodeValue(n, ISPK);
e.appendChild(n);
n = doc.createElement("ISAUTOKEY");
XmlUtil.setNodeValue(n, ISAUTOKEY);
e.appendChild(n);
n = doc.createElement("ISLOCK");
XmlUtil.setNodeValue(n, ISLOCK);
e.appendChild(n);
n = doc.createElement("FK_INPUTURL");
XmlUtil.setNodeValue(n, FK_INPUTURL);
e.appendChild(n);
}
String FIELDNAME;
String ENTITYNAME;
String FK_TABLENAME;
String FK_COLUMNNAME;
String FK_FIELDDESC;
String FK_INPUTURL;
String DESC_FIELDNAME;
String COLUMNNAME;
String FIELDDESC;
int DISPLAYORDER;
String FIELDTYPE;
String REFTYPE;
String CHECKBOXVALUE;
String DOCLISTCODE;
String DISPLAYFORMAT;
int WIDTH;
String DEFAULTVALUE;
String MINVALUE;
String MAXVALUE;
int LENGTH;
int PRECISION;
String VALIDATETYPE;
String ISMODIFY;
String ISDISPLAY;
String ISINPUT;
String ISPK;
String ISAUTOKEY;
String ISLOCK;
FieldBean descField = null;
boolean isDesc = false;
public String getDataCellEditor() {
return getDataCellEditor(null, false);
}
/**
* 根据元数据定义输出字段对应的编辑器datacell的html文本,产生的数据形如:
* <td eos_displayname="生日" width="80" name="BIRTH" eos_isnull="true" format="yyyyMMdd" editor="calendarEditor"></td>
* <td eos_displayname="性别" width="80" name="SEX" eos_isnull="true" editor="CUST_SEX_select"></td>
* <td eos_displayname="地址" width="80" eos_maxsize="100" name="ADDRESS" eos_isnull="true" editor="textEditor"></td>
* 0 字符串
* 1 整数
* 2 小数
* 3 日期
* 4 日期时间
* 5 CHECKBOX
* 6 引用
* @param session sessionEntity
* @param isLock 是否为固定字段通常为表格最左边的标识列如编号,姓名等
* @return
*/
public String getDataCellEditor(Node session, boolean isLock)
{
StringBuffer buff = new StringBuffer("");
String lock = "";
if (isLock)
lock = "background:buttonface; border-bottom:1px solid buttonshadow; LEFT: expression(this.parentElement.offsetParent.parentElement.scrollLeft); POSITION: relative;";
int type = 0;
if (FIELDTYPE != null && !FIELDTYPE.equals(""))
type = Integer.parseInt(FIELDTYPE.trim());
buff.append("<td nowrap style=\"white-space: nowrap;").append(lock).append("\" name=\"").append(FIELDNAME).append("\"");
buff.append(" eos_displayname=\"").append(FIELDDESC).append("\"");
buff.append(" width=\"").append(WIDTH).append("\"");
if (notNull())
buff.append(" eos_isnull=\"false\"");
else
buff.append(" eos_isnull=\"true\"");
switch (type) {
case 3:
case 4:
buff.append(" editor=\"calendarEditor\"");
buff.append(" format=\"").append(DISPLAYFORMAT).append("\"");
break;
case 1:
buff.append(" editor=\"textEditor\"");
if (MAXVALUE == null || MAXVALUE.equals("") || MINVALUE == null || MINVALUE.equals(""))
buff.append(" eos_datatype=\"integer\"");
else {
buff.append(" eos_datatype=\"interval(");
if (MINVALUE == null || MINVALUE.equals(""))
buff.append("-");
else
buff.append(MINVALUE);
buff.append(",");
if (MAXVALUE == null || MAXVALUE.equals(""))
buff.append("+");
else
buff.append(MAXVALUE);
buff.append(")\"");
}
break;
case 5:
buff.append(" editor=\"checkBoxEditor(").append(CHECKBOXVALUE).append(")\"");
break;
case 2:
buff.append(" editor=\"textEditor\"");
buff.append(" eos_datatype=\"double(").append(LENGTH).append(",").append(PRECISION).append(")\"");
break;
case 6:
if (REFTYPE != null && REFTYPE.equals("0")) { // 引用类型是业务字典
buff.append(" editor=\"").append(FIELDNAME).append("_dict_select\"");
break;
}
default:
buff.append(" editor=\"textEditor\"");
buff.append(" eos_datatype=\"").append(VALIDATETYPE).append("\"");
buff.append(" eos_maxsize=\"").append(LENGTH).append("\"");
break;
}
if (DEFAULTVALUE != null && !DEFAULTVALUE.equals(""))
buff.append(" defaultValue=\"").append(DEFAULTVALUE).append("\"");
if (session != null) {
if (!isModify(session))
buff.append(" modify=\"false\"");
} else {
if (!isModify())
buff.append(" modify=\"false\"");
}
buff.append("></td>\n");
return buff.toString();
}
/**
* 输出字段对应的datacell的html文本
* @param session
* @param isLock
* @return
*/
public String getDataCellTableCell(Node session, boolean isLock)
{
StringBuffer td = new StringBuffer("");
String lock = "";
if (isLock)
lock = "background:buttonface; border-bottom:1px solid buttonshadow; LEFT: expression(this.parentElement.offsetParent.parentElement.scrollLeft); POSITION: relative;";
if (isFK()) { // 如果是外键引用的字段
if (hasDescField()) { //表中包含了当前字段的描述字段
td.append(getDescField().getDataCellEditor(session, isLock));
if (isModify(session)
qikunpengandbianyuan
- 粉丝: 0
- 资源: 1
最新资源
- 毕设和企业适用springboot社交应用平台类及金融数据分析平台源码+论文+视频.zip
- 毕设和企业适用springboot社交应用平台类及交通信息平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及用户数据分析平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及用户体验优化平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及用户行为分析平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及运动管理平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及智能化系统源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及社交媒体平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及人工智能客服平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及社交游戏平台源码+论文+视频.zip
- 毕设和企业适用springboot社交应用平台类及跨平台销售系统源码+论文+视频.zip
- 毕设和企业适用springboot社交应用平台类及民生服务平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及生活服务平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及食品配送管理平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及社区服务平台源码+论文+视频.zip
- 毕设和企业适用springboot社交应用平台类及无人驾驶系统源码+论文+视频.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论3