Browse Source

REPORT-75998 进入开发者调试&权限编辑模式逻辑处理、完善通配符、优化界面、修复勾选功能

feature/x
Destiny.Lin 2 years ago
parent
commit
2f8216cd83
  1. 8
      designer-base/src/main/java/com/fr/design/actions/AllowAuthorityEditAction.java
  2. 13
      designer-base/src/main/java/com/fr/design/module/DesignModuleFactory.java
  3. 8
      designer-form/src/main/java/com/fr/design/preview/DeveloperPreview.java
  4. 4
      designer-realize/src/main/java/com/fr/design/actions/replace/action/ShowSearchResultAction.java
  5. 26
      designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceMainDialog.java
  6. 5
      designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java
  7. 7
      designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java
  8. 1
      designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java
  9. 4
      designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java
  10. 77
      designer-realize/src/main/java/com/fr/design/actions/replace/utils/ShowValueUtils.java
  11. 2
      designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java

8
designer-base/src/main/java/com/fr/design/actions/AllowAuthorityEditAction.java

@ -4,11 +4,14 @@ import com.fr.base.svg.IconUtils;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.constants.UIConstants;
import com.fr.design.menu.KeySetUtils;
import com.fr.design.module.DesignModuleFactory;
import com.fr.design.roleAuthority.ReportAndFSManagePane;
import com.fr.design.roleAuthority.RolesAlreadyEditedPane;
import com.fr.design.designer.TargetComponent;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.mainframe.*;
import com.fr.invoke.Reflect;
import com.fr.log.FineLoggerFactory;
/**
* Author : daisy
@ -61,6 +64,11 @@ public class AllowAuthorityEditAction extends TemplateComponentAction {
DesignerContext.getDesignerFrame().refreshDottedLine();
EastRegionContainerPane.getInstance().replaceConfiguredRolesPane(RolesAlreadyEditedPane.getInstance());
EastRegionContainerPane.getInstance().removeParameterPane();
try {
Reflect.on(DesignModuleFactory.getReplacePane().newInstance()).call("close");
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
//画虚线
return true;

13
designer-base/src/main/java/com/fr/design/module/DesignModuleFactory.java

@ -50,6 +50,7 @@ public class DesignModuleFactory {
private Class ITReplaceAction;
private Class formParaDesigner;
private Class paraPropertyPane;
private Class replacePane;
private Class<? extends HierarchyTreePane> formHierarchyPaneCls;
private Class<? extends BaseWidgetPropertyPane> widgetPropertyPane;
private Class buttonDetailPaneClass;
@ -131,6 +132,18 @@ public class DesignModuleFactory {
return instance.ITReplaceAction;
}
/**
* 注册一下查找替换面板
* @param r
*/
public static void registerReplacePane(Class r){
instance.replacePane = r;
}
public static Class getReplacePane(){
return instance.replacePane;
}
public static void registerParaPropertyPaneClass(Class p) {
instance.paraPropertyPane = p;
}

8
designer-form/src/main/java/com/fr/design/preview/DeveloperPreview.java

@ -6,9 +6,12 @@ import com.fr.design.fun.impl.AbstractPreviewProvider;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.JForm;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.module.DesignModuleFactory;
import com.fr.design.worker.WorkerManager;
import com.fr.design.worker.save.CallbackSaveWorker;
import com.fr.general.web.ParameterConstants;
import com.fr.invoke.Reflect;
import com.fr.log.FineLoggerFactory;
import java.util.HashMap;
import java.util.Map;
@ -47,6 +50,11 @@ public class DeveloperPreview extends AbstractPreviewProvider {
@Override
public void onClick(JTemplate<?, ?> jt) {
super.onClick(jt);
try {
Reflect.on(DesignModuleFactory.getReplacePane().newInstance()).call("close");
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
SwingWorker worker = WorkerManager.getInstance().getWorker(jt.getRuntimeId());
if (worker instanceof CallbackSaveWorker) {
CallbackSaveWorker callbackSaveWorker = (CallbackSaveWorker) worker;

4
designer-realize/src/main/java/com/fr/design/actions/replace/action/ShowSearchResultAction.java

@ -75,7 +75,7 @@ public enum ShowSearchResultAction implements ShowValue {
} else {
Map<String, String> stringHashMap = info.getValue();
String content = stringHashMap.getOrDefault(objectContentKey, StringUtils.EMPTY);
if (content.contains(str) && StringUtils.isNotEmpty(content)) {
if (ShowValueUtils.contains(content,str) && StringUtils.isNotEmpty(content)) {
info.getContent().setShowStr(ShowValueUtils.getCommonString(content, str));
info.getContent().setOldShowStr(content);
info.getContent().setOperatorArray(ShowValueUtils.getStringStartAndEndIndex(content, str));
@ -416,6 +416,6 @@ public enum ShowSearchResultAction implements ShowValue {
* @return
*/
public boolean isTitleNameValid(Title title, String str){
return title != null && GeneralUtils.objectToString(title.getTextObject()).contains(str) && StringUtils.isNotEmpty(GeneralUtils.objectToString(title.getTextObject()));
return title != null && ShowValueUtils.contains(GeneralUtils.objectToString(title.getTextObject()),str) && StringUtils.isNotEmpty(GeneralUtils.objectToString(title.getTextObject()));
}
}

26
designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceMainDialog.java

@ -52,8 +52,9 @@ public class ITReplaceMainDialog extends UIDialog {
private ITReplaceWestPanel westPanel;
private boolean searchFlag;
private String searchStr;
private static boolean existed = false;
private ITReplaceMainDialog() {
public ITReplaceMainDialog() {
super(DesignerContext.getDesignerFrame());
init();
}
@ -66,6 +67,7 @@ public class ITReplaceMainDialog extends UIDialog {
initFrame();
fitScreen();
ITReplaceFlag = true;
existed = true;
}
/**
@ -309,6 +311,28 @@ public class ITReplaceMainDialog extends UIDialog {
}
}
/**
* 面板是否存在
* @return
*/
public static boolean isExisted() {
return existed;
}
public static void setExisted(boolean existed) {
ITReplaceMainDialog.existed = existed;
}
/**
* 进入权限编辑状态&开发者调试时关闭面板
*/
public static void close(){
if (isExisted()){
getInstance().dispose();
setExisted(false);
}
}
/**
* 检测结果是否合法
*/

5
designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java

@ -47,6 +47,7 @@ public class ITReplaceNorthPanel {
private static final int HEIGHT = 161;
private static final int BUTTON_WIDTH = 60;
private static final int BUTTON_GAP = 20;
private static final int MATCH_WIDTH = 70;
private int findLabelX, findLabelY, findLabelWidth, findLabelHeight;
@ -83,7 +84,7 @@ public class ITReplaceNorthPanel {
resultLabel = new UILabel();
String[] rangeItems = new String[]{Toolkit.i18nText("Fine-Design_Basic_Export_JS_Template_Current")};
String[] replaceInputItems = new String[]{""};
String[] replaceInputItems = new String[]{StringUtils.EMPTY};
findCombobox = new UIComboBox(findItems.toArray());
rangeCombobox = new UIComboBox(rangeItems);
findInputCombobox = new UIComboBox(findInputItems.toArray()) {
@ -247,7 +248,7 @@ public class ITReplaceNorthPanel {
private void setUIRadioButtonBounds(int x, int y, int templateWidth) {
matchX = x + templateWidth / 60;
matchY = y + 90;
matchWidth = templateWidth;
matchWidth = MATCH_WIDTH;
matchHeight = 25;
matchRadioButton.setBounds(matchX, matchY, matchWidth, matchHeight);
}

7
designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java

@ -18,7 +18,12 @@ public class ITReplaceSouthPanel {
public ITReplaceSouthPanel() {
itTableEditor = new ITTableEditor();
tableEditorPane = new ITTableEditorPane<>(itTableEditor);
RowSorter<ITTableEditor> sorter = new TableRowSorter<ITTableEditor>(itTableEditor);
RowSorter<ITTableEditor> sorter = new TableRowSorter<ITTableEditor>(itTableEditor){
@Override
public boolean isSortable(int column) {
return column != 0 || column != 6;
}
};
tableEditorPane.getEditTable().setRowSorter(sorter);
tableEditorPane.getEditTable().setSelectionBackground(new Color(217, 235, 254));
tableEditorPane.getEditTable().setRowHeight(tableEditorPane.getEditTable().getRowHeight() / 2 + tableEditorPane.getEditTable().getRowHeight());

1
designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java

@ -43,7 +43,6 @@ public class ITTableButton extends AbstractCellEditor implements TableCellEditor
if (StringUtils.isNotEmpty(GeneralUtils.objectToString(content.getTrlString()))) {
ITReplaceMainDialog.setITReplaceFlag(true);
HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().navigate(new TRL(GeneralUtils.objectToString(content.getTrlString())));
ReportComponentComposite composite = (ReportComponentComposite) HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getCurrentReportComponentPane();
}
ITReplaceMainDialog.setITReplaceFlag(false);
}

4
designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java

@ -71,7 +71,7 @@ public class ITTableEditorPane<T> extends BasicPane {
int row = ((JTable) e.getSource()).rowAtPoint(e.getPoint());
int col = ((JTable) e.getSource()).columnAtPoint(e.getPoint());
if (col == 0) {
ITContent content = (ITContent) editTable.getValueAt(row, 7);
ITContent content = (ITContent) editTable.getValueAt(row, 6);
if (content.isSelected()) {
content.setSelected(false);
editTable.setValueAt(content.isSelected(), row, col);
@ -187,7 +187,7 @@ public class ITTableEditorPane<T> extends BasicPane {
*/
public static void selectAllOrNull(Boolean value) {
for (int i = 0; i < getEditTable().getRowCount(); i++) {
((ITContent) (getEditTable().getValueAt(i, 7))).setSelected(value);
((ITContent) (getEditTable().getValueAt(i, 6))).setSelected(value);
}
}

77
designer-realize/src/main/java/com/fr/design/actions/replace/utils/ShowValueUtils.java

@ -1,9 +1,8 @@
package com.fr.design.actions.replace.utils;
import com.fr.design.actions.replace.info.Info;
import com.fr.design.actions.replace.ui.ITReplaceMainDialog;
import com.fr.stable.StringUtils;
import com.fr.stable.collections.combination.Pair;
@ -30,6 +29,20 @@ public class ShowValueUtils {
public static final String ANY_THING_REGEX = ".";
public static final String NUMBER_REGEX = "[0-9]";
public static final String ENGLISH_REGEX = "[a-zA-Z]";
private static List<String> specialCharList = new ArrayList<>();
static {
//正则特殊字符:? * () [] {} ^ $
//如果是? 并采用通配符 ,会自动转成“.” 所以 ? 不用处理
//$同理
specialCharList.add("*");
specialCharList.add("(");
specialCharList.add(")");
specialCharList.add("[");
specialCharList.add("]");
specialCharList.add("{");
specialCharList.add("}");
specialCharList.add("^");
}
/**
* 获取除内容外其他一次性展示所有的内容名称水印...
@ -42,9 +55,7 @@ public class ShowValueUtils {
if (StringUtils.isEmpty(searchStr)) {
return str;
} else {
return "<html><body><div><nobr>" +
replaceAll(str, searchStr, "<font color = 'rgb(61,153,249)'>" + searchStr + "</font>") +
"</nobr></div></body></html>";
return updateHighlight(str, searchStr);
}
}
@ -57,8 +68,12 @@ public class ShowValueUtils {
* @return 替换后的字符串
*/
public static String replaceAll(String str, String regex, String replacement) {
if (ITReplaceMainDialog.isMatched()) {
return str.replaceAll(changeRegex(regex), replacement);
} else {
return str.replace(regex, replacement);
}
}
/**
* 转换正则表达式
@ -70,6 +85,10 @@ public class ShowValueUtils {
regex = regex.replace(NUMBER, NUMBER_REGEX);
regex = regex.replace(ENGLISH, ENGLISH_REGEX);
regex = regex.replace(ANY_THING, ANY_THING_REGEX);
String change = "\\";
for (int i = 0 ; i < specialCharList.size() ; i ++){
regex = regex.replace(specialCharList.get(i),change + specialCharList.get(i));
}
return regex;
}
@ -101,18 +120,36 @@ public class ShowValueUtils {
return pairs;
}
/**
* 更新高亮状态
* 更新高亮
*
* @param info
* @param replaceStr
* @param str
* @param searchStr
* @return
*/
public static void updateHighlight(Info info, String replaceStr) {
String s = info.getInfoShowStr(info);
s = s.replace(info.getContent().getLastSearchStr(), "<font color = 'rgb(61,153,249)'>" + replaceStr + "</font>");
info.getContent().setShowStr(
"<html><body><div><nobr>" + s + "</nobr></div></body></html>"
);
public static String updateHighlight(String str, String searchStr) {
if (ITReplaceMainDialog.isMatched()) {
String result = str;
Pattern pattern = Pattern.compile(changeRegex(searchStr));
Matcher matcher = pattern.matcher(str);
String head = "<font color = 'rgb(61,153,249)'>";
String tail = "</font>";
int size = head.length() + tail.length();
int index = 0;
StringBuilder builder = new StringBuilder(str);
while (matcher.find()) {
builder.replace(matcher.start() + index, matcher.end() + index, head + matcher.group() + tail);
index += size;
}
return "<html><body><div><nobr>" +
builder.toString() +
"</nobr></div></body></html>";
} else {
return "<html><body><div><nobr>" +
replaceAll(str, searchStr, "<font color = 'rgb(61,153,249)'>" + searchStr + "</font>") +
"</nobr></div></body></html>";
}
}
@ -146,4 +183,16 @@ public class ShowValueUtils {
}
return failReturn;
}
public static boolean contains(String originStr, String matchStr) {
if (ITReplaceMainDialog.isMatched()) {
String str = changeRegex(matchStr);
Pattern pattern = Pattern.compile(str);
Matcher matcher = pattern.matcher(originStr);
return matcher.find();
} else {
return originStr.contains(matchStr);
}
}
}

2
designer-realize/src/main/java/com/fr/start/module/DesignerActivator.java

@ -32,6 +32,7 @@ import com.fr.design.actions.insert.flot.FormulaFloatAction;
import com.fr.design.actions.insert.flot.ImageFloatAction;
import com.fr.design.actions.insert.flot.TextBoxFloatAction;
import com.fr.design.actions.replace.ITReplaceAction;
import com.fr.design.actions.replace.ui.ITReplaceMainDialog;
import com.fr.design.bridge.DesignToolbarProvider;
import com.fr.design.constants.DesignerLaunchStatus;
import com.fr.design.env.DesignerWorkspaceLoader;
@ -466,6 +467,7 @@ public class DesignerActivator extends Activator implements Prepare {
DesignModuleFactory.registerNewFormActionClass(NewFormAction.class);
DesignModuleFactory.registerReplaceActionClass(ITReplaceAction.class);
DesignModuleFactory.registerReplacePane(ITReplaceMainDialog.class);
DesignModuleFactory.registerFormParaDesignerClass(FormParaDesigner.class);
DesignModuleFactory.registerParaPropertyPaneClass(ParameterPropertyPane.class);
DesignModuleFactory.registerFormHierarchyPaneClass(FormHierarchyTreePane.class);

Loading…
Cancel
Save