forked from fanruan/finekit
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.4 KiB
95 lines
2.4 KiB
6 years ago
|
package com.fanruan.api.report.form.category;
|
||
|
|
||
|
import com.fanruan.api.report.form.BaseWidget;
|
||
|
import com.fr.form.ui.DataControl;
|
||
|
import com.fr.form.ui.WidgetValue;
|
||
|
import com.fr.form.ui.WidgetValueUtils;
|
||
|
import com.fr.form.ui.concept.data.ValueInitializer;
|
||
|
import com.fr.stable.ArrayUtils;
|
||
|
import com.fr.stable.StringUtils;
|
||
|
import com.fr.stable.script.CalculatorProvider;
|
||
|
import com.fr.stable.xml.XMLPrintWriter;
|
||
|
import com.fr.stable.xml.XMLableReader;
|
||
|
|
||
|
/**
|
||
|
* @author richie
|
||
|
* @version 10.0
|
||
|
* Created by richie on 2019/10/8
|
||
|
* 会作为参数控件或者决策报表控件并传递参数值的控件接口
|
||
|
*/
|
||
|
public abstract class ValueWidget extends BaseWidget implements DataControl {
|
||
|
|
||
|
private ValueInitializer widgetValue;
|
||
|
|
||
|
@Override
|
||
|
public ValueInitializer getWidgetValue() {
|
||
|
return widgetValue;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void setWidgetValue(ValueInitializer value) {
|
||
|
this.widgetValue = value;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 获取是否为Editor
|
||
|
*/
|
||
|
@Override
|
||
|
public boolean isEditor() {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 获取当前对象对参数的依赖关系
|
||
|
*
|
||
|
* @param ca 当前线程的算子
|
||
|
* @return 字符串参数数组
|
||
|
*/
|
||
|
public String[] dependence(CalculatorProvider ca) {
|
||
|
ValueInitializer value = getWidgetValue();
|
||
|
return value == null ? ArrayUtils.EMPTY_STRING_ARRAY : value.dependence(ca);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 克隆
|
||
|
*/
|
||
|
@Override
|
||
|
public Object clone() throws CloneNotSupportedException {
|
||
|
ValueWidget cloned = (ValueWidget) super.clone();
|
||
|
if (this.widgetValue != null) {
|
||
|
cloned.widgetValue = (WidgetValue) this.widgetValue.clone();
|
||
|
}
|
||
|
return cloned;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void readXML(XMLableReader reader) {
|
||
|
super.readXML(reader);
|
||
|
|
||
|
if (reader.isChildNode()) {
|
||
|
if (WidgetValue.XML_TAG.equals(reader.getTagName())) {
|
||
|
this.widgetValue = new WidgetValue();
|
||
|
reader.readXMLObject(widgetValue);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void writeXML(XMLPrintWriter writer) {
|
||
|
super.writeXML(writer);
|
||
|
if (widgetValue != null) {
|
||
|
widgetValue.writeXML(writer);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getFormatText() {
|
||
|
return StringUtils.EMPTY;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getDataBindDefaultValue(CalculatorProvider calculator) {
|
||
|
return WidgetValueUtils.fillDefaultValue(this, calculator);
|
||
|
}
|
||
|
}
|