From 8d4fb7256fcfc88df9eeb3bf67eccef373f9f17a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levy=2EXie-=E8=A7=A3=E5=AE=89=E6=A3=AE?= Date: Fri, 20 Sep 2024 17:00:17 +0800 Subject: [PATCH 1/5] =?UTF-8?q?REPORT-133133=20&=20REPORT-134138=20fix:?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BF=9E=E6=8E=A5=E5=BC=82=E5=B8=B8=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E5=9C=BA=E6=99=AF=E5=BC=B9=E7=AA=97=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datapane/connect/ConnectionListPane.java | 76 ++++++++++++++----- 1 file changed, 57 insertions(+), 19 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index ed96b2697e..9879fd700c 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -13,6 +13,8 @@ import com.fr.design.ExtraDesignClassManager; import com.fr.design.data.MapCompareUtils; import com.fr.design.data.datapane.preview.ConnectionInfoBeanHelper; import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.FineJOptionPane; +import com.fr.design.editlock.EditLockUtils; import com.fr.design.fun.ConnectionProvider; import com.fr.design.gui.controlpane.JListControlPane; import com.fr.design.gui.controlpane.NameObjectCreator; @@ -25,18 +27,21 @@ import com.fr.general.NameObject; import com.fr.license.database.DBTypes; import com.fr.license.database.DataBaseTypePointManager; import com.fr.license.exception.DataBaseNotSupportedException; +import com.fr.locale.InterProviderFactory; import com.fr.log.FineLoggerFactory; +import com.fr.report.LockItem; import com.fr.stable.ArrayUtils; import com.fr.stable.Nameable; import com.fr.stable.StringUtils; import com.fr.stable.core.PropertyChangeAdapter; import com.fr.workspace.WorkContext; +import com.fr.workspace.engine.exception.DriverUnExistException; import com.fr.workspace.server.database.DataBaseTypeOperator; import com.fr.workspace.server.entity.connection.ConnectionBean; import com.fr.workspace.server.repository.connection.ConnectionRepository; import org.jetbrains.annotations.NotNull; -import javax.swing.SwingWorker; +import javax.swing.*; import java.awt.Window; import java.util.ArrayList; import java.util.Arrays; @@ -345,18 +350,23 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh private void alterConnections(List addConnections, List removedConnNames, List updateConnection) throws Exception { - try { - for (ConnectionInfoBean bean : addConnections) { + // 处理新增 connections + processConnections(addConnections, bean -> { ConnectionRepository.getInstance().add(bean); - } - for (ConnectionInfoBean bean : updateConnection) { + }, "add"); + + // 处理更新 connections + processConnections(updateConnection, bean -> { ConnectionRepository.getInstance().update(bean); - } - for (String name : removedConnNames) { + }, "update"); + + // 处理移除 connections + processConnections(removedConnNames, name -> { ConnectionRepository.getInstance().delete(new ConnectionInfoBean(name)); - } - // hades:远程环境时,由于时直接RPC调用远程修改,因此设计器本地配置需要失效 + }, "delete"); + + // 远程环境处理逻辑 if (!WorkContext.getCurrent().isLocal()) { EventDispatcher.fire(RemoteConfigEvent.EDIT, "ConnectionConfig"); } @@ -366,18 +376,46 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh } } + private void processConnections(List connections, ThrowingConsumer action, String actionType) throws Exception { + for (T item : connections) { + try { + action.accept(item); + } catch (Exception e) { + String errorConnectionName = (item instanceof ConnectionInfoBean) + ? ((ConnectionInfoBean) item).getConnectionName() + : item.toString(); + if (e instanceof DriverUnExistException) { + throw new DriverUnExistException(InterProviderFactory.getProvider().getLocText("Fine-Core_Data_Connection") + errorConnectionName + + InterProviderFactory.getProvider().getLocText("Fine-Core_Driver_Not_Found")); + } + throw e; + } + } + } + + @FunctionalInterface + interface ThrowingConsumer { + void accept(T t) throws Exception; + } public static void showDialog(Window parent) { - final Map connectionMap = ConnectionInfoBeanHelper.createConnectionMap(ConnectionRepository.getInstance().getAll()); - final ConnectionManagerPane connectionManagerPane = new ConnectionManagerPane() { - @Override - public void complete() { - populate(connectionMap); - } - }; - final BasicDialog connectionListDialog = connectionManagerPane.showLargeWindow(parent, null); - connectionListDialog.addDialogActionListener(new ConnectionListDialogActionAdapter(connectionManagerPane, connectionListDialog, connectionMap)); - connectionListDialog.setVisible(true); + try { + final Map connectionMap = ConnectionInfoBeanHelper.createConnectionMap(ConnectionRepository.getInstance().getAll()); + final ConnectionManagerPane connectionManagerPane = new ConnectionManagerPane() { + @Override + public void complete() { + populate(connectionMap); + } + }; + final BasicDialog connectionListDialog = connectionManagerPane.showLargeWindow(parent, null); + connectionListDialog.addDialogActionListener(new ConnectionListDialogActionAdapter(connectionManagerPane, connectionListDialog, connectionMap)); + connectionListDialog.setVisible(true); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + FineJOptionPane.showMessageDialog(null, Toolkit.i18nText("Fine-Design_Remote_Data_Error"), + Toolkit.i18nText("Fine-Design_Basic_Error"), JOptionPane.ERROR_MESSAGE); + EditLockUtils.unlock(LockItem.CONNECTION); + } } @Override From ac94ca4d12b90022825d39741dc8cb2820c694b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levy=2EXie-=E8=A7=A3=E5=AE=89=E6=A3=AE?= Date: Fri, 20 Sep 2024 17:00:46 +0800 Subject: [PATCH 2/5] =?UTF-8?q?REPORT-135142=20fix:NewUI=20=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E6=98=BE=E7=A4=BA=E6=AF=94=E4=BE=8B=E8=B0=83=E4=BC=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/van/chart/designer/component/VanChartHtmlLabelPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartHtmlLabelPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartHtmlLabelPane.java index 90213ea924..373fc412d9 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartHtmlLabelPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartHtmlLabelPane.java @@ -151,7 +151,7 @@ public class VanChartHtmlLabelPane extends JPanel { new Component[]{isCustomWidth, customWidth}, new Component[]{isCustomHeight, customHeight}, }; - return FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1, 1}); + return FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1.4, 0.6}); } private void checkWidth() { From dea308717c9f5309131a9d79bc84e5031a330e1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levy=2EXie-=E8=A7=A3=E5=AE=89=E6=A3=AE?= Date: Fri, 20 Sep 2024 17:02:53 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=97=A0jira=20=E4=BB=A3=E7=A0=81=E8=B4=A8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/data/datapane/connect/ConnectionListPane.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index 9879fd700c..eb98dd6b0a 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -41,7 +41,8 @@ import com.fr.workspace.server.entity.connection.ConnectionBean; import com.fr.workspace.server.repository.connection.ConnectionRepository; import org.jetbrains.annotations.NotNull; -import javax.swing.*; +import javax.swing.JOptionPane; +import javax.swing.SwingWorker; import java.awt.Window; import java.util.ArrayList; import java.util.Arrays; From 2fb49be88fb2a39158ee633edd4e43f71bf16e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levy=2EXie-=E8=A7=A3=E5=AE=89=E6=A3=AE?= Date: Fri, 20 Sep 2024 17:10:13 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=97=A0jira=20=E4=BB=A3=E7=A0=81=E8=B4=A8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/data/datapane/connect/ConnectionListPane.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index eb98dd6b0a..52bac8eaff 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -394,6 +394,9 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh } } + /** + * 抛异常的函数式接口 + */ @FunctionalInterface interface ThrowingConsumer { void accept(T t) throws Exception; From c71d151e5e01c5baac823d7eadce29f859cd9d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levy=2EXie-=E8=A7=A3=E5=AE=89=E6=A3=AE?= Date: Mon, 23 Sep 2024 15:53:30 +0800 Subject: [PATCH 5/5] =?UTF-8?q?Revert=20"REPORT-133133=20fix:=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BF=9E=E6=8E=A5=E5=BC=82=E5=B8=B8=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E5=BC=B9=E7=AA=97=E5=A4=84=E7=90=86"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 8d4fb725 --- .../datapane/connect/ConnectionListPane.java | 48 ++++--------------- 1 file changed, 8 insertions(+), 40 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index 52bac8eaff..3b0f601926 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -27,7 +27,6 @@ import com.fr.general.NameObject; import com.fr.license.database.DBTypes; import com.fr.license.database.DataBaseTypePointManager; import com.fr.license.exception.DataBaseNotSupportedException; -import com.fr.locale.InterProviderFactory; import com.fr.log.FineLoggerFactory; import com.fr.report.LockItem; import com.fr.stable.ArrayUtils; @@ -35,7 +34,6 @@ import com.fr.stable.Nameable; import com.fr.stable.StringUtils; import com.fr.stable.core.PropertyChangeAdapter; import com.fr.workspace.WorkContext; -import com.fr.workspace.engine.exception.DriverUnExistException; import com.fr.workspace.server.database.DataBaseTypeOperator; import com.fr.workspace.server.entity.connection.ConnectionBean; import com.fr.workspace.server.repository.connection.ConnectionRepository; @@ -351,23 +349,18 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh private void alterConnections(List addConnections, List removedConnNames, List updateConnection) throws Exception { + try { - // 处理新增 connections - processConnections(addConnections, bean -> { + for (ConnectionInfoBean bean : addConnections) { ConnectionRepository.getInstance().add(bean); - }, "add"); - - // 处理更新 connections - processConnections(updateConnection, bean -> { + } + for (ConnectionInfoBean bean : updateConnection) { ConnectionRepository.getInstance().update(bean); - }, "update"); - - // 处理移除 connections - processConnections(removedConnNames, name -> { + } + for (String name : removedConnNames) { ConnectionRepository.getInstance().delete(new ConnectionInfoBean(name)); - }, "delete"); - - // 远程环境处理逻辑 + } + // hades:远程环境时,由于时直接RPC调用远程修改,因此设计器本地配置需要失效 if (!WorkContext.getCurrent().isLocal()) { EventDispatcher.fire(RemoteConfigEvent.EDIT, "ConnectionConfig"); } @@ -377,31 +370,6 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh } } - private void processConnections(List connections, ThrowingConsumer action, String actionType) throws Exception { - for (T item : connections) { - try { - action.accept(item); - } catch (Exception e) { - String errorConnectionName = (item instanceof ConnectionInfoBean) - ? ((ConnectionInfoBean) item).getConnectionName() - : item.toString(); - if (e instanceof DriverUnExistException) { - throw new DriverUnExistException(InterProviderFactory.getProvider().getLocText("Fine-Core_Data_Connection") + errorConnectionName - + InterProviderFactory.getProvider().getLocText("Fine-Core_Driver_Not_Found")); - } - throw e; - } - } - } - - /** - * 抛异常的函数式接口 - */ - @FunctionalInterface - interface ThrowingConsumer { - void accept(T t) throws Exception; - } - public static void showDialog(Window parent) { try { final Map connectionMap = ConnectionInfoBeanHelper.createConnectionMap(ConnectionRepository.getInstance().getAll());