#FEATURE by exept
authorClaus Gittinger <cg@exept.de>
Thu, 19 Dec 2019 21:08:53 +0100
changeset 8951 fddd874a2251
parent 8950 d3a9546499c3
child 8952 9f5e1f49c117
#FEATURE by exept class: ElectronWorkstation class definition added: #rendererBridge changed: #initializeFor:
ElectronWorkstation.st
--- a/ElectronWorkstation.st	Thu Dec 19 20:13:02 2019 +0100
+++ b/ElectronWorkstation.st	Thu Dec 19 21:08:53 2019 +0100
@@ -5,7 +5,7 @@
 "{ NameSpace: Smalltalk }"
 
 DeviceWorkstation subclass:#ElectronWorkstation
-	instanceVariableNames:'bridge eventQueue'
+	instanceVariableNames:'bridge rendererBridge eventQueue'
 	classVariableNames:'ExposureMask StructureNotifyMask KeyPressMask KeyReleaseMask
 		PointerMotionMask EnterWindowMask LeaveWindowMask ButtonPressMask
 		ButtonMotionMask ButtonReleaseMask PropertyChangeMask'
@@ -230,6 +230,10 @@
 
 bridge
     ^ bridge
+!
+
+rendererBridge
+    ^ rendererBridge
 ! !
 
 !ElectronWorkstation methodsFor:'accessing & queries'!
@@ -354,8 +358,18 @@
     nodeBridge := Smalltalk requirePackage:'exept:bridgeFramework/nodeJSBridge'.
     _ElectronBridge := nodeBridge classNamed:'NodeJSBridge::ElectronBridge'.
     bridge := _ElectronBridge newBridgeForHostAndPort:aHostAndPortStringOrNil.
-    bridge startBridgeIn:'.' debug:true.
-    bridge connectWithTimeoutMS:5000.
+    [
+        bridge startBridgeIn:'.' debug:true.
+        bridge connectWithTimeoutMS:5000.
+
+        rendererBridge := _ElectronBridge newBridgeForHostAndPort:aHostAndPortStringOrNil.
+        rendererBridge connectWithTimeoutMS:5000.
+    ] ifCurtailed:[
+        rendererBridge notNil ifTrue:[ rendererBridge close ].
+        rendererBridge := nil.
+        bridge notNil ifTrue:[ bridge close ].
+        bridge := nil.
+    ].
 
     self initializeScreenProperties.
     self initializeDefaultValues.