#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Mon, 29 Oct 2018 15:53:12 +0100
changeset 18505 4972f3ec73de
parent 18504 33708933d184
child 18506 b07e5f5e1c15
#FEATURE by cg class: ExternalStreamMonitor class definition added: #filterPipesOnlyHolder #filterPipesOnlyHolderChanged comment/format in: #filterOpenStreamsOnlyHolder changed: #filterConnectedSocketsOnlyHolderChanged #filterSocketsOnlyHolderChanged #updateList class: ExternalStreamMonitor class changed: #filterMenu
ExternalStreamMonitor.st
--- 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