13 changed files with 466 additions and 49 deletions
@ -0,0 +1,37 @@
|
||||
package com.fr.design.mod.impl.change.formula; |
||||
|
||||
import com.fr.design.mod.ContentChange; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.design.mod.bean.ChangeItem; |
||||
import com.fr.design.mod.impl.repalce.FormulaReplacer; |
||||
import com.fr.report.cell.cellattr.CellExpandAttr; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 扩展后排序公式 |
||||
* |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/6/2 |
||||
*/ |
||||
public class CellExpandAttrContentChange implements ContentChange<CellExpandAttr> { |
||||
|
||||
private final Map<ChangeItem, ContentReplacer<CellExpandAttr>> map; |
||||
|
||||
public CellExpandAttrContentChange() { |
||||
map = new HashMap<>(); |
||||
map.put(ChangeItem.WIDGET_NAME, FormulaReplacer.CellExpandAttr4WidgetNameContentReplacer); |
||||
map.put(ChangeItem.TABLE_DATA_NAME, FormulaReplacer.CellExpandAttr4TableDataNameContentReplacer); |
||||
} |
||||
|
||||
@Override |
||||
public String type() { |
||||
return CellExpandAttr.class.getName(); |
||||
} |
||||
|
||||
@Override |
||||
public Map<ChangeItem, ContentReplacer<CellExpandAttr>> changeInfo() { |
||||
return map; |
||||
} |
||||
} |
@ -0,0 +1,37 @@
|
||||
package com.fr.design.mod.impl.change.formula; |
||||
|
||||
import com.fr.data.condition.FormulaCondition; |
||||
import com.fr.design.mod.ContentChange; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.design.mod.bean.ChangeItem; |
||||
import com.fr.design.mod.impl.repalce.FormulaReplacer; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 公式条件 |
||||
* |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/6/2 |
||||
*/ |
||||
public class FormulaConditionContentChange implements ContentChange<FormulaCondition> { |
||||
|
||||
private final Map<ChangeItem, ContentReplacer<FormulaCondition>> map; |
||||
|
||||
public FormulaConditionContentChange() { |
||||
map = new HashMap<>(); |
||||
map.put(ChangeItem.WIDGET_NAME, FormulaReplacer.FormulaCondition4WidgetNameContentReplacer); |
||||
map.put(ChangeItem.TABLE_DATA_NAME, FormulaReplacer.FormulaCondition4TableDataNameContentReplacer); |
||||
} |
||||
|
||||
@Override |
||||
public String type() { |
||||
return FormulaCondition.class.getName(); |
||||
} |
||||
|
||||
@Override |
||||
public Map<ChangeItem, ContentReplacer<FormulaCondition>> changeInfo() { |
||||
return map; |
||||
} |
||||
} |
@ -0,0 +1,37 @@
|
||||
package com.fr.design.mod.impl.change.formula; |
||||
|
||||
import com.fr.data.impl.FormulaDictionary; |
||||
import com.fr.design.mod.ContentChange; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.design.mod.bean.ChangeItem; |
||||
import com.fr.design.mod.impl.repalce.FormulaReplacer; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 数据字典——公式 |
||||
* |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/6/2 |
||||
*/ |
||||
public class FormulaDictionaryContentChange implements ContentChange<FormulaDictionary> { |
||||
|
||||
private final Map<ChangeItem, ContentReplacer<FormulaDictionary>> map; |
||||
|
||||
public FormulaDictionaryContentChange() { |
||||
map = new HashMap<>(); |
||||
map.put(ChangeItem.WIDGET_NAME, FormulaReplacer.FormulaDictionary4WidgetNameContentReplacer); |
||||
map.put(ChangeItem.TABLE_DATA_NAME, FormulaReplacer.FormulaDictionary4TableDataNameContentReplacer); |
||||
} |
||||
|
||||
@Override |
||||
public String type() { |
||||
return FormulaDictionary.class.getName(); |
||||
} |
||||
|
||||
@Override |
||||
public Map<ChangeItem, ContentReplacer<FormulaDictionary>> changeInfo() { |
||||
return map; |
||||
} |
||||
} |
@ -0,0 +1,38 @@
|
||||
package com.fr.design.mod.impl.change.formula; |
||||
|
||||
import com.fr.base.headerfooter.FormulaHFElement; |
||||
import com.fr.design.mod.ContentChange; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.design.mod.bean.ChangeItem; |
||||
import com.fr.design.mod.impl.repalce.FormulaReplacer; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 页面/页脚——公式 |
||||
* |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/6/2 |
||||
*/ |
||||
|
||||
public class FormulaHFElementContentChange implements ContentChange<FormulaHFElement> { |
||||
|
||||
private final Map<ChangeItem, ContentReplacer<FormulaHFElement>> map; |
||||
|
||||
public FormulaHFElementContentChange() { |
||||
map = new HashMap<>(); |
||||
map.put(ChangeItem.WIDGET_NAME, FormulaReplacer.FormulaHFElement4WidgetNameContentReplacer); |
||||
map.put(ChangeItem.TABLE_DATA_NAME, FormulaReplacer.FormulaHFElement4TableDataNameContentReplacer); |
||||
} |
||||
|
||||
@Override |
||||
public String type() { |
||||
return FormulaHFElement.class.getName(); |
||||
} |
||||
|
||||
@Override |
||||
public Map<ChangeItem, ContentReplacer<FormulaHFElement>> changeInfo() { |
||||
return map; |
||||
} |
||||
} |
@ -0,0 +1,38 @@
|
||||
package com.fr.design.mod.impl.change.formula; |
||||
|
||||
import com.fr.base.present.FormulaPresent; |
||||
import com.fr.design.mod.ContentChange; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.design.mod.bean.ChangeItem; |
||||
import com.fr.design.mod.impl.repalce.FormulaReplacer; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 公式形态 |
||||
* |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/6/2 |
||||
*/ |
||||
|
||||
public class FormulaPresentContentChange implements ContentChange<FormulaPresent> { |
||||
|
||||
private final Map<ChangeItem, ContentReplacer<FormulaPresent>> map; |
||||
|
||||
public FormulaPresentContentChange() { |
||||
map = new HashMap<>(); |
||||
map.put(ChangeItem.WIDGET_NAME, FormulaReplacer.FormulaPresent4WidgetNameContentReplacer); |
||||
map.put(ChangeItem.TABLE_DATA_NAME, FormulaReplacer.FormulaPresent4TableDataNameContentReplacer); |
||||
} |
||||
|
||||
@Override |
||||
public String type() { |
||||
return FormulaPresent.class.getName(); |
||||
} |
||||
|
||||
@Override |
||||
public Map<ChangeItem, ContentReplacer<FormulaPresent>> changeInfo() { |
||||
return map; |
||||
} |
||||
} |
@ -0,0 +1,37 @@
|
||||
package com.fr.design.mod.impl.change.formula; |
||||
|
||||
import com.fr.design.mod.ContentChange; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.design.mod.bean.ChangeItem; |
||||
import com.fr.design.mod.impl.repalce.FormulaReplacer; |
||||
import com.fr.report.cell.cellattr.core.RichChar; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 富文本 |
||||
* |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/6/2 |
||||
*/ |
||||
public class RichCharContentChange implements ContentChange<RichChar> { |
||||
|
||||
private final Map<ChangeItem, ContentReplacer<RichChar>> map; |
||||
|
||||
public RichCharContentChange() { |
||||
map = new HashMap<>(); |
||||
map.put(ChangeItem.WIDGET_NAME, FormulaReplacer.RichChar4WidgetNameContentReplacer); |
||||
map.put(ChangeItem.TABLE_DATA_NAME, FormulaReplacer.RichChar4TableDataNameContentReplacer); |
||||
} |
||||
|
||||
@Override |
||||
public String type() { |
||||
return RichChar.class.getName(); |
||||
} |
||||
|
||||
@Override |
||||
public Map<ChangeItem, ContentReplacer<RichChar>> changeInfo() { |
||||
return map; |
||||
} |
||||
} |
@ -1,22 +0,0 @@
|
||||
package com.fr.design.mod.impl.repalce; |
||||
|
||||
import com.fr.base.Formula; |
||||
import com.fr.design.mod.ContentReplaceUtil; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.parser.FRFormulaTransformer; |
||||
|
||||
/** |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/5/28 |
||||
*/ |
||||
public class Formula4TableDataNameContentReplacer implements ContentReplacer<Formula> { |
||||
|
||||
@Override |
||||
public void replace(Formula formula, String oldName, String newName) { |
||||
FRFormulaTransformer frFormulaTransformer = new FRFormulaTransformer(); |
||||
frFormulaTransformer.addRenamedDataset(oldName, newName); |
||||
formula.setContent(ContentReplaceUtil.EQ_STRING + frFormulaTransformer.transform(formula.getPureContent())); |
||||
} |
||||
|
||||
} |
@ -1,21 +0,0 @@
|
||||
package com.fr.design.mod.impl.repalce; |
||||
|
||||
import com.fr.base.Formula; |
||||
import com.fr.design.mod.ContentReplaceUtil; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.parser.FRFormulaTransformer; |
||||
|
||||
/** |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/5/28 |
||||
*/ |
||||
public class Formula4WidgetNameContentReplacer implements ContentReplacer<Formula> { |
||||
|
||||
@Override |
||||
public void replace(Formula formula, String oldName, String newName) { |
||||
FRFormulaTransformer frFormulaTransformer = new FRFormulaTransformer(); |
||||
frFormulaTransformer.addRenamedWidget(oldName, newName); |
||||
formula.setContent(ContentReplaceUtil.EQ_STRING + frFormulaTransformer.transform(formula.getPureContent())); |
||||
} |
||||
} |
@ -0,0 +1,151 @@
|
||||
package com.fr.design.mod.impl.repalce; |
||||
|
||||
import com.fr.base.Formula; |
||||
import com.fr.base.headerfooter.FormulaHFElement; |
||||
import com.fr.base.present.FormulaPresent; |
||||
import com.fr.data.condition.FormulaCondition; |
||||
import com.fr.data.impl.FormulaDictionary; |
||||
import com.fr.design.mod.ContentReplaceUtil; |
||||
import com.fr.design.mod.ContentReplacer; |
||||
import com.fr.report.cell.cellattr.CellExpandAttr; |
||||
import com.fr.report.cell.cellattr.core.RichChar; |
||||
|
||||
/** |
||||
* 持有公式内容对象汇总 |
||||
* |
||||
* @author hades |
||||
* @version 10.0 |
||||
* Created by hades on 2021/6/2 |
||||
*/ |
||||
public class FormulaReplacer { |
||||
|
||||
/** |
||||
* 扩展后排序公式 |
||||
*/ |
||||
public static final ContentReplacer<CellExpandAttr> CellExpandAttr4TableDataNameContentReplacer = new ContentReplacer<CellExpandAttr>() { |
||||
@Override |
||||
public void replace(CellExpandAttr cellExpandAttr, String oldName, String newName) { |
||||
cellExpandAttr.setSortFormula(ContentReplaceUtil.replaceFormulaContent4TableDataName(cellExpandAttr.getSortFormula(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
public static final ContentReplacer<CellExpandAttr> CellExpandAttr4WidgetNameContentReplacer = new ContentReplacer<CellExpandAttr>() { |
||||
@Override |
||||
public void replace(CellExpandAttr cellExpandAttr, String oldName, String newName) { |
||||
cellExpandAttr.setSortFormula(ContentReplaceUtil.replaceFormulaContent4WidgetName(cellExpandAttr.getSortFormula(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
/** |
||||
* 典型单元格公式 |
||||
*/ |
||||
public static final ContentReplacer<Formula> Formula4TableDataNameContentReplacer = new ContentReplacer<Formula>() { |
||||
@Override |
||||
public void replace(Formula formula, String oldName, String newName) { |
||||
formula.setContent(ContentReplaceUtil.replaceFormulaContent4TableDataName(formula.getPureContent(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
|
||||
public static final ContentReplacer<Formula> Formula4WidgetNameContentReplacer = new ContentReplacer<Formula>() { |
||||
@Override |
||||
public void replace(Formula formula, String oldName, String newName) { |
||||
formula.setContent(ContentReplaceUtil.replaceFormulaContent4WidgetName(formula.getPureContent(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
/** |
||||
* 公式条件 |
||||
*/ |
||||
public static final ContentReplacer<FormulaCondition> FormulaCondition4TableDataNameContentReplacer = new ContentReplacer<FormulaCondition>() { |
||||
@Override |
||||
public void replace(FormulaCondition formulaCondition, String oldName, String newName) { |
||||
formulaCondition.setFormula(ContentReplaceUtil.replaceFormulaContent4TableDataName(formulaCondition.getFormula(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
public static final ContentReplacer<FormulaCondition> FormulaCondition4WidgetNameContentReplacer = new ContentReplacer<FormulaCondition>() { |
||||
@Override |
||||
public void replace(FormulaCondition formulaCondition, String oldName, String newName) { |
||||
formulaCondition.setFormula(ContentReplaceUtil.replaceFormulaContent4WidgetName(formulaCondition.getFormula(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
/** |
||||
* 数据字典——公式 |
||||
*/ |
||||
|
||||
public static final ContentReplacer<FormulaDictionary> FormulaDictionary4TableDataNameContentReplacer = new ContentReplacer<FormulaDictionary>() { |
||||
@Override |
||||
public void replace(FormulaDictionary formulaDictionary, String oldName, String newName) { |
||||
formulaDictionary.setExcuteFormula(ContentReplaceUtil.replaceFormulaContent4TableDataName(formulaDictionary.getExcuteFormula(), oldName, newName)); |
||||
formulaDictionary.setProduceFormula(ContentReplaceUtil.replaceFormulaContent4TableDataName(formulaDictionary.getProduceFormula(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
public static final ContentReplacer<FormulaDictionary> FormulaDictionary4WidgetNameContentReplacer = new ContentReplacer<FormulaDictionary>() { |
||||
@Override |
||||
public void replace(FormulaDictionary formulaDictionary, String oldName, String newName) { |
||||
formulaDictionary.setExcuteFormula(ContentReplaceUtil.replaceFormulaContent4WidgetName(formulaDictionary.getExcuteFormula(), oldName, newName)); |
||||
formulaDictionary.setProduceFormula(ContentReplaceUtil.replaceFormulaContent4WidgetName(formulaDictionary.getProduceFormula(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
/** |
||||
* 页面/页脚——公式 |
||||
*/ |
||||
|
||||
public static final ContentReplacer<FormulaHFElement> FormulaHFElement4TableDataNameContentReplacer = new ContentReplacer<FormulaHFElement>() { |
||||
@Override |
||||
public void replace(FormulaHFElement formulaHFElement, String oldName, String newName) { |
||||
formulaHFElement.setFormulaContent(ContentReplaceUtil.replaceFormulaContent4TableDataName(formulaHFElement.getFormulaContent(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
public static final ContentReplacer<FormulaHFElement> FormulaHFElement4WidgetNameContentReplacer = new ContentReplacer<FormulaHFElement>() { |
||||
@Override |
||||
public void replace(FormulaHFElement formulaHFElement, String oldName, String newName) { |
||||
formulaHFElement.setFormulaContent(ContentReplaceUtil.replaceFormulaContent4WidgetName(formulaHFElement.getFormulaContent(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
/** |
||||
* 公式形态 |
||||
*/ |
||||
|
||||
public static final ContentReplacer<FormulaPresent> FormulaPresent4TableDataNameContentReplacer = new ContentReplacer<FormulaPresent>() { |
||||
@Override |
||||
public void replace(FormulaPresent formulaPresent, String oldName, String newName) { |
||||
formulaPresent.setFormulaContent(ContentReplaceUtil.replaceFormulaContent4TableDataName(formulaPresent.getFormulaContent(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
public static final ContentReplacer<FormulaPresent> FormulaPresent4WidgetNameContentReplacer = new ContentReplacer<FormulaPresent>() { |
||||
@Override |
||||
public void replace(FormulaPresent formulaPresent, String oldName, String newName) { |
||||
formulaPresent.setFormulaContent(ContentReplaceUtil.replaceFormulaContent4WidgetName(formulaPresent.getFormulaContent(), oldName, newName)); |
||||
} |
||||
}; |
||||
|
||||
/** |
||||
* 富文本公式 |
||||
*/ |
||||
public static final ContentReplacer<RichChar> RichChar4TableDataNameContentReplacer = new ContentReplacer<RichChar>() { |
||||
@Override |
||||
public void replace(RichChar richChar, String oldName, String newName) { |
||||
if (richChar.isFormula()) { |
||||
richChar.setText(ContentReplaceUtil.replaceRichCharFormulaContent4TableDataName(richChar.getText(), oldName, newName)); |
||||
} |
||||
} |
||||
}; |
||||
|
||||
public static final ContentReplacer<RichChar> RichChar4WidgetNameContentReplacer = new ContentReplacer<RichChar>() { |
||||
@Override |
||||
public void replace(RichChar richChar, String oldName, String newName) { |
||||
if (richChar.isFormula()) { |
||||
richChar.setText(ContentReplaceUtil.replaceRichCharFormulaContent4WidgetName(richChar.getText(), oldName, newName)); |
||||
} |
||||
} |
||||
}; |
||||
|
||||
} |
Loading…
Reference in new issue