87 changed files with 2492 additions and 1758 deletions
@ -1,25 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula; |
||||
|
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.Info; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-19 |
||||
*/ |
||||
public abstract class AbstractSearchFormulaAction implements SearchFormula{ |
||||
@Override |
||||
public void searchFormula(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<? extends Info> search4Infos(JTemplate jTemplate) { |
||||
return null; |
||||
} |
||||
} |
@ -1,46 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula; |
||||
|
||||
import com.fr.design.actions.replace.action.SearchAction; |
||||
import com.fr.design.actions.replace.action.content.formula.cell.SearchCellFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.data.SearchDataFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.floatelement.SearchFloatFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.template.SearchTemplateFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.widget.SearchWidgetFormulaAction; |
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
import com.fr.form.main.Form; |
||||
import com.fr.main.impl.WorkBook; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-17 |
||||
*/ |
||||
public class SearchFormulaAction implements SearchAction { |
||||
private ArrayList<FormulaInfo> formulaInfos; |
||||
|
||||
public SearchFormulaAction(JTemplate jTemplate) { |
||||
setFormulaInfos(search4Infos(jTemplate)); |
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<FormulaInfo> search4Infos(JTemplate jTemplate) { |
||||
ArrayList<FormulaInfo> formulaInfos = new ArrayList<>(); |
||||
new SearchCellFormulaAction(jTemplate, formulaInfos); |
||||
new SearchWidgetFormulaAction(jTemplate, formulaInfos); |
||||
new SearchDataFormulaAction(jTemplate, formulaInfos); |
||||
new SearchTemplateFormulaAction(jTemplate, formulaInfos); |
||||
new SearchFloatFormulaAction(jTemplate, formulaInfos); |
||||
return formulaInfos; |
||||
} |
||||
|
||||
public ArrayList<FormulaInfo> getFormulaInfos() { |
||||
return formulaInfos; |
||||
} |
||||
|
||||
public void setFormulaInfos(ArrayList<FormulaInfo> formulaInfos) { |
||||
this.formulaInfos = formulaInfos; |
||||
} |
||||
} |
@ -0,0 +1,94 @@
|
||||
package com.fr.design.actions.replace.action.content.formula; |
||||
|
||||
import com.fr.design.actions.replace.action.SearchAction; |
||||
import com.fr.design.actions.replace.action.content.formula.cell.SearchCellFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.data.SearchDataFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.floatelement.SearchFloatFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.template.SearchTemplateFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.widget.SearchWidgetFormulaAction; |
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.HashSet; |
||||
import java.util.List; |
||||
import java.util.Set; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-17 |
||||
*/ |
||||
public class SearchFormulaManager implements SearchAction { |
||||
private List<FormulaInfo> formulaInfos; |
||||
private Set<SearchFormula> formulaProviderSet = new HashSet<>(); |
||||
|
||||
private SearchFormulaManager() { |
||||
registerFormula(SearchCellFormulaAction.getInstance()); |
||||
registerFormula(SearchWidgetFormulaAction.getInstance()); |
||||
registerFormula(SearchDataFormulaAction.getInstance()); |
||||
registerFormula(SearchTemplateFormulaAction.getInstance()); |
||||
registerFormula(SearchFloatFormulaAction.getInstance()); |
||||
} |
||||
|
||||
@Override |
||||
public void search4Infos(JTemplate jTemplate) { |
||||
List<FormulaInfo> formulaInfos = new ArrayList<>(); |
||||
for (SearchFormula searchFormula : formulaProviderSet) { |
||||
searchFormula.searchFormulaFromObject(jTemplate, formulaInfos); |
||||
} |
||||
setFormulaInfos(formulaInfos); |
||||
} |
||||
|
||||
/** |
||||
* 注册对应的SearchFormula |
||||
* |
||||
* @param searchFormula |
||||
*/ |
||||
public void registerFormula(SearchFormula searchFormula) { |
||||
formulaProviderSet.add(searchFormula); |
||||
} |
||||
|
||||
public List<FormulaInfo> getFormulaInfos() { |
||||
return formulaInfos; |
||||
} |
||||
|
||||
public void setFormulaInfos(List<FormulaInfo> formulaInfos) { |
||||
this.formulaInfos = formulaInfos; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 对外开放的获取单例对象的方法 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static SearchFormulaManager getInstance() { |
||||
return SearchFormulaManagerEnum.SINGLETON.getInstance(); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 枚举实现单例 |
||||
*/ |
||||
enum SearchFormulaManagerEnum { |
||||
/** |
||||
* 单例 |
||||
*/ |
||||
SINGLETON; |
||||
private SearchFormulaManager instance; |
||||
|
||||
SearchFormulaManagerEnum() { |
||||
instance = new SearchFormulaManager(); |
||||
} |
||||
|
||||
/** |
||||
* 获取单例对象 |
||||
* |
||||
* @return |
||||
*/ |
||||
public SearchFormulaManager getInstance() { |
||||
return instance; |
||||
} |
||||
} |
||||
} |
@ -1,37 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.cell; |
||||
|
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.Info; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-30 |
||||
*/ |
||||
public abstract class AbstractSearchCellFormulaAction implements SearchCellFormula{ |
||||
|
||||
|
||||
@Override |
||||
public void searchFormulaFromCell(JTemplate jTemplate, ArrayList<FormulaInfo> formulaInfos) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void searchFormulaFromCellType(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void searchFormula(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<? extends Info> search4Infos(JTemplate jTemplate) { |
||||
return new ArrayList<>(); |
||||
} |
||||
} |
@ -1,31 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.data; |
||||
|
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.Info; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-26 |
||||
*/ |
||||
public abstract class AbstractSearchDataFormulaAction implements SearchDataFormula{ |
||||
|
||||
@Override |
||||
public void searchFormulaFromData(JTemplate jTemplate,ArrayList<FormulaInfo> fomulaInfos) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void searchFormula(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<? extends Info> search4Infos(JTemplate jTemplate) { |
||||
return null; |
||||
} |
||||
} |
@ -1,22 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.data; |
||||
|
||||
import com.fr.design.actions.replace.action.content.formula.SearchFormula; |
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-26 |
||||
*/ |
||||
public interface SearchDataFormula extends SearchFormula { |
||||
/** |
||||
* 从数据集类型中去获取公式 |
||||
* @param jTemplate |
||||
* @param fomulaInfos |
||||
*/ |
||||
void searchFormulaFromData(JTemplate jTemplate, ArrayList<FormulaInfo> fomulaInfos); |
||||
} |
@ -1,26 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.floatelement; |
||||
|
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.Info; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-09-12 |
||||
*/ |
||||
public abstract class AbstractSearchFloatFormula implements SearchFloatFormula{ |
||||
@Override |
||||
public void searchFormula(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<? extends Info> search4Infos(JTemplate jTemplate) { |
||||
return new ArrayList<>(); |
||||
} |
||||
|
||||
|
||||
} |
@ -1,31 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.highlight; |
||||
|
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.Info; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
import com.fr.report.cell.cellattr.highlight.HighlightAction; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-19 |
||||
*/ |
||||
public abstract class AbstractSearchHighlightAction implements SearchHighlightFormula { |
||||
@Override |
||||
public void dealWithHighlightAction(ITContent content, ArrayList<FormulaInfo> formulaInfos, HighlightAction highlightAction) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void searchFormula(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<? extends Info> search4Infos(JTemplate jTemplate) { |
||||
return null; |
||||
} |
||||
} |
@ -1,42 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.highlight.javascript; |
||||
|
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.Info; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
import com.fr.js.JavaScript; |
||||
import com.fr.report.cell.cellattr.highlight.HighlightAction; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-19 |
||||
*/ |
||||
public abstract class AbstractSearchJSFormulaAction implements SearchJSFormula { |
||||
@Override |
||||
public void searchJSFormulaFromOther(ArrayList<FormulaInfo> formulaInfos, ITContent content, JavaScript javaScript) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void dealWithHighlightAction(ITContent content, ArrayList<FormulaInfo> formulaInfos, HighlightAction highlightAction) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void searchFormula(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<? extends Info> search4Infos(JTemplate jTemplate) { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void addFormulaInfosFromJSPara(ArrayList<FormulaInfo> formulaInfos, ITContent content, JavaScript javaScript) { |
||||
|
||||
} |
||||
} |
@ -1,27 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.template; |
||||
|
||||
|
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.Info; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-09-12 |
||||
*/ |
||||
public abstract class AbstractSearchTemplateFormula implements SearchTemplateFormula{ |
||||
|
||||
@Override |
||||
public void searchFormula(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<? extends Info> search4Infos(JTemplate jTemplate) { |
||||
return null; |
||||
} |
||||
} |
@ -0,0 +1,123 @@
|
||||
package com.fr.design.actions.replace.action.content.js; |
||||
|
||||
import com.fr.chart.chartattr.Axis; |
||||
import com.fr.chart.chartattr.Chart; |
||||
import com.fr.chart.chartattr.ChartCollection; |
||||
import com.fr.design.actions.replace.info.JSInfo; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.actions.replace.utils.SearchJSUtils; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.js.NameJavaScript; |
||||
import com.fr.plugin.chart.attr.axis.VanChartAlertValue; |
||||
import com.fr.plugin.chart.attr.axis.VanChartAxis; |
||||
import com.fr.plugin.chart.base.VanChartHtmlLabel; |
||||
import com.fr.stable.collections.combination.Pair; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-09-15 |
||||
*/ |
||||
public class SearchChartJSAction { |
||||
|
||||
/** |
||||
* 寻找图表中的JS |
||||
* |
||||
* @param chartCollection |
||||
* @param content |
||||
* @param jsInfos |
||||
*/ |
||||
public void searchChartJS(ChartCollection chartCollection, ITContent content, List<JSInfo> jsInfos) { |
||||
List<Pair<VanChartHtmlLabel, String>> htmlLabels = SearchJSUtils.getHtmlLabel(chartCollection); |
||||
List<NameJavaScript> nameJavaScripts = SearchJSUtils.getNameJavaScript(chartCollection); |
||||
//图表-样式-标签以及图表-特效-条件显示
|
||||
ITContent htmlITContent = ITContent.copy(content); |
||||
htmlITContent.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Chart")); |
||||
SearchJSUtils.addJSInfosFromHtmlLabel(htmlITContent, htmlLabels, jsInfos); |
||||
//图表-特效-交互属性
|
||||
ITContent conditionContent = ITContent.copy(content); |
||||
conditionContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Chart_Chart"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Animation_Special"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Interactive") |
||||
); |
||||
SearchJSUtils.addJSInfosFromNameJS(conditionContent, nameJavaScripts, jsInfos); |
||||
|
||||
for (int i = 0; i < chartCollection.getChartCount(); i++) { |
||||
ITContent chartContent = ITContent.copy(content); |
||||
searchAxisJS(jsInfos, chartContent, chartCollection.getChart(i)); |
||||
} |
||||
|
||||
} |
||||
|
||||
private void searchAxisJS(List<JSInfo> jsInfos, ITContent chartContent, Chart chart) { |
||||
Axis xAxis = chart.getPlot().getxAxis(); |
||||
Axis yAxis = chart.getPlot().getyAxis(); |
||||
if (xAxis instanceof VanChartAxis) { |
||||
ITContent xAxisContent = ITContent.copy(chartContent); |
||||
xAxisContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Chart_Axis"), |
||||
Toolkit.i18nText("Fine-Design_Chart_X_Axis"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Axis_Label_Format") |
||||
); |
||||
dealAxisHtmlLabelJS(jsInfos, ((VanChartAxis) xAxis).getHtmlLabel(), xAxisContent); |
||||
} |
||||
|
||||
if (yAxis instanceof VanChartAxis) { |
||||
ITContent yAxisContent = ITContent.copy(chartContent); |
||||
yAxisContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Chart_Axis"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Y_Axis"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Axis_Label_Format") |
||||
); |
||||
dealAxisHtmlLabelJS(jsInfos, ((VanChartAxis) yAxis).getHtmlLabel(), yAxisContent); |
||||
} |
||||
} |
||||
|
||||
private void dealAxisHtmlLabelJS(List<JSInfo> jsInfos, VanChartHtmlLabel label, ITContent content) { |
||||
if (isHtmlLabelValid(label)) { |
||||
ITContent axisContent = ITContent.copy(content); |
||||
axisContent.setReplaceObject(label); |
||||
jsInfos.add(new JSInfo(axisContent)); |
||||
} |
||||
} |
||||
|
||||
private boolean isHtmlLabelValid(VanChartHtmlLabel label) { |
||||
return label != null && label.getCustomText() != null; |
||||
} |
||||
|
||||
/** |
||||
* 对外开放的获取单例的方法 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static SearchChartJSAction getInstance() { |
||||
return SearchChartJSAction.SearchChartJSActionEnum.SINGLETON.getInstance(); |
||||
} |
||||
|
||||
/** |
||||
* 枚举实现单例 |
||||
*/ |
||||
enum SearchChartJSActionEnum { |
||||
/** |
||||
* 单例 |
||||
*/ |
||||
SINGLETON; |
||||
private SearchChartJSAction instance; |
||||
|
||||
SearchChartJSActionEnum() { |
||||
instance = new SearchChartJSAction(); |
||||
} |
||||
|
||||
/** |
||||
* 获取单例对象 |
||||
* |
||||
* @return |
||||
*/ |
||||
public SearchChartJSAction getInstance() { |
||||
return instance; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,26 @@
|
||||
package com.fr.design.actions.replace.action.content.js; |
||||
|
||||
import com.fr.design.actions.replace.action.SearchAction; |
||||
import com.fr.design.actions.replace.info.JSInfo; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 搜索JS |
||||
* |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-09-15 |
||||
*/ |
||||
public interface SearchJS extends SearchAction { |
||||
|
||||
/** |
||||
* 获取各个地方的JS |
||||
* |
||||
* @param jTemplate |
||||
* @param jsInfos |
||||
*/ |
||||
default void searchJSFromObject(JTemplate jTemplate, List<JSInfo> jsInfos) { |
||||
} |
||||
} |
@ -1,46 +0,0 @@
|
||||
package com.fr.design.actions.replace.action.content.js; |
||||
|
||||
import com.fr.design.actions.replace.action.SearchAction; |
||||
import com.fr.design.actions.replace.info.JSInfo; |
||||
|
||||
import com.fr.design.mainframe.JTemplate; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-12 |
||||
*/ |
||||
public class SearchJSAction implements SearchAction { |
||||
private ArrayList<JSInfo> jsInfos; |
||||
|
||||
public SearchJSAction(JTemplate jTemplate) { |
||||
setJsInfos(search4Infos(jTemplate)); |
||||
} |
||||
|
||||
@Override |
||||
public ArrayList<JSInfo> search4Infos(JTemplate jTemplate) { |
||||
ArrayList<JSInfo> jsInfos = new ArrayList<>(); |
||||
//从单元格获取JS
|
||||
new SearchCellJSAction(jTemplate, jsInfos); |
||||
//从参数面板控件
|
||||
new SearchWidgetJSAction(jTemplate, jsInfos); |
||||
//从模板Web属性
|
||||
new SearchWebJSAction(jTemplate, jsInfos); |
||||
//从悬浮元素
|
||||
new SearchFloatJSAction(jTemplate, jsInfos); |
||||
return jsInfos; |
||||
} |
||||
|
||||
public ArrayList<JSInfo> getJsInfos() { |
||||
return jsInfos; |
||||
} |
||||
|
||||
public void setJsInfos(ArrayList<JSInfo> jsInfos) { |
||||
this.jsInfos = jsInfos; |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,105 @@
|
||||
package com.fr.design.actions.replace.action.content.js; |
||||
|
||||
import com.fr.design.actions.replace.action.SearchAction; |
||||
import com.fr.design.actions.replace.action.content.formula.SearchFormula; |
||||
import com.fr.design.actions.replace.info.JSInfo; |
||||
|
||||
import com.fr.design.actions.replace.utils.ShowValueUtils; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
import com.fr.form.ui.Widget; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.HashSet; |
||||
import java.util.List; |
||||
import java.util.Set; |
||||
|
||||
|
||||
/** |
||||
* 管理搜索JS的注册销毁的管理类 |
||||
* |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-12 |
||||
*/ |
||||
public class SearchJSManager implements SearchAction { |
||||
private List<JSInfo> jsInfos; |
||||
private Set<SearchJS> searchJSSet = new HashSet<>(); |
||||
|
||||
private SearchJSManager() { |
||||
//从控件
|
||||
registerJS(SearchWidgetJSAction.getInstance()); |
||||
//从单元格获取JS
|
||||
registerJS(SearchCellJSAction.getInstance()); |
||||
//从模板Web属性
|
||||
registerJS(SearchWebJSAction.getInstance()); |
||||
//从悬浮元素
|
||||
registerJS(SearchFloatJSAction.getInstance()); |
||||
} |
||||
|
||||
@Override |
||||
public void search4Infos(JTemplate jTemplate) { |
||||
List<JSInfo> jsInfos = new ArrayList<>(); |
||||
for (SearchJS searchJS : searchJSSet) { |
||||
searchJS.searchJSFromObject(jTemplate, jsInfos); |
||||
} |
||||
setJsInfos(jsInfos); |
||||
} |
||||
|
||||
public List<JSInfo> getJsInfos() { |
||||
return jsInfos; |
||||
} |
||||
|
||||
public void setJsInfos(List<JSInfo> jsInfos) { |
||||
this.jsInfos = jsInfos; |
||||
} |
||||
|
||||
/** |
||||
* 注册对象 |
||||
* |
||||
* @param searchJS |
||||
*/ |
||||
public void registerJS(SearchJS searchJS) { |
||||
searchJSSet.add(searchJS); |
||||
} |
||||
|
||||
/** |
||||
* 销毁对象 |
||||
*/ |
||||
public void removeJS(SearchJS searchJS) { |
||||
searchJSSet.remove(searchJS); |
||||
} |
||||
|
||||
/** |
||||
* 对外开放的获取对象的方法 |
||||
* |
||||
* @return |
||||
*/ |
||||
public static SearchJSManager getInstance() { |
||||
return SearchJSActionEnum.SINGLETON.getInstance(); |
||||
} |
||||
|
||||
/** |
||||
* 枚举实现单例 |
||||
*/ |
||||
enum SearchJSActionEnum { |
||||
/** |
||||
* 单例 |
||||
*/ |
||||
SINGLETON; |
||||
private SearchJSManager instance; |
||||
|
||||
SearchJSActionEnum() { |
||||
instance = new SearchJSManager(); |
||||
} |
||||
|
||||
/** |
||||
* 获取单例对象 |
||||
* |
||||
* @return |
||||
*/ |
||||
public SearchJSManager getInstance() { |
||||
return instance; |
||||
} |
||||
} |
||||
|
||||
} |
@ -1,232 +0,0 @@
|
||||
package com.fr.design.actions.replace.info.base; |
||||
|
||||
import com.fr.base.Formula; |
||||
import com.fr.chartx.constant.ChartKeyCst; |
||||
import com.fr.data.impl.DBTableData; |
||||
import com.fr.form.event.Listener; |
||||
import com.fr.form.ui.Widget; |
||||
import com.fr.general.data.Condition; |
||||
import com.fr.js.JavaScript; |
||||
import com.fr.js.NameJavaScript; |
||||
import com.fr.plugin.chart.base.VanChartHtmlLabel; |
||||
import com.fr.report.cell.CellElement; |
||||
import com.fr.report.cell.FloatElement; |
||||
import com.fr.report.core.sort.sortexpression.FormulaSortExpression; |
||||
import com.fr.report.core.sort.sortexpression.SortExpression; |
||||
import com.fr.stable.AssistUtils; |
||||
import com.teamdev.jxbrowser.deps.org.checkerframework.checker.units.qual.C; |
||||
|
||||
/** |
||||
* 存储用于定位内容的对象(便于定位) |
||||
* |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-16 |
||||
*/ |
||||
public class ContentObject { |
||||
//todo 可能没用,考虑废除掉
|
||||
private CellElement cell; |
||||
private JavaScript js; |
||||
private NameJavaScript nameJavaScript; |
||||
private VanChartHtmlLabel htmlLabel; |
||||
private Widget widget; |
||||
private Listener listener; |
||||
private FloatElement floatElement; |
||||
private Formula formula; |
||||
private Condition condition; |
||||
private FormulaSortExpression sortExpression; |
||||
private DBTableData dbTableData; |
||||
|
||||
public ContentObject() { |
||||
this.cell = null; |
||||
this.js = null; |
||||
this.nameJavaScript = null; |
||||
this.htmlLabel = null; |
||||
this.widget = null; |
||||
this.listener = null; |
||||
this.floatElement = null; |
||||
this.formula = null; |
||||
this.condition = null; |
||||
this.sortExpression = null; |
||||
this.dbTableData = null; |
||||
} |
||||
|
||||
public ContentObject newContentObject(ContentObject contentObject) { |
||||
ContentObject newContent = new ContentObject(); |
||||
newContent.copyCellElement(contentObject); |
||||
newContent.copyFloatElement(contentObject); |
||||
newContent.copyHtmlLabel(contentObject); |
||||
newContent.copyJavaScript(contentObject); |
||||
newContent.copyListener(contentObject); |
||||
newContent.copyNameJavaScript(contentObject); |
||||
newContent.copyWidget(contentObject); |
||||
newContent.copyFormula(contentObject); |
||||
newContent.copyCondition(contentObject); |
||||
newContent.copySortExpression(contentObject); |
||||
newContent.copyDBTableData(contentObject); |
||||
return newContent; |
||||
} |
||||
|
||||
public void copyCellElement(ContentObject contentObject) { |
||||
if (contentObject.getCell() != null) { |
||||
this.setCell(contentObject.getCell()); |
||||
} |
||||
} |
||||
|
||||
public void copyJavaScript(ContentObject contentObject) { |
||||
if (contentObject.getJs() != null) { |
||||
this.setJs(contentObject.getJs()); |
||||
} |
||||
} |
||||
|
||||
public void copyNameJavaScript(ContentObject contentObject) { |
||||
if (contentObject.getNameJavaScript() != null) { |
||||
this.setNameJavaScript(contentObject.getNameJavaScript()); |
||||
} |
||||
} |
||||
|
||||
public void copyHtmlLabel(ContentObject contentObject) { |
||||
if (contentObject.getHtmlLabel() != null) { |
||||
this.setHtmlLabel(contentObject.getHtmlLabel()); |
||||
} |
||||
} |
||||
|
||||
public void copyListener(ContentObject contentObject) { |
||||
if (contentObject.getListener() != null) { |
||||
this.setListener(contentObject.getListener()); |
||||
} |
||||
} |
||||
|
||||
public void copyFloatElement(ContentObject contentObject) { |
||||
if (contentObject.getFloatElement() != null) { |
||||
this.setFloatElement(contentObject.getFloatElement()); |
||||
} |
||||
} |
||||
|
||||
public void copyWidget(ContentObject contentObject) { |
||||
if (contentObject.getWidget() != null) { |
||||
this.setWidget(contentObject.getWidget()); |
||||
} |
||||
} |
||||
|
||||
public void copyFormula(ContentObject contentObject) { |
||||
if (contentObject.getFormula() != null) { |
||||
this.setFormula(contentObject.getFormula()); |
||||
} |
||||
} |
||||
|
||||
public void copyCondition(ContentObject contentObject) { |
||||
if (contentObject.getCondition() != null) { |
||||
this.setCondition(contentObject.getCondition()); |
||||
} |
||||
} |
||||
|
||||
public void copySortExpression(ContentObject contentObject) { |
||||
if (contentObject.getSortExpression() != null) { |
||||
this.setSortExpression(contentObject.getSortExpression()); |
||||
} |
||||
} |
||||
|
||||
public void copyDBTableData(ContentObject contentObject) { |
||||
if (contentObject.getDbTableData() != null) { |
||||
this.setDbTableData(contentObject.getDbTableData()); |
||||
} |
||||
} |
||||
|
||||
public DBTableData getDbTableData() { |
||||
return dbTableData; |
||||
} |
||||
|
||||
public void setDbTableData(DBTableData dbTableData) { |
||||
this.dbTableData = dbTableData; |
||||
} |
||||
|
||||
public FormulaSortExpression getSortExpression() { |
||||
return sortExpression; |
||||
} |
||||
|
||||
public void setSortExpression(FormulaSortExpression sortExpression) { |
||||
this.sortExpression = sortExpression; |
||||
} |
||||
|
||||
public Condition getCondition() { |
||||
return condition; |
||||
} |
||||
|
||||
public void setCondition(Condition condition) { |
||||
this.condition = condition; |
||||
} |
||||
|
||||
public Formula getFormula() { |
||||
return formula; |
||||
} |
||||
|
||||
public void setFormula(Formula formula) { |
||||
this.formula = formula; |
||||
} |
||||
|
||||
public CellElement getCell() { |
||||
return cell; |
||||
} |
||||
|
||||
public void setCell(CellElement cell) { |
||||
this.cell = cell; |
||||
} |
||||
|
||||
public JavaScript getJs() { |
||||
return js; |
||||
} |
||||
|
||||
public void setJs(JavaScript js) { |
||||
this.js = js; |
||||
} |
||||
|
||||
public NameJavaScript getNameJavaScript() { |
||||
return nameJavaScript; |
||||
} |
||||
|
||||
public void setNameJavaScript(NameJavaScript nameJavaScript) { |
||||
this.nameJavaScript = nameJavaScript; |
||||
} |
||||
|
||||
public VanChartHtmlLabel getHtmlLabel() { |
||||
return htmlLabel; |
||||
} |
||||
|
||||
public void setHtmlLabel(VanChartHtmlLabel htmlLabel) { |
||||
this.htmlLabel = htmlLabel; |
||||
} |
||||
|
||||
public Widget getWidget() { |
||||
return widget; |
||||
} |
||||
|
||||
public void setWidget(Widget widget) { |
||||
this.widget = widget; |
||||
} |
||||
|
||||
public Listener getListener() { |
||||
return listener; |
||||
} |
||||
|
||||
public void setListener(Listener listener) { |
||||
this.listener = listener; |
||||
} |
||||
|
||||
public FloatElement getFloatElement() { |
||||
return floatElement; |
||||
} |
||||
|
||||
public void setFloatElement(FloatElement floatElement) { |
||||
this.floatElement = floatElement; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return AssistUtils.toString(this); |
||||
} |
||||
|
||||
public boolean isNameJSExist() { |
||||
return this.nameJavaScript != null; |
||||
} |
||||
} |
Loading…
Reference in new issue