|
|
|
@ -1,8 +1,11 @@
|
|
|
|
|
package com.fr.design; |
|
|
|
|
|
|
|
|
|
import com.fr.base.Parameter; |
|
|
|
|
import com.fr.base.ParameterConfig; |
|
|
|
|
import com.fr.base.TableData; |
|
|
|
|
import com.fr.base.io.BaseBook; |
|
|
|
|
import com.fr.data.TableDataSource; |
|
|
|
|
import com.fr.data.operator.DataOperator; |
|
|
|
|
import com.fr.design.file.HistoryTemplateListCache; |
|
|
|
|
import com.fr.design.mainframe.DesignerFrameFileDealerPane; |
|
|
|
|
import com.fr.design.mainframe.JTemplate; |
|
|
|
@ -11,9 +14,14 @@ import com.fr.form.ui.DataControl;
|
|
|
|
|
import com.fr.form.ui.MultiFileEditor; |
|
|
|
|
import com.fr.form.ui.Widget; |
|
|
|
|
import com.fr.general.ComparatorUtils; |
|
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
|
import com.fr.stable.Filter; |
|
|
|
|
import com.fr.stable.ParameterProvider; |
|
|
|
|
import com.fr.stable.StringUtils; |
|
|
|
|
import com.fr.stable.js.WidgetName; |
|
|
|
|
|
|
|
|
|
import com.fr.util.ParameterApplyHelper; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.Iterator; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
@ -40,7 +48,7 @@ public abstract class DesignModelAdapter<T extends BaseBook, S extends JTemplate
|
|
|
|
|
/** |
|
|
|
|
* 全部的参数,包括全局参数,模板参数和数据集参数 |
|
|
|
|
*/ |
|
|
|
|
private Parameter[] parameters; |
|
|
|
|
protected Parameter[] parameters; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 数据集参数 |
|
|
|
@ -52,6 +60,12 @@ public abstract class DesignModelAdapter<T extends BaseBook, S extends JTemplate
|
|
|
|
|
*/ |
|
|
|
|
private Parameter[] templateParameters; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 数据集参数缓存 更新时刷新 |
|
|
|
|
*/ |
|
|
|
|
protected Map<String, ParameterProvider[]> tableDataParametersMap = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public DesignModelAdapter(S jTemplate) { |
|
|
|
|
this.jTemplate = jTemplate; |
|
|
|
@ -241,6 +255,85 @@ public abstract class DesignModelAdapter<T extends BaseBook, S extends JTemplate
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected void addTableDataParameters(Map<String, ParameterProvider> map, Filter<ParameterProvider> filter) { |
|
|
|
|
Iterator<String> it = this.getBook().getTableDataNameIterator(); |
|
|
|
|
try { |
|
|
|
|
// 清空下缓存
|
|
|
|
|
tableDataParametersMap.clear(); |
|
|
|
|
while (it.hasNext()) { |
|
|
|
|
String name = it.next(); |
|
|
|
|
TableData tableData = this.getBook().getTableData(name); |
|
|
|
|
ParameterProvider[] parameterProviders = DataOperator.getInstance().getTableDataParameters(tableData); |
|
|
|
|
if (filter != null) { |
|
|
|
|
ParameterApplyHelper.addPara2Map(map, parameterProviders, filter); |
|
|
|
|
} else { |
|
|
|
|
ParameterApplyHelper.addPara2Map(map, parameterProviders); |
|
|
|
|
} |
|
|
|
|
tableDataParametersMap.put(name, parameterProviders); |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected void updateTableDataParameters(String oldName, |
|
|
|
|
String tdName, |
|
|
|
|
TableData tableData, |
|
|
|
|
Map<String, ParameterProvider> map, |
|
|
|
|
Filter<ParameterProvider> filter) { |
|
|
|
|
|
|
|
|
|
// 处理初始化添加
|
|
|
|
|
if (tableDataParametersMap.isEmpty()) { |
|
|
|
|
addTableDataParameters(map, filter); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ParameterProvider[] providers = null; |
|
|
|
|
|
|
|
|
|
if (!ComparatorUtils.equals(oldName, tdName)) { |
|
|
|
|
// 更新下缓存名称 替换下数据集名称
|
|
|
|
|
providers = tableDataParametersMap.remove(oldName); |
|
|
|
|
if (providers != null) { |
|
|
|
|
tableDataParametersMap.put(tdName, providers); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
for (Map.Entry<String, ParameterProvider[]> entry : tableDataParametersMap.entrySet()) { |
|
|
|
|
ParameterProvider[] parameterProviders; |
|
|
|
|
if (ComparatorUtils.equals(entry.getKey(), tdName)) { |
|
|
|
|
parameterProviders = DataOperator.getInstance().getTableDataParameters(tableData); |
|
|
|
|
// 用来更新缓存
|
|
|
|
|
providers = parameterProviders; |
|
|
|
|
} else { |
|
|
|
|
parameterProviders = entry.getValue(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (filter != null) { |
|
|
|
|
ParameterApplyHelper.addPara2Map(map, parameterProviders, filter); |
|
|
|
|
} else { |
|
|
|
|
ParameterApplyHelper.addPara2Map(map, parameterProviders); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (providers != null) { |
|
|
|
|
// 更新缓存
|
|
|
|
|
tableDataParametersMap.put(tdName, providers); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected void addGlobalParameters(Map<String, ParameterProvider> map) { |
|
|
|
|
// 添加全局参数
|
|
|
|
|
Parameter[] glbParas = ParameterConfig.getInstance().getGlobalParameters(); |
|
|
|
|
ParameterApplyHelper.addPara2Map(map, glbParas); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 环境改变. |
|
|
|
|
*/ |
|
|
|
@ -251,6 +344,11 @@ public abstract class DesignModelAdapter<T extends BaseBook, S extends JTemplate
|
|
|
|
|
*/ |
|
|
|
|
public abstract void parameterChanged(); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 数据集参数改变 |
|
|
|
|
*/ |
|
|
|
|
public abstract void tableDataParametersChanged(String oldName, String tdName, TableData tableData); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 控件配置改变. |
|
|
|
|
*/ |
|
|
|
|