需要修改的文件:
widget-form.xsd :规范xml文件,添加自定义标签
ModelFormField.java:添加子类;
MacroFormRenderer.java:添加渲染方法;
htmlFormMacroLibrary.ftl:添加freemarker自定义方法;
详细步骤:
1. 添加子类
public static class KdDatePickerField extends FieldInfo{
protected String format;
protected String max;
protected String min;
protected String start;
protected String depth;
protected String defaultValue;
public String getDefaultValue() {
return defaultValue;
}
public void setDefaultValue(String defaultValue) {
this.defaultValue = defaultValue;
}
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
public String getMax() {
return max.replace("-", "/");
}
public void setMax(String max) {
this.max = max;
}
public String getMin() {
return min.replace("-", "/");
}
public void setMin(String min) {
this.min = min;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public String getDepth() {
return depth;
}
public void setDepth(String depth) {
this.depth = depth;
}
protected KdDatePickerField() {
super();
}
public KdDatePickerField(ModelFormField modelFormField) {
super(FieldInfo.SOURCE_EXPLICIT, FieldInfo.DATE_TIME, modelFormField);
}
public KdDatePickerField(int fieldSource, ModelFormField modelFormField) {
super(fieldSource, FieldInfo.DATE_TIME, modelFormField);
}
public KdDatePickerField(Element element, ModelFormField modelFormField) {
super(element, modelFormField);
format = element.getAttribute("format");
defaultValue = element.getAttribute("defaultValue");
/*if (UtilValidate.isNotEmpty(element.getAttribute("max"))) {
this.setStart(element.getAttribute("max"));
}
if (UtilValidate.isNotEmpty(element.getAttribute("min"))) {
this.setStart(element.getAttribute("min"));
}*/
max = element.getAttribute("max");
min = element.getAttribute("min");
start = element.getAttribute("start");
depth = element.getAttribute("depth");
}
@Override
public void renderFieldString(Appendable writer, Map<String, Object> context,FormStringRenderer formStringRenderer) throws IOException {
formStringRenderer.renderKdDatePickerField(writer, context, this);
}
}