From 188c446450aef515c386bee7db08f2c3589d021b Mon Sep 17 00:00:00 2001 From: "Bruce.Deng" Date: Fri, 4 Jun 2021 09:29:47 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-52525=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E6=9F=A5=E8=AF=A2=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=8D=E5=88=B6=E4=BC=A0=E5=8F=82=E5=90=8E?= =?UTF-8?q?sql=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../preview/sql/PreviewPerformedSqlPane.java | 31 +++++++++++++------ .../design/dialog/link/MessageWithLink.java | 5 +-- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/sql/PreviewPerformedSqlPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/sql/PreviewPerformedSqlPane.java index f0ed78c5a..2800e6f75 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/sql/PreviewPerformedSqlPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/sql/PreviewPerformedSqlPane.java @@ -16,6 +16,9 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; import com.fr.design.parameter.ParameterInputPane; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.CloudCenter; +import com.fr.general.GeneralContext; +import com.fr.log.FineLoggerFactory; import com.fr.plugin.injectable.PluginModule; import com.fr.script.Calculator; import com.fr.stable.ArrayUtils; @@ -43,10 +46,10 @@ import java.awt.Frame; import java.awt.datatransfer.StringSelection; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -71,11 +74,17 @@ public class PreviewPerformedSqlPane extends JDialog implements ActionListener { if (isShowSpecialCharSqlPane(selectedSpecialCharIndex)) { imageLabel = new UILabel(UIManager.getIcon("OptionPane.warningIcon")); - MessageWithLink message = new MessageWithLink(Toolkit.i18nText("Fine-Design_Basic_Preview_Special_Char_Sql_Front_Message"), Toolkit.i18nText("Fine-Design_Basic_Sql_Injection_Prevention"), "https://help.fanruan.com/finereport/doc-view-2219.html", Toolkit.i18nText("Fine-Design_Basic_Preview_Special_Char_Sql_Back_Message")); messagePanel = new JPanel(); messagePanel.setLayout(FRGUIPaneFactory.createBorderLayout()); messagePanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 0)); - messagePanel.add(message); + // 日韩取消超链,直接显示文字 + if (isNotShowLink()) { + JLabel label = new JLabel(Toolkit.i18nText("Fine-Design_Basic_Preview_Performed_Sql_Message") + Toolkit.i18nText("Fine-Design_Basic_Sql_Injection_Prevention") + Toolkit.i18nText("Fine-Design_Basic_Preview_Special_Char_Sql_Back_Message")); + messagePanel.add(label); + } else { + MessageWithLink message = new MessageWithLink(Toolkit.i18nText("Fine-Design_Basic_Preview_Special_Char_Sql_Front_Message"), Toolkit.i18nText("Fine-Design_Basic_Sql_Injection_Prevention"), CloudCenter.getInstance().acquireConf(Toolkit.i18nText("Fine-Design_Basic_Sql_Injection_Prevention_Help"), "https://help.fanruan.com/finereport/doc-view-2219.html"), Toolkit.i18nText("Fine-Design_Basic_Preview_Special_Char_Sql_Back_Message")); + messagePanel.add(message); + } // 提示图标 JPanel tipPanel = FRGUIPaneFactory.createBorderLayout_L_Pane(); UILabel tipLabel = new UILabel(UIManager.getIcon("OptionPane.tipIcon")); @@ -114,7 +123,7 @@ public class PreviewPerformedSqlPane extends JDialog implements ActionListener { try { highLighter.addHighlight(specialCharIndex[0], specialCharIndex[1], p); } catch (BadLocationException e) { - e.printStackTrace(); + FineLoggerFactory.getLogger().error(e.getMessage(), e); } } } @@ -139,12 +148,16 @@ public class PreviewPerformedSqlPane extends JDialog implements ActionListener { GUICoreUtils.centerWindow(this); } + private boolean isNotShowLink() { + return GeneralContext.getLocale().equals(Locale.JAPAN) || GeneralContext.getLocale().equals(Locale.KOREA); + } + public static void previewPerformedSql(DBTableData tableData) { Calculator calculator = Calculator.createCalculator(); //参数 ParameterProvider[] parameters = DataOperator.getInstance().getTableDataParameters(tableData); if (ArrayUtils.isEmpty(parameters)) { - parameters = tableData.getParameters(Calculator.createCalculator()); + parameters = tableData.getParameters(calculator); } Map parameterMap = new HashMap<>(); if (needInputParams(parameters)) { @@ -187,7 +200,7 @@ public class PreviewPerformedSqlPane extends JDialog implements ActionListener { } String oldSql = ParameterHelper.analyzeCurrentContextTableData4Templatee(tableData.getQuery(), paras); sql = processExtraSQL(paras, oldSql, calculator, tableDataProviders); - if (oldSql.length() != sql.length()) { + if (!StringUtils.equals(oldSql, sql)) { highlight = false; } } @@ -209,12 +222,12 @@ public class PreviewPerformedSqlPane extends JDialog implements ActionListener { } private static Parameter[] processParameters(DBTableData tableData, Calculator calculator) { - Collection parameters = tableData.getParameters(); - if (parameters.size() == 0) { + ParameterProvider[] parameters = tableData.getParameters(); + if (parameters == null || parameters.length == 0) { tableData.setParameters(ParameterHelper.analyze4Parameters(tableData.getQuery(), false)); return new Parameter[0]; } - return Parameter.providers2Parameter(Calculator.processParameters(calculator, parameters.toArray(new ParameterProvider[parameters.size()]))); + return Parameter.providers2Parameter(Calculator.processParameters(calculator, parameters)); } private static String processExtraSQL(Parameter[] ps, String sql, Calculator ca, Set tableDataProviders) { diff --git a/designer-base/src/main/java/com/fr/design/dialog/link/MessageWithLink.java b/designer-base/src/main/java/com/fr/design/dialog/link/MessageWithLink.java index 2541a1b63..f73ec77df 100644 --- a/designer-base/src/main/java/com/fr/design/dialog/link/MessageWithLink.java +++ b/designer-base/src/main/java/com/fr/design/dialog/link/MessageWithLink.java @@ -41,10 +41,7 @@ public class MessageWithLink extends JEditorPane { } public MessageWithLink(String message, String linkName, String link, Color color, Font font) { - super("text/html", "" + message + "" + linkName + "" + ""); - initListener(link); - setEditable(false); - setBorder(null); + this(message, linkName, link, StringUtils.EMPTY, color, font); } public MessageWithLink(String frontMessage, String linkName, String link, String backMessage, Color color, Font font) {