added #defaultAnswer
authorClaus Gittinger <cg@exept.de>
Fri, 03 Jan 1997 15:14:53 +0100
changeset 2037 d5644b390755
parent 2036 bedc0bb03129
child 2038 7c0943b1ab81
added #defaultAnswer
QuerySig.st
QuerySignal.st
--- a/QuerySig.st	Fri Jan 03 13:31:06 1997 +0100
+++ b/QuerySig.st	Fri Jan 03 15:14:53 1997 +0100
@@ -231,6 +231,56 @@
 "
 ! !
 
+!QuerySignal methodsFor:'initialization'!
+
+defaultAnswer:someValue
+    "define the queries defaultAnswer to be someValue.
+     This is the same as defining an appropriate handlerBlock."
+
+    |handler|
+
+    "/ avoid creating a fullBlock, in the most common cases
+    someValue == true ifTrue:[
+        handler := [:ex | ex proceedWith:true]
+    ] ifFalse:[
+        someValue == false ifTrue:[
+            handler := [:ex | ex proceedWith:false]
+        ] ifFalse:[
+            handler := [:ex | ex proceedWith:someValue].
+        ]
+    ].
+    self handlerBlock:handler.
+
+    "
+     QuerySignal new raise
+     (QuerySignal new defaultAnswer:true) raise 
+     (QuerySignal new defaultAnswer:false) raise
+    "
+
+    "
+     |sig rslt|
+
+     sig := QuerySignal new.
+     sig defaultAnswer:false.
+     rslt := sig raise.
+     Transcript showCR:rslt.
+    "
+
+    "
+     |sig rslt|
+
+     sig := QuerySignal new.
+     sig defaultAnswer:false.
+     sig answer:true 
+     do:[
+         rslt := sig raise
+     ].
+     Transcript showCR:rslt.
+    "
+
+    "Modified: 3.1.1997 / 15:14:40 / cg"
+! !
+
 !QuerySignal methodsFor:'queries'!
 
 accepts:aSignal
@@ -296,5 +346,5 @@
 !QuerySignal class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/QuerySig.st,v 1.16 1996-11-09 16:12:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/QuerySig.st,v 1.17 1997-01-03 14:14:53 cg Exp $'
 ! !
--- a/QuerySignal.st	Fri Jan 03 13:31:06 1997 +0100
+++ b/QuerySignal.st	Fri Jan 03 15:14:53 1997 +0100
@@ -231,6 +231,56 @@
 "
 ! !
 
+!QuerySignal methodsFor:'initialization'!
+
+defaultAnswer:someValue
+    "define the queries defaultAnswer to be someValue.
+     This is the same as defining an appropriate handlerBlock."
+
+    |handler|
+
+    "/ avoid creating a fullBlock, in the most common cases
+    someValue == true ifTrue:[
+        handler := [:ex | ex proceedWith:true]
+    ] ifFalse:[
+        someValue == false ifTrue:[
+            handler := [:ex | ex proceedWith:false]
+        ] ifFalse:[
+            handler := [:ex | ex proceedWith:someValue].
+        ]
+    ].
+    self handlerBlock:handler.
+
+    "
+     QuerySignal new raise
+     (QuerySignal new defaultAnswer:true) raise 
+     (QuerySignal new defaultAnswer:false) raise
+    "
+
+    "
+     |sig rslt|
+
+     sig := QuerySignal new.
+     sig defaultAnswer:false.
+     rslt := sig raise.
+     Transcript showCR:rslt.
+    "
+
+    "
+     |sig rslt|
+
+     sig := QuerySignal new.
+     sig defaultAnswer:false.
+     sig answer:true 
+     do:[
+         rslt := sig raise
+     ].
+     Transcript showCR:rslt.
+    "
+
+    "Modified: 3.1.1997 / 15:14:40 / cg"
+! !
+
 !QuerySignal methodsFor:'queries'!
 
 accepts:aSignal
@@ -296,5 +346,5 @@
 !QuerySignal class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/QuerySignal.st,v 1.16 1996-11-09 16:12:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/QuerySignal.st,v 1.17 1997-01-03 14:14:53 cg Exp $'
 ! !