Skip to content

Commit 5de3c18

Browse files
committed
Adds an examples browser to get an overview of all examples present in the system. Just send BPExamplesBrowser open
1 parent f119cad commit 5de3c18

22 files changed

+169
-0
lines changed

packages/Babylonian-UI.package/BPExamplesBrowser.class/README.md

Whitespace-only changes.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
opening
2+
open
3+
4+
^ ToolBuilder open: self new
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
accessing
2+
actualExampleList
3+
4+
^ exampleList ifNil: [
5+
exampleList := self selectedPackage
6+
ifNotNil: [:p | p methods gather: [:m | m compiledMethod bpExamples]]
7+
ifNil: [#()].
8+
exampleList := exampleList sorted: [:e |
9+
self flag: #todo. "Sorry for that... too lazy to do it correctly right now,
10+
writing browsers is boring --pre"
11+
(e isActive ifTrue: ['aaa'] ifFalse: ['xxx']) , e exampleName]]
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
accessing
2+
actualPackageList
3+
4+
^ packageList ifNil: [packageList := (SystemNavigation default allExamples collect: [:e |
5+
e method methodClass package]) asSet sorted: [:p | p name]]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
toolbuilder
2+
buildExamplesListWith: builder
3+
4+
| listSpec |
5+
listSpec := builder pluggableListSpec new.
6+
listSpec
7+
model: self;
8+
list: #exampleList;
9+
getIndex: #exampleListIndex;
10+
setIndex: #exampleListIndex:.
11+
^listSpec
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
toolbuilder
2+
buildPackagesListWith: builder
3+
4+
| listSpec |
5+
listSpec := builder pluggableListSpec new.
6+
listSpec
7+
model: self;
8+
list: #packageList;
9+
getIndex: #packageListIndex;
10+
setIndex: #packageListIndex:.
11+
^listSpec
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
toolbuilder
2+
buildWith: builder
3+
4+
| windowSpec max result |
5+
self wantsOptionalButtons ifTrue:[max := 0.3] ifFalse:[max := 0.3].
6+
windowSpec := self buildWindowWith: builder specs: {
7+
(0@0 corner: 0.5@max) -> [self buildPackagesListWith: builder].
8+
(0.5@0 corner: 1@max) -> [self buildExamplesListWith: builder].
9+
(0@max corner: 1@1) -> [self buildCodePaneWith: builder].
10+
}.
11+
result := builder build: windowSpec.
12+
^result
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
accessing
2+
exampleList: anObject
3+
4+
exampleList := anObject.
5+
self changed: #exampleList.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
accessing
2+
exampleList
3+
4+
^ self actualExampleList collect: [:e | |text|
5+
text := (e method methodClass className asString ,
6+
' - ' ,
7+
e method selector asString ,
8+
' - ' ,
9+
e exampleName asString) asText.
10+
e isActive ifTrue: [text allBold].
11+
text]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
accessing
2+
exampleListIndex: anIndex
3+
4+
exampleListIndex := anIndex.
5+
contents := anIndex ~= 0 ifTrue: [self selectedMessage] ifFalse: [''].
6+
self
7+
changed: #exampleListIndex;
8+
contentsChanged

0 commit comments

Comments
 (0)