Browse Source

REPORT-80695 【模板全局级别查找替换二期】基础数据结构修改,适配多出来的替换后内容这一列

feature/x
Destiny.Lin 3 years ago
parent
commit
45b448ca41
  1. 29
      designer-realize/src/main/java/com/fr/design/actions/replace/info/CellInfo.java
  2. 28
      designer-realize/src/main/java/com/fr/design/actions/replace/info/ConnectionInfo.java
  3. 28
      designer-realize/src/main/java/com/fr/design/actions/replace/info/DSColumnInfo.java
  4. 14
      designer-realize/src/main/java/com/fr/design/actions/replace/info/FloatInfo.java
  5. 2
      designer-realize/src/main/java/com/fr/design/actions/replace/info/Info.java
  6. 1
      designer-realize/src/main/java/com/fr/design/actions/replace/info/JSInfo.java
  7. 31
      designer-realize/src/main/java/com/fr/design/actions/replace/info/ReplaceObject.java
  8. 7
      designer-realize/src/main/java/com/fr/design/actions/replace/info/WidgetInfo.java
  9. 31
      designer-realize/src/main/java/com/fr/design/actions/replace/info/base/ITContent.java

29
designer-realize/src/main/java/com/fr/design/actions/replace/info/CellInfo.java

@ -99,10 +99,13 @@ public class CellInfo implements Info {
if (title.getTextObject() instanceof Formula) {
Formula formula = (Formula) title.getTextObject();
updateOldStr(formula.getContent(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, formula.getContent(), findStr, replaceStr);
formula.setContent(ShowValueUtils.replaceAll(formula.getContent(), findStr, replaceStr));
} else {
updateOldStr(GeneralUtils.objectToString(title.getTextObject()), findStr);
title.setTextObject(ShowValueUtils.replaceAll(GeneralUtils.objectToString(title.getTextObject()), findStr, replaceStr));
String str = GeneralUtils.objectToString(title.getTextObject());
ShowValueUtils.updateAfterReplaceStr(info, str, findStr, replaceStr);
title.setTextObject(ShowValueUtils.replaceAll(str, findStr, replaceStr));
}
} else {
CellValueType cellValueType = CellValueType.match(cellElement.getValue().getClass().getSimpleName());
@ -110,7 +113,9 @@ public class CellInfo implements Info {
cellValueType.setValue(this, cellElement.getValue(), findStr, replaceStr);
} else {
updateOldStr(GeneralUtils.objectToString(cellElement.getValue()), findStr);
cellElement.setValue(ShowValueUtils.replaceAll(GeneralUtils.objectToString(cellElement.getValue()), findStr, replaceStr));
String str = GeneralUtils.objectToString(cellElement.getValue());
ShowValueUtils.updateAfterReplaceStr(info, str, findStr, replaceStr);
cellElement.setValue(ShowValueUtils.replaceAll(str, findStr, replaceStr));
}
}
@ -205,7 +210,9 @@ public class CellInfo implements Info {
@Override
public void setValue(CellInfo cellInfo, Object o, String findStr, String replaceStr) {
cellInfo.updateOldStr(GeneralUtils.objectToString(((DSColumn) o).getDSName()), findStr);
((DSColumn) o).setDSName(ShowValueUtils.replaceAll(((DSColumn) o).getDSName(), findStr, replaceStr));
String str = ((DSColumn) o).getDSName();
ShowValueUtils.updateAfterReplaceStr(cellInfo, str, findStr, replaceStr);
((DSColumn) o).setDSName(ShowValueUtils.replaceAll(str, findStr, replaceStr));
}
@Override
@ -226,7 +233,9 @@ public class CellInfo implements Info {
@Override
public void setValue(CellInfo cellInfo, Object o, String findStr, String replaceStr) {
cellInfo.updateOldStr(GeneralUtils.objectToString(o), findStr);
((Formula) o).setContent(ShowValueUtils.replaceAll(((Formula) o).getContent(), findStr, replaceStr));
String str = ((Formula) o).getContent();
ShowValueUtils.updateAfterReplaceStr(cellInfo, str, findStr, replaceStr);
((Formula) o).setContent(ShowValueUtils.replaceAll(str, findStr, replaceStr));
}
@Override
@ -243,8 +252,10 @@ public class CellInfo implements Info {
@Override
public void setValue(CellInfo cellInfo, Object o, String findStr, String replaceStr) {
LinkWorkBookTemplate workBookTemplate = (LinkWorkBookTemplate) ((SubReport) o).getPackee();
cellInfo.updateOldStr(workBookTemplate.getTemplatePath(), findStr);
workBookTemplate.setTemplatePath(ShowValueUtils.replaceAll(workBookTemplate.getTemplatePath(), findStr, replaceStr));
String str = workBookTemplate.getTemplatePath();
cellInfo.updateOldStr(str, findStr);
ShowValueUtils.updateAfterReplaceStr(cellInfo, str, findStr, replaceStr);
workBookTemplate.setTemplatePath(ShowValueUtils.replaceAll(str, findStr, replaceStr));
}
@Override
@ -267,8 +278,10 @@ public class CellInfo implements Info {
BIAS_TEXT_PAINTER("BiasTextPainter") {
@Override
public void setValue(CellInfo cellInfo, Object o, String findStr, String replaceStr) {
cellInfo.updateOldStr(((BiasTextPainter) o).getText(), findStr);
((BiasTextPainter) o).setText(ShowValueUtils.replaceAll(((BiasTextPainter) o).getText(), findStr, replaceStr));
String str = ((BiasTextPainter) o).getText();
cellInfo.updateOldStr(str, findStr);
ShowValueUtils.updateAfterReplaceStr(cellInfo, str, findStr, replaceStr);
((BiasTextPainter) o).setText(ShowValueUtils.replaceAll(str, findStr, replaceStr));
}
@Override

28
designer-realize/src/main/java/com/fr/design/actions/replace/info/ConnectionInfo.java

@ -0,0 +1,28 @@
package com.fr.design.actions.replace.info;
import com.fr.design.actions.replace.info.base.ITContent;
/**
* 存储数据连接
*
* @author Destiny.Lin
* @version 11.0
* created by Destiny.Lin on 2022-10-26
*/
public class ConnectionInfo implements Info {
private ITContent content;
public ConnectionInfo(ITContent content) {
this.content = content;
}
@Override
public ITContent getContent() {
return content;
}
public void setContent(ITContent content) {
this.content = content;
}
}

28
designer-realize/src/main/java/com/fr/design/actions/replace/info/DSColumnInfo.java

@ -0,0 +1,28 @@
package com.fr.design.actions.replace.info;
import com.fr.design.actions.replace.info.base.ITContent;
/**
* 存储数据列
*
* @author Destiny.Lin
* @version 11.0
* created by Destiny.Lin on 2022-10-26
*/
public class DSColumnInfo implements Info {
private ITContent content;
public DSColumnInfo(ITContent content) {
this.content = content;
}
@Override
public ITContent getContent() {
return content;
}
public void setContent(ITContent content) {
this.content = content;
}
}

14
designer-realize/src/main/java/com/fr/design/actions/replace/info/FloatInfo.java

@ -92,20 +92,26 @@ public class FloatInfo implements Info {
if (title.getTextObject() instanceof Formula) {
Formula formula = (Formula) title.getTextObject();
updateOldStr(formula.getContent(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, formula.getContent(), findStr, replaceStr);
formula.setContent(ShowValueUtils.replaceAll(formula.getContent(), findStr, replaceStr));
} else {
updateOldStr(GeneralUtils.objectToString(title.getTextObject()), findStr);
title.setTextObject(ShowValueUtils.replaceAll(GeneralUtils.objectToString(title.getTextObject()), findStr, replaceStr));
String str = GeneralUtils.objectToString(title.getTextObject());
ShowValueUtils.updateAfterReplaceStr(info, str, findStr, replaceStr);
updateOldStr(str, findStr);
title.setTextObject(ShowValueUtils.replaceAll(str, findStr, replaceStr));
}
} else {
FloatElement floatElement = ((FloatElement) this.getContent().getReplaceObject());
if (floatElement.getValue() instanceof Formula) {
Formula formula = (Formula) floatElement.getValue();
updateOldStr(formula.getContent(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, formula.getContent(), findStr, replaceStr);
formula.setContent(ShowValueUtils.replaceAll(formula.getContent(), findStr, replaceStr));
} else {
updateOldStr(GeneralUtils.objectToString(floatElement.getValue()), findStr);
floatElement.setValue(ShowValueUtils.replaceAll(GeneralUtils.objectToString(floatElement.getValue()), findStr, replaceStr));
String str = GeneralUtils.objectToString(floatElement.getValue());
ShowValueUtils.updateAfterReplaceStr(info, str, findStr, replaceStr);
updateOldStr(str, findStr);
floatElement.setValue(ShowValueUtils.replaceAll(str, findStr, replaceStr));
}
}
}

2
designer-realize/src/main/java/com/fr/design/actions/replace/info/Info.java

@ -40,6 +40,4 @@ public interface Info extends DealWithInfoValue {
//todo 完善所有类型的校验
return true;
}
;
}

1
designer-realize/src/main/java/com/fr/design/actions/replace/info/JSInfo.java

@ -1,6 +1,7 @@
package com.fr.design.actions.replace.info;
import com.fr.design.actions.replace.action.content.js.JSCheckType;
import com.fr.design.actions.replace.info.base.ITContent;
import com.fr.stable.AssistUtils;

31
designer-realize/src/main/java/com/fr/design/actions/replace/info/ReplaceObject.java

@ -2,6 +2,7 @@ package com.fr.design.actions.replace.info;
import com.fr.data.impl.DBTableData;
import com.fr.design.DesignModelAdapter;
import com.fr.design.actions.replace.action.content.js.JSCheckType;
import com.fr.design.actions.replace.utils.ShowValueUtils;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.datapane.TableDataTreePane;
@ -47,10 +48,12 @@ public enum ReplaceObject implements DealWithInfoValue {
if (((JSInfo) info).isContent()) {
JavaScriptImpl javaScript = (JavaScriptImpl) ((NameJavaScript) (info.getContent().getReplaceObject())).getJavaScript();
info.updateOldStr(javaScript.getContent(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, javaScript.getContent(), findStr, replaceStr);
javaScript.setContent(ShowValueUtils.replaceAll(javaScript.getContent(), findStr, replaceStr));
} else {
NameJavaScript javaScript = ((NameJavaScript) (info.getContent().getReplaceObject()));
info.updateOldStr(javaScript.getName(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, javaScript.getName(), findStr, replaceStr);
javaScript.setName(ShowValueUtils.replaceAll(javaScript.getName(), findStr, replaceStr));
}
}
@ -94,10 +97,12 @@ public enum ReplaceObject implements DealWithInfoValue {
if (((JSInfo) info).isContent()) {
JavaScriptImpl javaScript = (JavaScriptImpl) ((Listener) (info.getContent().getReplaceObject())).getAction();
info.updateOldStr(javaScript.getContent(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, javaScript.getContent(), findStr, replaceStr);
javaScript.setContent(ShowValueUtils.replaceAll(javaScript.getContent(), findStr, replaceStr));
} else {
Listener listener = ((Listener) ((info.getContent().getReplaceObject())));
info.updateOldStr(listener.getName(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, listener.getName(), findStr, replaceStr);
listener.setName(ShowValueUtils.replaceAll(listener.getName(), findStr, replaceStr));
}
}
@ -141,6 +146,7 @@ public enum ReplaceObject implements DealWithInfoValue {
VanChartHtmlLabel htmlLabel = ((VanChartHtmlLabel) (info.getContent().getReplaceObject()));
StringBuilder stringBuilder = new StringBuilder(htmlLabel.getCustomText());
info.updateOldStr(htmlLabel.getCustomText(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, htmlLabel.getCustomText(), findStr, replaceStr);
htmlLabel.setCustomText(ShowValueUtils.replaceAll(htmlLabel.getCustomText(), findStr, replaceStr));
}
}
@ -175,6 +181,7 @@ public enum ReplaceObject implements DealWithInfoValue {
public void setValue(Info info, String findStr, String replaceStr, List<Pair<Integer, Integer>> operatorArray) {
JavaScriptImpl javaScript = (JavaScriptImpl) (info.getContent().getReplaceObject());
info.updateOldStr(javaScript.getContent(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, javaScript.getContent(), findStr, replaceStr);
javaScript.setContent(ShowValueUtils.replaceAll(javaScript.getContent(), findStr, replaceStr));
}
@ -209,6 +216,7 @@ public enum ReplaceObject implements DealWithInfoValue {
String jsName = GeneralUtils.objectToString(info.getContent().getReplaceObject());
for (int i = 0, len = jsImports.size(); i < len; i++) {
if (StringUtils.equals(jsImports.get(i), jsName)) {
ShowValueUtils.updateAfterReplaceStr(info, jsName, findStr, replaceStr);
jsImports.set(i, ShowValueUtils.replaceAll(jsName, findStr, replaceStr));
}
}
@ -234,22 +242,23 @@ public enum ReplaceObject implements DealWithInfoValue {
*/
DB_TABLE_DATA("DBTableData") {
@Override
boolean check (Info info){
boolean check(Info info) {
DBTableData dbTableData = (DBTableData) info.getContent().getReplaceObject();
return StringUtils.equals(dbTableData.getQuery(), info.getContent().getOldShowStr());
}
@Override
public Map<String, String> getValue (Object...o){
public Map<String, String> getValue(Object... o) {
HashMap<String, String> map = new HashMap<>();
addValue2Map(contentKey, ((DBTableData) o[0]).getQuery(), map);
return map;
}
@Override
public void setValue (Info info, String findStr, String replaceStr, List < Pair < Integer, Integer >> operatorArray){
public void setValue(Info info, String findStr, String replaceStr, List<Pair<Integer, Integer>> operatorArray) {
DBTableData dbTableData = (DBTableData) info.getContent().getReplaceObject();
info.updateOldStr(dbTableData.getQuery(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, dbTableData.getQuery(), findStr, replaceStr);
dbTableData.setQuery(ShowValueUtils.replaceAll(dbTableData.getQuery(), findStr, replaceStr));
//清除缓存
DesignTableDataManager.removeSelectedColumnNames(dbTableData.getName());
@ -258,7 +267,7 @@ public enum ReplaceObject implements DealWithInfoValue {
}
@Override
public String getInfoShowStr (Info info){
public String getInfoShowStr(Info info) {
return info.getInfoShowStr(info);
}
};
@ -304,4 +313,18 @@ public enum ReplaceObject implements DealWithInfoValue {
abstract boolean check(Info info);
/**
* 修改会引入新对象的放入这里检查
*
* @param info
* @return
*/
public boolean checkQuote(Info info) {
JSCheckType o = JSCheckType.match(info.getContent().getTag());
if (o != null) {
return o.check(info);
}
return true;
}
}

7
designer-realize/src/main/java/com/fr/design/actions/replace/info/WidgetInfo.java

@ -66,10 +66,13 @@ public class WidgetInfo implements Info, DealWithInfoValue {
}
} else {
if (isWaterMark()) {
updateOldStr(((WaterMark) widget).getWaterMark(), findStr);
((WaterMark) widget).setWaterMark(ShowValueUtils.replaceAll(((WaterMark) widget).getWaterMark(), findStr, replaceStr));
String str = ((WaterMark) widget).getWaterMark();
updateOldStr(str, findStr);
ShowValueUtils.updateAfterReplaceStr(info, str, findStr, replaceStr);
((WaterMark) widget).setWaterMark(ShowValueUtils.replaceAll(str, findStr, replaceStr));
} else {
updateOldStr(widget.getWidgetName(), findStr);
ShowValueUtils.updateAfterReplaceStr(info, widget.getWidgetName(), findStr, replaceStr);
widget.setWidgetName(ShowValueUtils.replaceAll(widget.getWidgetName(), findStr, replaceStr));
}
}

31
designer-realize/src/main/java/com/fr/design/actions/replace/info/base/ITContent.java

@ -77,6 +77,16 @@ public class ITContent implements Cloneable {
*/
private int tag = -1;
/**
* 替换后内容
*/
private String afterReplaceStr;
/**
* 是否替换过
*/
private boolean replaced = false;
public ITContent() {
this.sheetID = StringUtils.EMPTY;
this.sheetName = StringUtils.EMPTY;
@ -92,6 +102,7 @@ public class ITContent implements Cloneable {
this.operatorArray = new ArrayList<>();
this.holdObject = new Object();
this.templatePath = StringUtils.EMPTY;
this.afterReplaceStr = StringUtils.EMPTY;
}
@ -102,7 +113,7 @@ public class ITContent implements Cloneable {
*/
public static ITContent copy(ITContent content) {
ITContent result = new ITContent();
if (content != null){
if (content != null) {
result.setSheetID(content.getSheetID());
result.setSheetName(content.getSheetName());
result.setTemplateName(content.getTemplateName());
@ -120,6 +131,8 @@ public class ITContent implements Cloneable {
result.setHoldObject(content.getHoldObject());
result.setTag(content.getTag());
result.setTemplatePath(content.getTemplatePath());
result.setAfterReplaceStr(content.getAfterReplaceStr());
result.setReplaced(content.isReplaced());
}
return result;
}
@ -216,6 +229,22 @@ public class ITContent implements Cloneable {
this.templatePath = templatePath;
}
public String getAfterReplaceStr() {
return afterReplaceStr;
}
public void setAfterReplaceStr(String afterReplaceStr) {
this.afterReplaceStr = afterReplaceStr;
}
public boolean isReplaced() {
return replaced;
}
public void setReplaced(boolean replaced) {
this.replaced = replaced;
}
/**
* 添加位置信息
*

Loading…
Cancel
Save