#FEATURE by cg
class: ExternalStreamMonitor
class definition
added:
#filterPipesOnlyHolder
#filterPipesOnlyHolderChanged
comment/format in: #filterOpenStreamsOnlyHolder
changed:
#filterConnectedSocketsOnlyHolderChanged
#filterSocketsOnlyHolderChanged
#updateList
class: ExternalStreamMonitor class
changed: #filterMenu
--- a/ExternalStreamMonitor.st Mon Oct 29 15:33:46 2018 +0100
+++ b/ExternalStreamMonitor.st Mon Oct 29 15:53:12 2018 +0100
@@ -17,7 +17,8 @@
SystemStatusMonitor subclass:#ExternalStreamMonitor
instanceVariableNames:'semaphores streams filterOpenStreamsOnlyHolder
- filterSocketsOnlyHolder filterConnectedSocketsOnlyHolder'
+ filterPipesOnlyHolder filterSocketsOnlyHolder
+ filterConnectedSocketsOnlyHolder'
classVariableNames:''
poolDictionaries:''
category:'Monitors-ST/X'
@@ -93,21 +94,29 @@
(
(MenuItem
label: 'Open Streams Only'
+ indication: filterOpenStreamsOnlyHolder
hideMenuOnActivated: false
- indication: filterOpenStreamsOnlyHolder
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Pipes Only'
+ indication: filterPipesOnlyHolder
+ hideMenuOnActivated: false
)
(MenuItem
label: '-'
)
(MenuItem
label: 'Sockets Only'
+ indication: filterSocketsOnlyHolder
hideMenuOnActivated: false
- indication: filterSocketsOnlyHolder
)
(MenuItem
label: 'Connected Sockets Only'
+ indication: filterConnectedSocketsOnlyHolder
hideMenuOnActivated: false
- indication: filterConnectedSocketsOnlyHolder
)
)
nil
@@ -205,11 +214,21 @@
filterOpenStreamsOnlyHolder
filterOpenStreamsOnlyHolder isNil ifTrue:[
filterOpenStreamsOnlyHolder := true asValue.
- filterSocketsOnlyHolder onChangeSend:#filterOpenStreamsOnlyHolder to:self.
+ filterOpenStreamsOnlyHolder onChangeSend:#filterOpenStreamsOnlyHolderChanged to:self.
].
^ filterOpenStreamsOnlyHolder
- "Modified: / 09-10-2018 / 11:16:44 / Claus Gittinger"
+ "Modified: / 29-10-2018 / 15:44:11 / Claus Gittinger"
+!
+
+filterPipesOnlyHolder
+ filterPipesOnlyHolder isNil ifTrue:[
+ filterPipesOnlyHolder := false asValue.
+ filterPipesOnlyHolder onChangeSend:#filterPipesOnlyHolderChanged to:self.
+ ].
+ ^ filterPipesOnlyHolder
+
+ "Created: / 29-10-2018 / 15:36:07 / Claus Gittinger"
!
filterSocketsOnlyHolder
@@ -246,14 +265,19 @@
newList := ExternalStream allSubInstances.
newList := newList reject:#isExecutor.
- self filterSocketsOnlyHolder value ifTrue:[
- newList := newList select:[:eachStream | eachStream isSocket].
- ].
self filterOpenStreamsOnlyHolder value ifTrue:[
newList := newList select:[:eachStream | eachStream isOpen].
].
- self filterConnectedSocketsOnlyHolder value ifTrue:[
- newList := newList select:[:eachStream | eachStream isSocket and:[eachStream isConnected]].
+
+ self filterPipesOnlyHolder value ifTrue:[
+ newList := newList select:[:eachStream | eachStream isPipeStream].
+ ] ifFalse:[
+ self filterSocketsOnlyHolder value ifTrue:[
+ newList := newList select:[:eachStream | eachStream isSocket].
+ ].
+ self filterConnectedSocketsOnlyHolder value ifTrue:[
+ newList := newList select:[:eachStream | eachStream isSocket and:[eachStream isConnected]].
+ ].
].
newList sort:[:s1 :s2 |
@@ -268,7 +292,7 @@
].
self installDelayedUpdate.
- "Modified (comment): / 29-10-2018 / 15:32:00 / Claus Gittinger"
+ "Modified: / 29-10-2018 / 15:39:43 / Claus Gittinger"
!
updateStatus:newStreamsList
@@ -520,15 +544,35 @@
!
filterConnectedSocketsOnlyHolderChanged
+ self filterConnectedSocketsOnlyHolder value ifTrue:[
+ self filterPipesOnlyHolder value:false.
+ ].
self sensor pushUserEvent:#updateList for:self
+
+ "Modified: / 29-10-2018 / 15:48:44 / Claus Gittinger"
!
filterOpenStreamsOnlyHolderChanged
self sensor pushUserEvent:#updateList for:self
!
+filterPipesOnlyHolderChanged
+ self filterPipesOnlyHolder value ifTrue:[
+ self filterSocketsOnlyHolder value:false.
+ self filterConnectedSocketsOnlyHolder value:false.
+ ].
+ self sensor pushUserEvent:#updateList for:self
+
+ "Created: / 29-10-2018 / 15:36:45 / Claus Gittinger"
+!
+
filterSocketsOnlyHolderChanged
+ self filterSocketsOnlyHolder value ifTrue:[
+ self filterPipesOnlyHolder value:false.
+ ].
self sensor pushUserEvent:#updateList for:self
+
+ "Modified: / 29-10-2018 / 15:48:40 / Claus Gittinger"
!
inspectStream