#DOCUMENTATION by exept
class: ShowMeHowItWorks
class definition
changed:
#do:
#doStream:
#findComponent:
#select:
--- a/ShowMeHowItWorks.st Mon Oct 14 10:48:32 2019 +0200
+++ b/ShowMeHowItWorks.st Mon Oct 14 11:42:39 2019 +0200
@@ -5,8 +5,9 @@
"{ NameSpace: Smalltalk }"
Object subclass:#ShowMeHowItWorks
- instanceVariableNames:'application opStream lastComponentName lastComponent lastResult
- voice translate language verifying closeApplicationWhenFinished'
+ instanceVariableNames:'application opStream streamStack lastComponentName lastComponent
+ lastResult voice translate language verifying
+ closeApplicationWhenFinished defaultComponentWaitTime'
classVariableNames:'IntroShownCount DebugMode'
poolDictionaries:''
category:'Interface-Help'
@@ -433,25 +434,40 @@
<action>
- |idx|
+ |idx component|
verifying ifTrue:[^ self].
- (lastComponent isKindOf:ComboView) ifTrue:[
+ ((component := lastComponent) isKindOf:ScrollableView) ifTrue:[
+ component := component scrolledView.
+ ].
+
+ (component isKindOf:ComboView) ifTrue:[
"/ click on the menubutton
- self movePointerToComponent:lastComponent menuButton.
- self click:1 inComponent:lastComponent menuButton.
+ self movePointerToComponent:component menuButton.
+ self click:1 inComponent:component menuButton.
Delay waitForSeconds:0.3.
- (idx := lastComponent list indexOf:itemsLabel ifAbsent:[nil]) isNil ifTrue:[
+ (idx := component list indexOf:itemsLabel ifAbsent:[nil]) isNil ifTrue:[
self error:'no such item in comboList: ',itemsLabel
].
- lastComponent select:idx.
+ component select:idx.
Delay waitForSeconds:0.3.
- lastComponent shownMenu notNil ifTrue:[
- lastComponent shownMenu hide.
+ component shownMenu notNil ifTrue:[
+ component shownMenu hide.
].
^ self
].
+ (component isKindOf:HierarchicalListView) ifTrue:[
+ component
+ selectElementForWhich:[:el |
+ el label string = itemsLabel
+ ]
+ ifAbsent:[
+ self error:'no such item in hierarchicalList: ',itemsLabel
+ ].
+ ^ self
+ ].
+
self error:'cannot select this component'
"Created: / 19-07-2019 / 12:34:25 / Claus Gittinger"
@@ -759,7 +775,7 @@
^ candidates first
].
].
- application isNil ifTrue:[
+ true "application isNil" ifTrue:[
"/ search through all current applications
WindowGroup scheduledWindowGroups do:[:eachWG |
|eachApp|
@@ -1212,6 +1228,7 @@
application := WindowGroup activeMainApplication.
].
closeApplicationWhenFinished := false.
+ defaultComponentWaitTime isNil ifTrue:[ defaultComponentWaitTime := 1 ].
"/ run in verifying mode
verifying := true.
@@ -1320,7 +1337,10 @@
|previousStream resources|
resources := self class classResources.
-
+
+ streamStack isNil ifTrue:[ streamStack := OrderedCollection new ].
+ streamStack add:opStream.
+
previousStream := opStream.
[
opStream := specStream.
@@ -1340,6 +1360,7 @@
].
].
] ensure:[
+ streamStack removeLast.
opStream := previousStream
].