Destiny.Lin
2 years ago
10 changed files with 1129 additions and 0 deletions
@ -0,0 +1,25 @@
|
||||
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; |
||||
} |
||||
} |
@ -0,0 +1,396 @@
|
||||
package com.fr.design.actions.replace.action.content.formula; |
||||
|
||||
import com.fr.base.BaseFormula; |
||||
import com.fr.base.Formula; |
||||
import com.fr.base.Parameter; |
||||
import com.fr.base.StoreProcedureParameter; |
||||
import com.fr.base.iofile.attr.WatermarkAttr; |
||||
import com.fr.base.present.FormulaPresent; |
||||
import com.fr.data.condition.FormulaCondition; |
||||
import com.fr.data.core.Compare; |
||||
import com.fr.design.actions.replace.action.ShowValue; |
||||
import com.fr.design.actions.replace.info.DealWithInfoValue; |
||||
import com.fr.design.actions.replace.info.Info; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.actions.replace.utils.ShowValueUtils; |
||||
import com.fr.design.file.HistoryTemplateListCache; |
||||
import com.fr.js.SingleJavaScript; |
||||
import com.fr.main.impl.WorkBook; |
||||
import com.fr.report.cell.CellElement; |
||||
import com.fr.report.cell.cellattr.CellInsertPolicyAttr; |
||||
import com.fr.report.cell.cellattr.core.RichText; |
||||
import com.fr.report.cell.cellattr.core.group.DSColumn; |
||||
import com.fr.stable.FormulaProvider; |
||||
import com.fr.stable.ParameterProvider; |
||||
import com.fr.stable.StringUtils; |
||||
import javafx.util.Pair; |
||||
import org.jetbrains.annotations.Nullable; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
|
||||
/** |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-25 |
||||
*/ |
||||
public enum FormulaReplaceObject implements DealWithInfoValue { |
||||
/** |
||||
* Formula类型(最基础也是最常见) |
||||
*/ |
||||
FORMULA("Formula") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((Formula) o[0]).getContent())) { |
||||
map.put("content", ((Formula) o[0]).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((Formula) replaceObject).getContent(), findStr); |
||||
((Formula) replaceObject).setContent(ShowValueUtils.replaceAll(((Formula) replaceObject).getContent(), findStr, replaceStr)); |
||||
} |
||||
}, |
||||
/** |
||||
* FormulaCondition |
||||
*/ |
||||
FORMULA_CONDITION("FormulaCondition") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((FormulaCondition) o[0]).getFormula())) { |
||||
map.put("content", ((FormulaCondition) o[0]).getFormula()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
//更新上一次操作的信息
|
||||
info.updateOldStr(((FormulaCondition) replaceObject).getFormula(), findStr); |
||||
|
||||
((FormulaCondition) replaceObject).setFormula(ShowValueUtils.replaceAll(((FormulaCondition) replaceObject).getFormula(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* Compare |
||||
*/ |
||||
COMPARE("Compare") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((Formula) ((Compare) o[0]).getValue()).getContent())) { |
||||
map.put("content", ((Formula) ((Compare) o[0]).getValue()).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
if (((Compare) replaceObject).getValue() instanceof Formula) { |
||||
Formula formula = (Formula) ((Compare) replaceObject).getValue(); |
||||
info.updateOldStr(formula.getContent(), findStr); |
||||
|
||||
formula.setContent(ShowValueUtils.replaceAll(formula.getContent(), findStr, replaceStr)); |
||||
} |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* 富文本 |
||||
*/ |
||||
RICH_TEXT("RichText") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((RichText) ((CellElement) o[0]).getValue()).getContent())) { |
||||
map.put("content", ((RichText) ((CellElement) o[0]).getValue()).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
//todo 富文本公式处理
|
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* KV |
||||
*/ |
||||
KV("KV") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((Formula) ((com.fr.base.core.KV) o[0]).getValue()).getContent())) { |
||||
map.put("content", ((Formula) ((com.fr.base.core.KV) o[0]).getValue()).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((Formula) ((com.fr.base.core.KV) replaceObject).getValue()).getContent(), findStr); |
||||
|
||||
((Formula) ((com.fr.base.core.KV) replaceObject).getValue()).setContent(ShowValueUtils.replaceAll(((Formula) ((com.fr.base.core.KV) replaceObject).getValue()).getContent(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* 插入策略 |
||||
*/ |
||||
CELL_INSERT_POLICY_ATTR("CellInsertPolicyAttr") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((Formula) (((CellInsertPolicyAttr) o[0]).getDefaultInsertValue())).getContent())) { |
||||
map.put("content", ((Formula) (((CellInsertPolicyAttr) o[0]).getDefaultInsertValue())).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((Formula) (((CellInsertPolicyAttr) replaceObject).getDefaultInsertValue())).getContent(), findStr); |
||||
((Formula) (((CellInsertPolicyAttr) replaceObject).getDefaultInsertValue())).setContent(ShowValueUtils.replaceAll(((Formula) (((CellInsertPolicyAttr) replaceObject).getDefaultInsertValue())).getContent(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* present |
||||
*/ |
||||
PRESENT("Present") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((FormulaPresent) o[0]).getFormulaContent())) { |
||||
map.put("content", ((FormulaPresent) o[0]).getFormulaContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((FormulaPresent) replaceObject).getFormulaContent(), findStr); |
||||
|
||||
((FormulaPresent) replaceObject).setFormulaContent(ShowValueUtils.replaceAll(((FormulaPresent) replaceObject).getFormulaContent(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* SingleJavaScript |
||||
*/ |
||||
SINGLE_JAVA_SCRIPT("SingleJavaScript") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((SingleJavaScript) o[0]).getFileName())) { |
||||
map.put("content", ((SingleJavaScript) o[0]).getFileName()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((SingleJavaScript) replaceObject).getFileName(), findStr); |
||||
|
||||
((SingleJavaScript) replaceObject).setFileName(ShowValueUtils.replaceAll(((SingleJavaScript) replaceObject).getFileName(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* 参数 |
||||
*/ |
||||
PARAMETER_PROVIDER("ParameterProvider") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((Formula) (((ParameterProvider) o[0]).getValue())).getContent())) { |
||||
map.put("content", ((Formula) (((ParameterProvider) o[0]).getValue())).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((Formula) (((ParameterProvider) replaceObject).getValue())).getContent(), findStr); |
||||
|
||||
((Formula) (((ParameterProvider) replaceObject).getValue())).setContent(ShowValueUtils.replaceAll(((Formula) (((ParameterProvider) replaceObject).getValue())).getContent(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* FormulaProvider |
||||
*/ |
||||
FORMULA_PROVIDER("FormulaProvider") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((FormulaProvider) o[0]).getContent())) { |
||||
map.put("content", ((FormulaProvider) o[0]).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((FormulaProvider) replaceObject).getContent(), findStr); |
||||
|
||||
((FormulaProvider) replaceObject).setContent(ShowValueUtils.replaceAll(((FormulaProvider) replaceObject).getContent(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* 参数 |
||||
*/ |
||||
PARAMETER("Parameter") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((Formula) (((Parameter) o[0]).getValue())).getContent())) { |
||||
map.put("content", ((Formula) (((Parameter) o[0]).getValue())).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((Formula) (((Parameter) replaceObject).getValue())).getContent(), findStr); |
||||
|
||||
((Formula) (((Parameter) replaceObject).getValue())).setContent(ShowValueUtils.replaceAll(((Formula) (((Parameter) replaceObject).getValue())).getContent(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* 数据列 |
||||
*/ |
||||
DS_COLUMN("DSColumn") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((DSColumn) o[0]).getResult())) { |
||||
map.put("content", ((DSColumn) o[0]).getResult()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((DSColumn) replaceObject).getResult(), findStr); |
||||
|
||||
((DSColumn) replaceObject).setResult(ShowValueUtils.replaceAll(((DSColumn) replaceObject).getResult(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* 公式类型 |
||||
*/ |
||||
BASE_FORMULA("BaseFormula") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((BaseFormula) o[0]).getContent())) { |
||||
map.put("content", ((BaseFormula) o[0]).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((BaseFormula) replaceObject).getContent(), findStr); |
||||
|
||||
((BaseFormula) replaceObject).setContent(ShowValueUtils.replaceAll(((BaseFormula) replaceObject).getContent(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* 存储过程的参数 |
||||
*/ |
||||
STORE_PROCEDURE_PARAMETER("StoreProcedureParameter") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((Formula) ((StoreProcedureParameter) o[0]).getValue()).getContent())) { |
||||
map.put("content", ((Formula) ((StoreProcedureParameter) o[0]).getValue()).getContent()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
Object replaceObject = info.getContent().getReplaceObject(); |
||||
info.updateOldStr(((Formula) ((StoreProcedureParameter) replaceObject).getValue()).getContent(), findStr); |
||||
|
||||
((Formula) ((StoreProcedureParameter) replaceObject).getValue()).setContent(ShowValueUtils.replaceAll(((Formula) ((StoreProcedureParameter) replaceObject).getValue()).getContent(), findStr, replaceStr)); |
||||
} |
||||
|
||||
}, |
||||
/** |
||||
* WatermarkAttr水印 |
||||
*/ |
||||
WATER_MARK_ATTR("WatermarkAttr") { |
||||
@Override |
||||
public HashMap<String, String> getValue(Object... o) { |
||||
HashMap<String, String> map = new HashMap<>(); |
||||
if (!StringUtils.isEmpty(((WatermarkAttr) o[0]).getText())) { |
||||
map.put("content", ((WatermarkAttr) o[0]).getText()); |
||||
} |
||||
return map; |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Info info, String findStr, String replaceStr, ArrayList<Pair<Integer, Integer>> operatorArray) { |
||||
WorkBook workBook = (WorkBook) HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getTarget(); |
||||
WatermarkAttr watermarkAttr = (WatermarkAttr) info.getContent().getReplaceObject(); |
||||
info.updateOldStr(watermarkAttr.getText(), findStr); |
||||
watermarkAttr.setText(ShowValueUtils.replaceAll(watermarkAttr.getText(), findStr, replaceStr)); |
||||
workBook.addAttrMark(watermarkAttr); |
||||
} |
||||
}; |
||||
|
||||
|
||||
String name; |
||||
|
||||
FormulaReplaceObject(String name) { |
||||
this.name = name; |
||||
} |
||||
|
||||
/** |
||||
* 匹配 |
||||
* |
||||
* @param name |
||||
* @return |
||||
*/ |
||||
@Nullable |
||||
public static FormulaReplaceObject match(String name) { |
||||
FormulaReplaceObject[] values = FormulaReplaceObject.values(); |
||||
for (FormulaReplaceObject value : values) { |
||||
if (value.name.equals(name)) { |
||||
return value; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public String getInfoShowStr(Info info) { |
||||
return info.getContent().getOldShowStr(); |
||||
} |
||||
} |
@ -0,0 +1,46 @@
|
||||
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,37 @@
|
||||
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<>(); |
||||
} |
||||
} |
@ -0,0 +1,198 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.cell; |
||||
|
||||
import com.fr.base.Formula; |
||||
import com.fr.base.present.FormulaPresent; |
||||
import com.fr.design.actions.replace.action.content.cell.SearchCellAction; |
||||
import com.fr.design.actions.replace.action.content.formula.AbstractSearchFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.SearchFormula; |
||||
import com.fr.design.actions.replace.action.content.formula.highlight.condition.*; |
||||
import com.fr.design.actions.replace.action.content.formula.highlight.SearchHighlightFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.highlight.javascript.SearchJSHighlightAction; |
||||
import com.fr.design.actions.replace.info.CellInfo; |
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
|
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.design.mainframe.JTemplate; |
||||
import com.fr.js.NameJavaScriptGroup; |
||||
import com.fr.report.cell.CellElement; |
||||
import com.fr.report.cell.TemplateCellElement; |
||||
import com.fr.report.cell.cellattr.highlight.DefaultHighlight; |
||||
import com.fr.report.cell.cellattr.highlight.HighlightAction; |
||||
import com.fr.report.cell.cellattr.highlight.HighlightGroup; |
||||
import com.fr.report.core.sort.common.CellSortAttr; |
||||
import com.fr.report.core.sort.sortexpression.FormulaSortExpression; |
||||
import com.fr.report.core.sort.sortexpression.SortExpression; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
|
||||
/** |
||||
* 搜索单元格中的公式 |
||||
* |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-17 |
||||
*/ |
||||
public class SearchCellFormulaAction extends AbstractSearchCellFormulaAction { |
||||
|
||||
|
||||
public static HashMap<String, SearchCellFormula> cellType = new HashMap<>(); |
||||
|
||||
static { |
||||
cellType.put("DSColumn", new SearchDSColumnFormulaAction()); |
||||
cellType.put("Formula", new SearchCellFormulaTypeAction()); |
||||
cellType.put("RichText", new SearchRichFormulaAction()); |
||||
cellType.put("SubReport", new SearchSubReportFormulaAction()); |
||||
} |
||||
|
||||
public static HashMap<String, SearchConditionFormula> conditionHashMap = new HashMap<>(); |
||||
|
||||
static { |
||||
conditionHashMap.put("FormulaCondition", new SearchFormulaConditionAction()); |
||||
conditionHashMap.put("ObjectCondition", new SearchObjectConditionAction()); |
||||
conditionHashMap.put("ListCondition", new SearchListConditionAction()); |
||||
} |
||||
|
||||
public SearchCellFormulaAction(JTemplate jTemplate, ArrayList<FormulaInfo> fomulaInfos) { |
||||
searchFormulaFromCell(jTemplate, fomulaInfos); |
||||
} |
||||
|
||||
/** |
||||
* 从单元格中寻找公式 |
||||
* |
||||
* @param jTemplate 指定搜索模板 |
||||
* @param formulaInfos 指定添加信息的数组 |
||||
*/ |
||||
@Override |
||||
public void searchFormulaFromCell(JTemplate jTemplate, ArrayList<FormulaInfo> formulaInfos) { |
||||
SearchCellAction searchCellAction = new SearchCellAction(jTemplate); |
||||
if (searchCellAction.isCellInfosExist()) { |
||||
for (CellInfo cellInfo : searchCellAction.getCellInfos()) { |
||||
//根据单元格类型的不同来进行不同的操作
|
||||
searchFormulaFromCellInfo(cellInfo, formulaInfos); |
||||
|
||||
if (cellInfo.getContent().getReplaceObject() instanceof TemplateCellElement) { |
||||
//单元格属性-排序
|
||||
searchCellSortAttr4Formula(cellInfo, formulaInfos); |
||||
//单元格属性-形态
|
||||
searchCellPresent4Formula(cellInfo, formulaInfos); |
||||
//单元格属性-其他-插入策略
|
||||
searchCellInsertPolicy4Formula(cellInfo, formulaInfos); |
||||
//单元格条件属性-参数-公式
|
||||
searchCellConditionPara4Formula(cellInfo, formulaInfos); |
||||
//单元格条件属性-属性-参数
|
||||
searchCellHighlightPara4Formula(cellInfo, formulaInfos); |
||||
//单元格超链
|
||||
searchCellHyperLink4Formula(cellInfo, formulaInfos); |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
private void searchCellHyperLink4Formula(CellInfo cellInfo, ArrayList<FormulaInfo> formulaInfos) { |
||||
NameJavaScriptGroup nameJavaScriptGroup = ((CellElement) cellInfo.getContent().getReplaceObject()).getNameHyperlinkGroup(); |
||||
if (nameJavaScriptGroup != null) { |
||||
for (int i = 0; i < nameJavaScriptGroup.size(); i++) { |
||||
SearchJSHighlightAction action = new SearchJSHighlightAction(); |
||||
action.searchJSFormulaFromOther(formulaInfos, cellInfo.getContent(), nameJavaScriptGroup.getNameHyperlink(i).getJavaScript()); |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
private void searchCellHighlightPara4Formula(CellInfo cellInfo, ArrayList<FormulaInfo> formulaInfos) { |
||||
if (((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getHighlightGroup() != null) { |
||||
HighlightGroup highlightGroup = ((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getHighlightGroup(); |
||||
for (int i = 0; i < highlightGroup.size(); i++) { |
||||
for (int j = 0; j < ((DefaultHighlight) highlightGroup.getHighlight(i)).actionCount(); j++) { |
||||
HighlightAction highlightAction = ((DefaultHighlight) highlightGroup.getHighlight(i)).getHighlightAction(j); |
||||
//处理HighlightAction
|
||||
SearchHighlightFormulaAction searchHighlightAction = new SearchHighlightFormulaAction(); |
||||
ITContent newContent = cellInfo.getContent().copy(); |
||||
searchHighlightAction.dealWithHighlightAction(newContent, formulaInfos, highlightAction); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
private void searchCellConditionPara4Formula(CellInfo cellInfo, ArrayList<FormulaInfo> formulaInfos) { |
||||
if (((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getHighlightGroup() != null) { |
||||
HighlightGroup highlightGroup = ((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getHighlightGroup(); |
||||
for (int i = 0; i < highlightGroup.size(); i++) { |
||||
if (conditionHashMap.containsKey(((DefaultHighlight) highlightGroup.getHighlight(i)).getCondition().getClass().getSimpleName())) { |
||||
SearchConditionFormula searchCondition = conditionHashMap.get(((DefaultHighlight) highlightGroup.getHighlight(i)).getCondition().getClass().getSimpleName()); |
||||
ITContent newContent = cellInfo.getContent().copy(); |
||||
newContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Basic_Condition_Attributes"), |
||||
Toolkit.i18nText("Fine-Design_Basic_Formula")); |
||||
searchCondition.searchFormulaFromCondition(formulaInfos, newContent, ((DefaultHighlight) highlightGroup.getHighlight(i)).getCondition()); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
private void searchCellPresent4Formula(CellInfo cellInfo, ArrayList<FormulaInfo> formulaInfos) { |
||||
if (((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getPresent() != null |
||||
&& ((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getPresent() instanceof FormulaPresent) { |
||||
ITContent newContent = cellInfo.getContent().copy(); |
||||
newContent.setReplaceObject((((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getPresent())); |
||||
newContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Basic_Cell_Attributes"), |
||||
Toolkit.i18nText("Fine-Design_Report_Present")); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
} |
||||
} |
||||
|
||||
private void searchCellInsertPolicy4Formula(CellInfo cellInfo, ArrayList<FormulaInfo> formulaInfos) { |
||||
if (((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getCellInsertPolicyAttr() != null |
||||
&& ((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getCellInsertPolicyAttr().getDefaultInsertValue() instanceof Formula) { |
||||
ITContent newContent = cellInfo.getContent().copy(); |
||||
newContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Basic_Cell_Attributes"), |
||||
Toolkit.i18nText("Fine-Design_Report_Other"), |
||||
Toolkit.i18nText("Fine-Design_Basic_CellWrite_InsertRow_Policy")); |
||||
newContent.setReplaceObject(((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getCellInsertPolicyAttr()); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
} |
||||
} |
||||
|
||||
|
||||
private void searchCellSortAttr4Formula(CellInfo cellInfo, ArrayList<FormulaInfo> formulaInfos) { |
||||
if (((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getCellExpandAttr() != null) { |
||||
CellSortAttr sortAttr = ((TemplateCellElement) cellInfo.getContent().getReplaceObject()).getCellExpandAttr().getCellSortAttr(); |
||||
if (isSortAttrExist(sortAttr)) { |
||||
for (SortExpression sortExpression : sortAttr.getSortExpressions()) { |
||||
if (sortExpression instanceof FormulaSortExpression) { |
||||
ITContent newContent = cellInfo.getContent().copy(); |
||||
newContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Basic_Cell_Attributes"), |
||||
Toolkit.i18nText("Fine-Design_Report_Expand"), |
||||
Toolkit.i18nText("Fine-Design_Basic_Action_Sort") |
||||
); |
||||
newContent.setReplaceObject(sortExpression); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
} |
||||
|
||||
private boolean isSortAttrExist(CellSortAttr sortAttr) { |
||||
return sortAttr != null && sortAttr.getSortExpressions() != null; |
||||
} |
||||
|
||||
private void searchFormulaFromCellInfo(CellInfo cellInfo, ArrayList<FormulaInfo> formulaInfos) { |
||||
if (((CellElement) (cellInfo.getContent().getReplaceObject())).getValue() != null |
||||
&& cellType.containsKey(((CellElement) (cellInfo.getContent().getReplaceObject())).getValue().getClass().getSimpleName())) { |
||||
SearchCellFormula searchCellFormula = cellType.get(((CellElement) (cellInfo.getContent().getReplaceObject())).getValue().getClass().getSimpleName()); |
||||
searchCellFormula.searchFormulaFromCellType(formulaInfos, cellInfo.getContent()); |
||||
|
||||
} |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,27 @@
|
||||
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.base.ITContent; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.report.cell.CellElement; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* 查找公式时单元格格式如果是公式类型则操作此类 |
||||
* |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-18 |
||||
*/ |
||||
public class SearchCellFormulaTypeAction extends AbstractSearchCellFormulaAction { |
||||
|
||||
|
||||
@Override |
||||
public void searchFormulaFromCellType(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
ITContent newContent = content.copy(); |
||||
newContent.setReplaceObject(((CellElement)(content.getReplaceObject())).getValue()); |
||||
newContent.addOtherPos(Toolkit.i18nText("Fine-Design_Basic_Formula")); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
} |
||||
} |
@ -0,0 +1,117 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.cell; |
||||
|
||||
import com.fr.base.Formula; |
||||
import com.fr.base.Parameter; |
||||
import com.fr.design.actions.replace.action.content.formula.AbstractSearchFormulaAction; |
||||
import com.fr.design.actions.replace.action.content.formula.highlight.condition.SearchCommonConditionAction; |
||||
import com.fr.design.actions.replace.action.content.formula.highlight.condition.SearchConditionFormula; |
||||
import com.fr.design.actions.replace.action.content.formula.highlight.condition.SearchFormulaConditionAction; |
||||
import com.fr.design.actions.replace.action.content.formula.highlight.condition.SearchListConditionAction; |
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.general.data.Condition; |
||||
import com.fr.report.cell.cellattr.core.group.DSColumn; |
||||
import com.fr.report.core.sort.sortexpression.FormulaSortExpression; |
||||
import com.fr.report.core.sort.sortexpression.SortExpression; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
|
||||
/** |
||||
* 查找公式时单元格格式如果是数据列型则操作此类 |
||||
* |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-18 |
||||
*/ |
||||
public class SearchDSColumnFormulaAction extends AbstractSearchCellFormulaAction { |
||||
public static HashMap<String, SearchConditionFormula> conditionHashMap = new HashMap<>(); |
||||
static { |
||||
conditionHashMap.put("FormulaCondition",new SearchFormulaConditionAction()); |
||||
conditionHashMap.put("CommonCondition",new SearchCommonConditionAction()); |
||||
conditionHashMap.put("ListCondition",new SearchListConditionAction()); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void searchFormulaFromCellType(ArrayList<FormulaInfo> formulaInfos, ITContent itContent) { |
||||
if (itContent.getContentObject().getCell().getValue() instanceof DSColumn){ |
||||
if (((DSColumn) itContent.getContentObject().getCell().getValue()).getCondition() != null){ |
||||
ITContent content = itContent.copy(); |
||||
//数据列
|
||||
content.addOtherPos(Toolkit.i18nText("Fine-Design_Basic_DS_Column")); |
||||
DSColumn dsColumn = ((DSColumn) itContent.getContentObject().getCell().getValue()); |
||||
//过滤条件中的公式
|
||||
addFormulaInfos2ArrayFromCondition(content,dsColumn.getCondition(), formulaInfos); |
||||
//动态参数中的公式
|
||||
addFormulaInfos2ArrayFromPara(content,dsColumn,formulaInfos); |
||||
//高级-排序中的公式
|
||||
addFormulaInfos2ArrayFromSortExpression(content,dsColumn,formulaInfos); |
||||
//高级-显示值中的公式
|
||||
addFormulaInfos2ArrayFromResult(content,dsColumn,formulaInfos); |
||||
|
||||
} |
||||
|
||||
} |
||||
} |
||||
private void addFormulaInfos2ArrayFromResult(ITContent content, DSColumn dsColumn, ArrayList<FormulaInfo> formulaInfos) { |
||||
if (dsColumn.getResult().length() > 0 && dsColumn.getResult().charAt(0) == '='){ |
||||
ITContent newContent =content.copy(); |
||||
newContent.setReplaceObject(dsColumn); |
||||
//高级-显示值
|
||||
newContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Basic_Advanced"), |
||||
Toolkit.i18nText("Fine-Design_Basic_Display_Value") |
||||
); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
} |
||||
|
||||
} |
||||
|
||||
private void addFormulaInfos2ArrayFromSortExpression(ITContent content, DSColumn dsColumn, ArrayList<FormulaInfo> formulaInfos) { |
||||
if (dsColumn.getCellSortAttr() != null && dsColumn.getCellSortAttr().getSortExpressions() != null){ |
||||
for (SortExpression sortExpression : dsColumn.getCellSortAttr().getSortExpressions()){ |
||||
if (sortExpression instanceof FormulaSortExpression){ |
||||
ITContent newContent =content.copy(); |
||||
//高级-排序
|
||||
newContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Basic_Advanced"), |
||||
Toolkit.i18nText("Fine-Design_Basic_Action_Sort") |
||||
); |
||||
newContent.getContentObject().setSortExpression((FormulaSortExpression) sortExpression); |
||||
newContent.setReplaceObject(sortExpression); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
|
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
||||
private void addFormulaInfos2ArrayFromPara(ITContent content, DSColumn dsColumn, ArrayList<FormulaInfo> formulaInfos) { |
||||
for (Parameter parameter : dsColumn.getParameters()){ |
||||
if (parameter.getValue() instanceof Formula){ |
||||
ITContent newContent = content.copy(); |
||||
//动态参数注入
|
||||
newContent.addOtherPos(Toolkit.i18nText("Fine-Design_Report_TableData_Dynamic_Parameter_Setting")); |
||||
newContent.getContentObject().setFormula((Formula) parameter.getValue()); |
||||
newContent.setReplaceObject(parameter.getValue()); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
} |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 数据列过滤条件中的公式 |
||||
*/ |
||||
private void addFormulaInfos2ArrayFromCondition(ITContent content, Condition condition, ArrayList<FormulaInfo> formulaInfos){ |
||||
//这边condition有三种情况:FormulaCondition、CommonCondition、ListCondition,分别处理
|
||||
SearchConditionFormula searchCondition = conditionHashMap.get(condition.getClass().getSimpleName()); |
||||
ITContent newContent = content.copy(); |
||||
//过滤条件
|
||||
newContent.addOtherPos(Toolkit.i18nText("Fine-Design_Report_Filter_Conditions")); |
||||
searchCondition.searchFormulaFromCondition(formulaInfos, newContent,condition); |
||||
|
||||
} |
||||
} |
@ -0,0 +1,34 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.cell; |
||||
|
||||
import com.fr.design.actions.replace.action.content.formula.AbstractSearchFormulaAction; |
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.report.cell.CellElement; |
||||
import com.fr.report.cell.cellattr.core.RichText; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* 搜索单元格富文本类型的公式 |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-18 |
||||
*/ |
||||
public class SearchRichFormulaAction extends AbstractSearchCellFormulaAction { |
||||
@Override |
||||
public void searchFormulaFromCellType(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
//todo 富文本这边直接遍历RichChar来拿公式
|
||||
if (((RichText)((CellElement)(content.getReplaceObject())).getValue()).getContent().contains("${")){ |
||||
ITContent newContent =content.copy(); |
||||
newContent.setReplaceObject(((CellElement)(content.getReplaceObject())).getValue()); |
||||
newContent.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Chart_Rich_Text"), |
||||
Toolkit.i18nText("Fine-Design_Basic_Formula") |
||||
); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
} |
||||
|
||||
|
||||
} |
||||
} |
@ -0,0 +1,36 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.cell; |
||||
|
||||
import com.fr.base.Formula; |
||||
import com.fr.base.core.KV; |
||||
import com.fr.design.actions.replace.action.content.formula.AbstractSearchFormulaAction; |
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.report.cell.CellElement; |
||||
import com.fr.report.cell.cellattr.core.SubReport; |
||||
|
||||
import java.util.ArrayList; |
||||
|
||||
/** |
||||
* 搜索单元格子报表类型的公式 |
||||
* |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-08-18 |
||||
*/ |
||||
public class SearchSubReportFormulaAction extends AbstractSearchCellFormulaAction { |
||||
@Override |
||||
public void searchFormulaFromCellType(ArrayList<FormulaInfo> formulaInfos, ITContent content) { |
||||
KV[] kvs = ((SubReport) (((CellElement) content.getReplaceObject()).getValue())).getParameterKVS(); |
||||
for (KV kv : kvs) { |
||||
if (kv.getValue() instanceof Formula) { |
||||
ITContent newContent = content.copy(); |
||||
newContent.addOtherPos(Toolkit.i18nText("Fine-Design_Report_Sub_Report_Parameter")); |
||||
newContent.setReplaceObject(kv); |
||||
formulaInfos.add(new FormulaInfo(newContent)); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
} |
@ -0,0 +1,213 @@
|
||||
package com.fr.design.actions.replace.action.content.formula.chart; |
||||
|
||||
import com.fr.base.Formula; |
||||
import com.fr.chart.chartattr.Axis; |
||||
import com.fr.chart.chartattr.Chart; |
||||
import com.fr.chart.chartattr.ChartCollection; |
||||
import com.fr.chart.chartattr.Title; |
||||
import com.fr.chart.chartdata.NormalChartData; |
||||
import com.fr.design.actions.replace.info.FormulaInfo; |
||||
import com.fr.design.actions.replace.info.base.ITContent; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.plugin.chart.attr.axis.VanChartAlertValue; |
||||
import com.fr.plugin.chart.attr.axis.VanChartAxis; |
||||
import com.fr.plugin.chart.attr.axis.VanChartValueAxis; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* 图表类型获取公式汇总 |
||||
* @author Destiny.Lin |
||||
* @version 11.0 |
||||
* created by Destiny.Lin on 2022-09-12 |
||||
*/ |
||||
public class SearchChartCollectionFormulaAction { |
||||
|
||||
public SearchChartCollectionFormulaAction(ArrayList<FormulaInfo> formulaInfos, ITContent content, ChartCollection chartCollection) { |
||||
for (int i = 0 ; i < chartCollection.getChartCount() ;i ++){ |
||||
ITContent chartContent =content.copy(); |
||||
SearchChartPatternFormula(formulaInfos,chartContent,chartCollection.getChart(i)); |
||||
//数据-单元格数据-分类名&系列名&值
|
||||
SearchChartDataFormula(formulaInfos,content,chartCollection.getChart(i)); |
||||
} |
||||
|
||||
} |
||||
|
||||
private void SearchChartDataFormula(ArrayList<FormulaInfo> formulaInfos, ITContent content, Chart chart) { |
||||
if (chart.defaultChartData() instanceof NormalChartData){ |
||||
NormalChartData chartData = (NormalChartData) chart.defaultChartData(); |
||||
//todo
|
||||
} |
||||
} |
||||
|
||||
|
||||
private void SearchChartPatternFormula(ArrayList<FormulaInfo> formulaInfos, ITContent chartContent, Chart chart){ |
||||
//样式-标题
|
||||
SearchChartPatternFormulaFromTitle(formulaInfos, chartContent, chart); |
||||
|
||||
//样式-坐标轴-值定义&样式-坐标轴-轴标题
|
||||
SearchChartPatternFormulaFromAxisValue(formulaInfos, chartContent, chart); |
||||
|
||||
//样式-背景-警戒线
|
||||
SearchChartPatternFormulaFromAlertLine(formulaInfos,chartContent,chart); |
||||
} |
||||
|
||||
private void SearchChartPatternFormulaFromAlertLine(ArrayList<FormulaInfo> formulaInfos, ITContent chartContent, Chart chart) { |
||||
Axis xAxis = chart.getPlot().getxAxis(); |
||||
Axis yAxis = chart.getPlot().getyAxis(); |
||||
ITContent content = chartContent.copy(); |
||||
content.addOtherPos( |
||||
Toolkit.i18nText("Fine-Design_Chart_Pattern"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Background"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Plot_Region"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Alert_Line") |
||||
); |
||||
if (xAxis instanceof VanChartAxis){ |
||||
List<VanChartAlertValue> list = ((VanChartAxis) xAxis).getAlertValues(); |
||||
for (VanChartAlertValue alertValue : list){ |
||||
//警戒线设置
|
||||
dealAlertValue(formulaInfos,content,alertValue); |
||||
//提示文字
|
||||
dealAlertContent(formulaInfos,content,alertValue); |
||||
} |
||||
} |
||||
if (yAxis instanceof VanChartAxis){ |
||||
List<VanChartAlertValue> list = ((VanChartAxis) yAxis).getAlertValues(); |
||||
for (VanChartAlertValue alertValue : list){ |
||||
//警戒线设置
|
||||
dealAlertValue(formulaInfos,content,alertValue); |
||||
//提示文字
|
||||
dealAlertContent(formulaInfos,content,alertValue); |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
private void dealAlertContent(ArrayList<FormulaInfo> formulaInfos, ITContent content, VanChartAlertValue alertValue) { |
||||
if (alertValue.getAlertContentFormula() != null){ |
||||
ITContent alertContent = content.copy(); |
||||
alertContent.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Alert_Text")); |
||||
alertContent.setReplaceObject(alertValue.getAlertContentFormula()); |
||||
formulaInfos.add(new FormulaInfo(alertContent)); |
||||
} |
||||
} |
||||
|
||||
private void dealAlertValue(ArrayList<FormulaInfo> formulaInfos, ITContent content, VanChartAlertValue alertValue) { |
||||
if (alertValue.getAlertValueFormula() != null){ |
||||
ITContent valueContent = content.copy(); |
||||
valueContent.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Alert_Set")); |
||||
valueContent.setReplaceObject(alertValue.getAlertValueFormula()); |
||||
formulaInfos.add(new FormulaInfo(valueContent)); |
||||
} |
||||
} |
||||
|
||||
private void SearchChartPatternFormulaFromAxisValue(ArrayList<FormulaInfo> formulaInfos, ITContent chartContent, Chart chart) { |
||||
Axis xAxis = chart.getPlot().getxAxis(); |
||||
Axis yAxis = chart.getPlot().getyAxis(); |
||||
//样式-坐标轴-x轴
|
||||
if (xAxis!= null){ |
||||
//轴标题
|
||||
ITContent xAxisContent = chartContent.copy(); |
||||
xAxisContent.addOtherPos( |
||||
chart.getChartName(), |
||||
Toolkit.i18nText("Fine-Design_Chart_Pattern"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Axis"), |
||||
Toolkit.i18nText("Fine-Design_Chart_X_Axis") |
||||
); |
||||
dealTitle(formulaInfos, xAxisContent,xAxis.getTitle()); |
||||
dealChartValueDefine(formulaInfos, xAxisContent,xAxis); |
||||
} |
||||
|
||||
//样式-坐标轴-y轴-轴标题
|
||||
if (yAxis !=null){ |
||||
ITContent yAxisContent = chartContent.copy(); |
||||
yAxisContent.addOtherPos( |
||||
chart.getChartName(), |
||||
Toolkit.i18nText("Fine-Design_Chart_Pattern"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Axis"), |
||||
Toolkit.i18nText("Fine-Design_Chart_Y_Axis") |
||||
|
||||
); |
||||
dealTitle(formulaInfos,yAxisContent,yAxis.getTitle()); |
||||
dealChartValueDefine(formulaInfos,yAxisContent,yAxis); |
||||
} |
||||
|
||||
|
||||
|
||||
} |
||||
|
||||
private void dealChartValueDefine(ArrayList<FormulaInfo> formulaInfos, ITContent axisContent, Axis axis) { |
||||
ITContent content = axisContent.copy(); |
||||
content.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Value_Define")); |
||||
//自定义最大值最小值
|
||||
dealChartMaxAndMinValue(formulaInfos,content,axis); |
||||
//自定义主次刻度
|
||||
dealChartMainAndSecUnit(formulaInfos,content,axis); |
||||
//自定义对数底数
|
||||
dealChartLogBase(formulaInfos,content,axis); |
||||
|
||||
} |
||||
|
||||
private void dealChartLogBase(ArrayList<FormulaInfo> formulaInfos, ITContent content, Axis axis) { |
||||
if (axis instanceof VanChartValueAxis){ |
||||
if (axis.isLog() && ((VanChartValueAxis) axis).getLogBase() != null){ |
||||
ITContent logContent =content.copy(); |
||||
logContent.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Custom_LogBase_Value")); |
||||
logContent.setReplaceObject(((VanChartValueAxis) axis).getLogBase()); |
||||
formulaInfos.add(new FormulaInfo(logContent)); |
||||
} |
||||
} |
||||
} |
||||
|
||||
private void dealChartMainAndSecUnit(ArrayList<FormulaInfo> formulaInfos, ITContent content, Axis axis) { |
||||
if (axis.isCustomMainUnit() && axis.getMainUnit() != null){ |
||||
ITContent mainContent = content.copy(); |
||||
mainContent.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Custom_Main_Type")); |
||||
mainContent.setReplaceObject(axis.getMainUnit()); |
||||
formulaInfos.add(new FormulaInfo(mainContent)); |
||||
} |
||||
if (axis.isCustomSecUnit() && axis.getSecUnit() != null){ |
||||
ITContent secContent = content.copy(); |
||||
secContent.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Custom_Second_Type")); |
||||
secContent.setReplaceObject(axis.getSecUnit()); |
||||
formulaInfos.add(new FormulaInfo(secContent)); |
||||
} |
||||
} |
||||
|
||||
private void dealChartMaxAndMinValue(ArrayList<FormulaInfo> formulaInfos, ITContent axisContent, Axis axis) { |
||||
if (axis.isCustomMaxValue() && axis.getMaxValue() != null){ |
||||
ITContent maxContent = axisContent.copy(); |
||||
maxContent.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Custom_Max_Value")); |
||||
maxContent.setReplaceObject(axis.getMaxValue()); |
||||
formulaInfos.add(new FormulaInfo(maxContent)); |
||||
} |
||||
if (axis.isCustomMinValue() && axis.getMinValue() != null){ |
||||
ITContent minContent = axisContent.copy(); |
||||
minContent.addOtherPos(Toolkit.i18nText("Fine-Design_Chart_Custom_Min_Value")); |
||||
minContent.setReplaceObject(axis.getMinValue()); |
||||
formulaInfos.add(new FormulaInfo(minContent)); |
||||
} |
||||
} |
||||
|
||||
private void SearchChartPatternFormulaFromTitle(ArrayList<FormulaInfo> formulaInfos, ITContent chartContent, Chart chart){ |
||||
//样式-标题
|
||||
ITContent titleContent = chartContent.copy(); |
||||
titleContent.addOtherPos( |
||||
chart.getChartName(), |
||||
Toolkit.i18nText("Fine-Design_Chart_Pattern") |
||||
|
||||
); |
||||
dealTitle(formulaInfos,titleContent,chart.getTitle()); |
||||
} |
||||
|
||||
private void dealTitle(ArrayList<FormulaInfo> formulaInfos, ITContent chartContent, Title title) { |
||||
if (title !=null && title.getTextObject() instanceof Formula){ |
||||
ITContent content = chartContent.copy(); |
||||
content.addOtherPos(Toolkit.i18nText("Fine-Design_Form_Title")); |
||||
content.setReplaceObject(title.getTextObject()); |
||||
formulaInfos.add(new FormulaInfo(content)); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue