From df64e6e5c93d54904992099666fb57b584041113 Mon Sep 17 00:00:00 2001 From: hades Date: Tue, 16 Jun 2020 17:01:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-33575=20=E8=BF=9C=E7=A8=8B=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=90=AF=E7=94=A8https=E7=9A=84=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=EF=BC=8C=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=85=B3=E6=8E=89=E4=B9=8B?= =?UTF-8?q?=E5=90=8E=E6=B2=A1=E6=9C=89=E8=B7=B3=E5=87=BA=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=9B=AE=E5=BD=95=E7=9A=84=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=20&&=20REPORT-33454=20=E5=88=87=E6=8D=A2=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E6=88=90=E5=8A=9F=EF=BC=8C=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E5=88=87=E6=8D=A2=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/socketio/DesignerSocketIO.java | 54 +++++++++++++------ .../fr/design/widget/CellWidgetCardPane.java | 3 ++ 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java index 79061dbab..010f9d119 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java @@ -2,13 +2,16 @@ package com.fr.design.mainframe.socketio; import com.fr.config.RemoteConfigEvent; import com.fr.decision.webservice.utils.DecisionServiceConstants; +import com.fr.design.DesignerEnvManager; import com.fr.design.EnvChangeEntrance; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.loghandler.DesignerLogger; import com.fr.design.ui.util.UIUtil; +import com.fr.event.Event; import com.fr.event.EventDispatcher; +import com.fr.event.Listener; import com.fr.log.FineLoggerFactory; import com.fr.report.RemoteDesignConstants; import com.fr.serialization.SerializerHelper; @@ -16,6 +19,7 @@ import com.fr.stable.ArrayUtils; import com.fr.third.apache.log4j.spi.LoggingEvent; import com.fr.workspace.WorkContext; import com.fr.workspace.Workspace; +import com.fr.workspace.WorkspaceEvent; import com.fr.workspace.base.WorkspaceConstants; import com.fr.workspace.connect.WorkspaceConnection; import com.fr.workspace.server.socket.SocketInfoOperator; @@ -30,6 +34,20 @@ import java.net.URL; public class DesignerSocketIO { + + static { + EventDispatcher.listen(WorkspaceEvent.LostConnect, new Listener() { + @Override + public void on(Event event, Workspace param) { + // 远程设计websocket不支持wss 所以断开无法提醒 + // 使用远程设计的心跳断开来提醒断开 + if (DesignerEnvManager.getEnvManager().isHttps()) { + showConnectionLost(); + } + } + }); + } + enum Status { Connected, Disconnected, @@ -143,27 +161,31 @@ public class DesignerSocketIO { * socket 只用推日志和通知配置变更 */ if (status != Status.Disconnecting) { - try { - UIUtil.invokeAndWaitIfNeeded(new Runnable() { - @Override - public void run() { - FineJOptionPane.showMessageDialog( - DesignerContext.getDesignerFrame(), - Toolkit.i18nText("Fine-Design_Basic_Remote_Disconnected"), - UIManager.getString("OptionPane.messageDialogTitle"), - JOptionPane.ERROR_MESSAGE, - UIManager.getIcon("OptionPane.errorIcon")); - EnvChangeEntrance.getInstance().chooseEnv(); - } - }); - } catch (Exception e) { - FineLoggerFactory.getLogger().error(e.getMessage(), e); - } + showConnectionLost(); } status = Status.Disconnected; } }; + private static void showConnectionLost() { + try { + UIUtil.invokeAndWaitIfNeeded(new Runnable() { + @Override + public void run() { + FineJOptionPane.showMessageDialog( + DesignerContext.getDesignerFrame(), + Toolkit.i18nText("Fine-Design_Basic_Remote_Disconnected"), + UIManager.getString("OptionPane.messageDialogTitle"), + JOptionPane.ERROR_MESSAGE, + UIManager.getIcon("OptionPane.errorIcon")); + EnvChangeEntrance.getInstance().chooseEnv(); + } + }); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + } + //配置变更监听器 private static final Emitter.Listener modifyConfig = new Emitter.Listener() { @Override diff --git a/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java b/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java index 3bca81c1e..57e87e090 100644 --- a/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java +++ b/designer-realize/src/main/java/com/fr/design/widget/CellWidgetCardPane.java @@ -136,6 +136,9 @@ public class CellWidgetCardPane extends BasicPane { //todo } }); + if (rn == null) { + return; + } DataModify definePane = rn.getDefinePane(); attriCardPane.add(definePane.toSwingComponent(), rn.getCardName()); attriCardLayout.show(attriCardPane, rn.getCardName()); From 01ba3bf406c16027f3da12d8c642937b73fff53e Mon Sep 17 00:00:00 2001 From: hades Date: Tue, 16 Jun 2020 17:05:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-33575=20=E6=94=B9=E4=B8=8B=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/socketio/DesignerSocketIO.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java index 010f9d119..e84237524 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java @@ -42,7 +42,7 @@ public class DesignerSocketIO { // 远程设计websocket不支持wss 所以断开无法提醒 // 使用远程设计的心跳断开来提醒断开 if (DesignerEnvManager.getEnvManager().isHttps()) { - showConnectionLost(); + showConnectionLostDialog(); } } }); @@ -161,13 +161,13 @@ public class DesignerSocketIO { * socket 只用推日志和通知配置变更 */ if (status != Status.Disconnecting) { - showConnectionLost(); + showConnectionLostDialog(); } status = Status.Disconnected; } }; - private static void showConnectionLost() { + private static void showConnectionLostDialog() { try { UIUtil.invokeAndWaitIfNeeded(new Runnable() { @Override