package api;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.util.ArrayList;
import com.fr.base.Formula;
import com.fr.base.IconManager;
import com.fr.base.Parameter;
import com.fr.base.background.ColorBackground;
import com.fr.base.mobile.FileUploadModeState;
import com.fr.base.mobile.TextInputMode;
import com.fr.data.ClassSubmitJob;
import com.fr.data.condition.CommonCondition;
import com.fr.data.core.Compare;
import com.fr.data.core.db.dml.Table;
import com.fr.data.impl.CustomDictionary;
import com.fr.data.impl.DBTableData;
import com.fr.data.impl.DatabaseDictionary;
import com.fr.data.impl.FormulaDictionary;
import com.fr.data.impl.NameDatabaseConnection;
import com.fr.data.impl.NameTableData;
import com.fr.data.impl.RecursionTableData;
import com.fr.data.impl.TableDataDictionary;
import com.fr.data.impl.TreeNodeAttr;
import com.fr.design.form.layout.FRHorizontalLayout;
import com.fr.form.main.parameter.FormParameterUI;
import com.fr.form.parameter.FormSubmitButton;
import com.fr.form.ui.CheckBox;
import com.fr.form.ui.CheckBoxGroup;
import com.fr.form.ui.ComboBox;
import com.fr.form.ui.ComboCheckBox;
import com.fr.form.ui.DateEditor;
import com.fr.form.ui.FileEditor;
import com.fr.form.ui.FreeButton;
import com.fr.form.ui.IframeEditor;
import com.fr.form.ui.ListEditor;
import com.fr.form.ui.MultiFileEditor;
import com.fr.form.ui.NumberEditor;
import com.fr.form.ui.Password;
import com.fr.form.ui.RadioGroup;
import com.fr.form.ui.TextArea;
import com.fr.form.ui.TextEditor;
import com.fr.form.ui.TreeComboBoxEditor;
import com.fr.form.ui.TreeEditor;
import com.fr.form.ui.Widget;
import com.fr.form.ui.container.WAbsoluteLayout;
import com.fr.form.ui.container.WParameterLayout;
import com.fr.form.ui.mobile.impl.DefaultMobileParameterStyle;
import com.fr.form.ui.reg.CustomReg;
import com.fr.form.ui.tree.LayerConfig;
import com.fr.form.ui.tree.LayerDependence;
import com.fr.io.TemplateWorkBookIO;
import com.fr.js.Commit2DBJavaScript;
import com.fr.js.EmailJavaScript;
import com.fr.js.JavaScriptImpl;
import com.fr.main.impl.WorkBook;
import com.fr.main.parameter.ReportParameterAttr;
import com.fr.report.cell.DefaultTemplateCellElement;
import com.fr.report.cell.cellattr.CellExpandAttr;
import com.fr.report.web.button.form.DefaultListener;
import com.fr.report.web.button.form.TreeNodeToggleButton;
import com.fr.report.web.button.write.AppendRowButton;
import com.fr.report.web.button.write.DeleteRowButton;
import com.fr.report.worksheet.WorkSheet;
import com.fr.stable.ColumnRow;
import com.fr.stable.ColumnRowGroup;
import com.fr.stable.ListMap;
import com.fr.write.DBManipulation;
import com.fr.write.DMLConfigJob;
import com.fr.write.NameSubmitJob;
import com.fr.write.config.ColumnConfig;
import com.fr.write.config.IntelliDMLConfig;
import java.util.Arrays;
import java.util.TreeMap;
/**
* 控件
*
* @author Administrator
*/
public class CellWidget {
public static void main(String[] args) {
try {
ServerConnector.remote();
WorkBook workbook = new WorkBook();
workbook.putTableData("ds1",
new DBTableData(new NameDatabaseConnection("FRDemo"), "select * from department"));
RecursionTableData treeDS = new RecursionTableData();
treeDS.setOriginalTableDataName("ds1");
treeDS.setMarkFieldName("did");
treeDS.setParentmarkFieldName("fid");
workbook.putTableData("Tree1", treeDS);
WorkSheet sheet = new WorkSheet();
int row = 0;
DefaultTemplateCellElement cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getTextEditor());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getTextArea());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getNumberEditor());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getPassword());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row);
cell.setWidget(getFreeButton());
CellExpandAttr expand = new CellExpandAttr();
expand.setUpParentDefault(false);
// 上父格折叠一片,左父格折叠一个
expand.setUpParentColumnRow(ColumnRow.valueOf(4, row));
cell.setCellExpandAttr(expand);
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(1, row);
cell.setWidget(getCustomButton());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(2, row);
cell.setWidget(getAppendRowButton());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(3, row);
cell.setWidget(getDeleteRowButton());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(4, row);
cell.setWidget(getTreeNodeToggleButton());
sheet.addCellElement(cell);
expand = new CellExpandAttr();
expand.setDirection((byte) 1);
cell.setCellExpandAttr(expand);
cell = new DefaultTemplateCellElement(5, row);
cell.setWidget(getFormSubmitButton());
sheet.addCellElement(cell);
row ++;
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getCheckBox());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getRadioGroup());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getCheckBox());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getComboBox());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getComboCheckBox());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getDateEditor());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getMultiFileEditor());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getListEditor());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getIframeEditor());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++);
cell.setWidget(getTreeComboBoxEditor());
sheet.addCellElement(cell);
cell = new DefaultTemplateCellElement(0, row ++, 4, 8, "");
cell.setWidget(getTreeEditor());
sheet.addCellElement(cell);
workbook.addReport(sheet);
parameter(workbook);
TemplateWorkBookIO.writeTemplateWorkBook(workbook, "控件.cpt");
} catch (Exception ex) {
ex.printStackTrace();
}
ServerConnector.disconnect();
}
/**
* 参数面板
*
* @param workbook
*/
public static void parameter(WorkBook workbook) {
ReportParameterAttr p = new ReportParameterAttr();
FormParameterUI ui = new FormParameterUI();
WParameterLayout layout = new WParameterLayout();
ui.setContainer(layout);
p.setParameterUI(ui);
workbook.setReportParameterAttr(p);
/*
* 添加控件
*/
TextEditor te = new TextEditor();
te.setWidgetName("te");
layout.addWidget(new WAbsoluteLayout.BoundsWidget(te, new Rectangle(0, 0, 70, 20)));
NumberEditor ne = new NumberEditor();
ne.setWidgetName("ne");
layout.addWidget(new WAbsoluteLayout.BoundsWidget(ne, new Rectangle(100, 0, 70, 20)));
FreeButton fb = new FreeButton();
fb.setWidgetName("fb");
layout.addWidget(new WAbsoluteLayout.BoundsWidget(fb, new Rectangle(200, 0, 70, 20)));
layout.addMobileWidget("ne");
layout.addToMobileList("te");
/*
* 属性
*/
// 基本
layout.setWidgetName("para2");
// 高级
layout.setLabelName("label_name");
layout.setBackground(ColorBackground.getInstance(Color.green));
layout.setDelayDisplayContent(false);
layout.setUseParamsTemplate(true);
layout.setPosition(FRHorizontalLayout.RIGHT);
p.setAlign(FRHorizontalLayout.RIGHT);
// 尺寸
layout.setDesignWidth(801);
ui.setDesignSize(new Dimension(801, 70));
/*
* 事件
*/
layout.addListener(new DefaultListener(Widget.EVENT_CLICK, new JavaScriptImpl("alert(123);")));
/*
* 移动端
*/
// 手机属性
layout.setMobileParamStyle(new DefaultMobileParameterStyle());
// 组件顺序
layout.setSorted(true);
}
/**
* 文本控件
*
* @return
*/
public static Widget getTextEditor() {
TextEditor w = new TextEditor();
// 控件名称
w.setWidgetName("TextEditor");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 水印
w.setWaterMark("watermark");
// 允许为空
w.setAllowBlank(true);
// 填写规则 - 长度
// LengthReg regex = new LengthReg();
// regex.setMaxLen(3);
// regex.setMinLen(1);
// 填写规则 - 邮件
// MailReg regex = new MailReg();
// 填写规则 - 身份证
// IDCardReg regex = new IDCardReg();
// 填写规则 - 邮编
// PostCardReg regex = new PostCardReg();
// 填写规则 - 身份证
// IDCardReg regex = new IDCardReg();
// 填写规则 - 电话
// PhoneReg regex = new PhoneReg();
// regex.setRegString("024-12345678");
// 填写规则 - 手机
// MobileReg regex = new MobileReg();
// 填写规则 - 自定义
CustomReg regex = new CustomReg("#0.00");
w.setRegex(regex);
// 错误提示
w.setRegErrorMessage("error");
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.AFTEREDIT, j));
// 移动端
w.getMobileScanCodeAttr().setTextInputMode(TextInputMode.ONLY_SUPPORT_MANUAL);
return w;
}
/**
* 文本域控件
*
* @return
*/
public static Widget getTextArea() {
TextArea w = new TextArea();
// 控件名称
w.setWidgetName("TextArea");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 水印
w.setWaterMark("watermark");
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 填写规则 - 长度
// LengthReg regex = new LengthReg();
// regex.setMaxLen(3);
// regex.setMinLen(1);
// MobileReg regex = new MobileReg();
// 填写规则 - 自定义
CustomReg regex = new CustomReg("#0.00");
w.setRegex(regex);
// 错误提示
w.setRegErrorMessage("error");
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.AFTEREDIT, j));
return w;
}
/**
* 数字控件
*
* @return
*/
public static Widget getNumberEditor() {
NumberEditor w = new NumberEditor();
// 控件名称
w.setWidgetName("NumberEditor");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 水印
w.setWaterMark("watermark");
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 允许小数
w.setAllowDecimals(true);
// 小数位数
w.setMaxDecimalLength(3);
// 允许负数
w.setAllowNegative(false);
// 需要最大值
w.setMaxValue(1000d);
// 需要最小值
w.setMinValue(2d);
// 错误提示
w.setRegErrorMessage("error");
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.AFTEREDIT, j));
return w;
}
/**
* 密码控件
*
* @return
*/
public static Widget getPassword() {
Password w = new Password();
// 控件名称
w.setWidgetName("Password");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 水印
w.setWaterMark("watermark");
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 填写规则 - 长度
// LengthReg regex = new LengthReg();
// regex.setMaxLen(3);
// regex.setMinLen(1);
// MobileReg regex = new MobileReg();
// 填写规则 - 自定义
CustomReg regex = new CustomReg("#0.00");
w.setRegex(regex);
// 错误提示
w.setRegErrorMessage("error");
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.AFTEREDIT, j));
return w;
}
/**
* 普通按钮控件
*
* @return
*/
public static Widget getFreeButton() {
FreeButton w = new FreeButton();
// 控件名称
w.setWidgetName("FreeButton");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 按钮名字
w.setText("FreeButton");
// 按钮图标
w.setIconName(IconManager.SUBMIT.getName());
// 快捷键
w.setHotkeys("tab");
// 事件 - 提交入库
Commit2DBJavaScript d = new Commit2DBJavaScript();
DBManipulation db = new DBManipulation();
db.setName("提交1");
// 数据库
db.setDBName("FRDemo");
// 模式、表名
Table table = new Table("", "销量");
// 提交类型
IntelliDMLConfig c = new IntelliDMLConfig();
/*
* // 删除提交
* DeleteConfig c = new DeleteConfig();
* // 插入提交
* InsertConfig c = new InsertConfig();
* // 更新提交
* UpdateConfig c = new UpdateConfig();
*/
c.setTable(table);
// 未修改不更新
c.setUpdateSelected(true);
c.setDialect(null);
// 值
c.addColumnConfig(new ColumnConfig("地区", ColumnRow.valueOf(0, 0), true, true));
c.addColumnConfig(new ColumnConfig("销售员",
new ColumnRowGroup(new ColumnRow[] { ColumnRow.valueOf("A1"), ColumnRow.valueOf("B2") }),
false, false));
// 提交条件
c.setCondition(new CommonCondition("地区", Compare.NOT_EQUAL, ""));
// 提交事件
c.addSubmitJob(new NameSubmitJob("提交事件", new DMLConfigJob()));
ClassSubmitJob cj = new ClassSubmitJob("custom.MySubmitJob");
TreeMap<String, Object> map = new TreeMap<String, Object>();
map.put("p1", "123");
cj.setPropertyMap(new ListMap<String, Object>(map));
c.addSubmitJob(new NameSubmitJob("自定义事件", cj));
// 回调函数
d.setCallBack(new JavaScriptImpl("alert(123);"));
db.setDmlConfig(c);
d.setDBManipulation(Arrays.asList(db));
w.addListener(new DefaultListener(Widget.EVENT_CLICK, d));
return w;
}
/**
* 自定义按钮控件
*
* @return
*/
public static Widget getCustomButton() {
FreeButton w = new FreeButton();
w.setCustomStyle(true);
// 控件名称
w.setWidgetName("CustomButton");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 按钮名字
w.setText("CustomButton");
// 按钮图标
w.setIconName(IconManager.ADD.getName());
// 快捷键
w.setHotkeys("tab");
// 初始背景
w.setInitialBackground(ColorBackground.getInstance(Color.yellow));
// 鼠标浮动背景
w.setOverBackground(ColorBackground.getInstance(Color.RED));
// 鼠标点击背景
w.setClickBackground(ColorBackground.getInstance(Color.GREEN));
// 事件
EmailJavaScript e = new EmailJavaScript();
e.setMailTo("");
e.setTitle("title");
e.setMainText("text");
w.addListener(new DefaultListener(Widget.EVENT_CLICK, e));
return w;
}
/**
* 插入行按钮控件
*
* @return
*/
public static Widget getAppendRowButton() {
AppendRowButton w = new AppendRowButton();
// 控件名称
w.setWidgetName("AppendRowButton");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 按钮名字
w.setText("AppendRowButton");
// 快捷键
w.setHotkeys("tab");
// 指定单元格
w.setFixCell(ColumnRow.valueOf(3, 3));
// 指定行数
w.setCount(2);
// 按钮图标
w.setIconName(IconManager.APPENDROW.getName());
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.EVENT_CLICK, j));
return w;
}
/**
* 删除行按钮控件
*
* @return
*/
public static Widget getDeleteRowButton() {
DeleteRowButton w = new DeleteRowButton();
// 控件名称
w.setWidgetName("DeleteRowButton");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 按钮名字
w.setText("DeleteRowButton");
// 快捷键
w.setHotkeys("tab");
// 指定单元格
w.setFixCell(ColumnRow.valueOf("A1"));
// 按钮图标
w.setIconName(IconManager.DELETEROW.getName());
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.EVENT_CLICK, j));
return w;
}
/**
* 参数提交按钮控件
*
* @return
*/
public static Widget getFormSubmitButton() {
FormSubmitButton w = new FormSubmitButton();
w.setCustomStyle(true);
// 控件名称
w.setWidgetName("FormSubmitButton");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 按钮名字
w.setText("FormSubmitButton");
// 按钮图标
w.setIconName(IconManager.SUBMIT.getName());
// 快捷键
w.setHotkeys("enter");
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.EVENT_CLICK, j));
return w;
}
/**
* 节点数按钮控件
*
* @return
*/
public static Widget getTreeNodeToggleButton() {
TreeNodeToggleButton w = new TreeNodeToggleButton();
// 控件名称
w.setWidgetName("TreeNodeToggleButton");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.EVENT_CLICK, j));
return w;
}
/**
* 复选按钮控件
*
* @return
*/
public static Widget getCheckBox() {
CheckBox w = new CheckBox();
// 控件名称
w.setWidgetName("CheckBox");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 文本
w.setText("CheckBox");
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.EVENT_STATECHANGE, j));
return w;
}
/**
* 单选按钮组控件
*
* @return
*/
public static Widget getRadioGroup() {
RadioGroup w = new RadioGroup();
// 控件名称
w.setWidgetName("RadioGroup");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 自适应
w.setAdaptive(false);
// 展示列数
w.setColumnsInRow(3);
// 数据字典
FormulaDictionary dic = new FormulaDictionary();
dic.setProduceFormula("'实际值'");
dic.setExcuteFormula("'显示值'");
w.setDictionary(dic);
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.EVENT_STATECHANGE, j));
return w;
}
/**
* 复选按钮组控件
*
* @return
*/
public static Widget getCheckboxGroup() {
CheckBoxGroup w = new CheckBoxGroup();
// 控件名称
w.setWidgetName("CheckboxGroup");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 自适应
w.setAdaptive(false);
// 展示列数
w.setColumnsInRow(3);
// 数据字典
FormulaDictionary dic = new FormulaDictionary();
dic.setProduceFormula("'实际值'");
dic.setExcuteFormula("'显示值'");
w.setDictionary(dic);
// 提供全选
w.setChooseAll(true);
// 返回类型
w.setReturnString(true);
// 分隔符
w.setDelimiter(",");
// 起始符
w.setStartSymbol("'");
// 结束符
w.setEndSymbol("'");
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.EVENT_STATECHANGE, j));
return w;
}
/**
* 下拉框控件
*
* @return
*/
public static Widget getComboBox() {
ComboBox w = new ComboBox();
// 控件名称
w.setWidgetName("ComboBox");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 水印
w.setWaterMark("watermark");
// 数据字典
FormulaDictionary dic = new FormulaDictionary();
dic.setProduceFormula("'实际值'");
dic.setExcuteFormula("'显示值'");
w.setDictionary(dic);
// 允许直接编辑
w.setDirectEdit(true);
// 允许自定义值
w.setCustomData(false);
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.AFTEREDIT, j));
return w;
}
/**
* 下拉复选框控件
*
* @return
*/
public static Widget getComboCheckBox() {
ComboCheckBox w = new ComboCheckBox();
// 控件名称
w.setWidgetName("ComboCheckBox");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 水印
w.setWaterMark("watermark");
// 标签形式显示
w.setSupportTag(false);
// 数据字典
FormulaDictionary dic = new FormulaDictionary();
dic.setProduceFormula("'实际值'");
dic.setExcuteFormula("'显示值'");
w.setDictionary(dic);
// 返回类型
w.setReturnString(true);
// 分隔符
w.setDelimiter(",");
// 起始符
w.setStartSymbol("'");
// 结束符
w.setEndSymbol("'");
// 允许直接编辑
w.setDirectEdit(true);
// 允许自定义值
w.setCustomData(false);
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.AFTEREDIT, j));
return w;
}
/**
* 日期框控件
*
* @return
*/
public static Widget getDateEditor() {
DateEditor w = new DateEditor();
// 控件名称
w.setWidgetName("DateEditor");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 格式
w.setReturnDate(true);
w.setFormatText("yyyy-MM-dd");
// 起始日期
// w.setStartDate(new java.util.Date());
w.setStartDateFM(new Formula("now()"));
// 结束日期
w.setEndText("2022-01-01");
// 属性 - 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 水印
w.setWaterMark("watermark");
// 返回类型
w.setReturnDate(true);
// 允许直接编辑
w.setDirectEdit(true);
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(Widget.AFTEREDIT, j));
return w;
}
/**
* 文件框控件
*
* @return
*/
public static Widget getMultiFileEditor() {
MultiFileEditor w = new MultiFileEditor();
// 控件名称
w.setWidgetName("MultiFileEditor");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 只支持单文件上传
w.setSingleFile(true);
// 文件类型
w.setAccept("jpg|png|gif");
// 大小限制
w.setMaxSize(300);
// 上传方式
w.getMobileAttr().setFileUploadModeState(FileUploadModeState.ONLY_TAKE_PHOTOS);
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(FileEditor.EVENT_UPLOAD_CALLBACK, j));
return w;
}
/**
* 列表控件
*
* @return
*/
public static Widget getListEditor() {
ListEditor w = new ListEditor();
// 控件名称
w.setWidgetName("ListEditor");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 允许为空
w.setAllowBlank(false);
// 错误提示
w.setErrorMessage("error");
// 数据字典
FormulaDictionary dic = new FormulaDictionary();
dic.setProduceFormula("'实际值'");
dic.setExcuteFormula("'显示值'");
w.setDictionary(dic);
// 去除重复数据
w.setRemoveRepeat(true);
// 需要表头
w.setNeedHead(true);
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener(FileEditor.EVENT_CLICK, j));
return w;
}
/**
* 网页框控件
*
* @return
*/
public static Widget getIframeEditor() {
IframeEditor w = new IframeEditor();
// 控件名称
w.setWidgetName("IframeEditor");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 水平滚动条可见
w.setOverflowx(true);
// 垂直滚动条可见
w.setOverflowy(false);
// 地址
w.setSrc("http://www.baidu.com");
// 参数
w.setParameters(new Parameter[] { new Parameter("p1", "123") });
return w;
}
/**
* 下拉树控件
*
* @return
*/
public static Widget getTreeComboBoxEditor() {
TreeComboBoxEditor w = new TreeComboBoxEditor();
// 控件名称
w.setWidgetName("TreeComboBoxEditor");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 构建树
w.setLayerBuild(true);
ArrayList<LayerConfig> lcs = new ArrayList<LayerConfig>();
LayerConfig lc;
lc = new LayerConfig(1);
lc.setTableData(new NameTableData("ds1"));
lc.setDictionary(new TableDataDictionary(new NameTableData("ds1"), 2, 4));
lc.setModelColumn(2);
lc.setViewColumn(4);
lcs.add(lc);
lc = new LayerConfig(2);
lc.setTableData(new NameTableData("ds1"));
lc.setDictionary(new TableDataDictionary(new NameTableData("ds1"), 2, 4));
lc.setModelColumn(2);
lc.setViewColumn(4);
ArrayList<LayerDependence> list = new ArrayList<LayerDependence>();
list.add(new LayerDependence(1, 3));
lc.addAll(list);
lcs.add(lc);
lc = new LayerConfig(3);
lc.setTableData(new NameTableData("ds1"));
lc.setDictionary(new TableDataDictionary(new NameTableData("ds1"), 2, 4));
lc.setModelColumn(2);
lc.setViewColumn(4);
list = new ArrayList<LayerDependence>();
list.add(new LayerDependence(2, 3));
lc.addAll(list);
lcs.add(lc);
w.setLayerConfigs(lcs);
// 水印
w.setWaterMark("watermark");
// 多选
w.setMultipleSelection(true);
// 异步加载
w.setAjax(true);
// 只返回叶子节点
w.setSelectLeafOnly(false);
// 结果返回完整层次路径
w.setReturnFullPath(true);
// 允许为空
w.setAllowBlank(false);
w.setErrorMessage("error");
// 允许直接编辑
w.setDirectEdit(true);
// 允许自定义值
w.setCustomData(false);
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener("nodeadd", j));
return w;
}
/**
* 视图树控件
*
* @return
*/
public static Widget getTreeEditor() {
TreeEditor w = new TreeEditor();
// 控件名称
w.setWidgetName("TreeEditor");
// 可用
w.setEnabled(true);
// 可见
w.setVisible(true);
// 构建树
w.setLayerBuild(false);
// 自动构建
// w.setDictionary(new TableDataDictionary(new NameTableData("Tree1"), 2, 4));
// 普通分层构建
// 性能优先
w.setPerformanceFirst(true);
TreeNodeAttr node = new TreeNodeAttr();
// 数据库表
node.setDictionary(new DatabaseDictionary(new NameDatabaseConnection("FRDemo"), "department", 2, 4));
// 数据查询
node.setDictionary(new TableDataDictionary(new NameTableData("ds1"), 2, 4));
// 自定义查询
node.setDictionary(new CustomDictionary(new Object[] { 1, 2 }, new Object[] { 1, 2 }));
// 公式
FormulaDictionary fd = new FormulaDictionary();
fd.setExcuteFormula("1");
fd.setProduceFormula("2");
node.setDictionary(fd);
w.setTreeNodeAttr(new TreeNodeAttr[] { node });
// 去除重复
w.setRemoveRepeat(true);
// 多选
w.setMultipleSelection(true);
// 异步加载
w.setAjax(true);
// 只返回叶子节点
w.setSelectLeafOnly(false);
// 结果返回完整层次路径
w.setReturnFullPath(true);
// 属性 - 允许为空
w.setAllowBlank(false);
w.setErrorMessage("error");
// 事件
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
w.addListener(new DefaultListener("nodeadd", j));
return w;
}
}