#FEATURE by exept
class: ElectronWorkstation
class definition
added: #rendererBridge
changed: #initializeFor:
--- 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.