Skip to content

Commit 0e396ef

Browse files
authored
Merge pull request #849 from pharo-graphics/DemoBrowser
Pass on demo browser and its model
2 parents 8ffb513 + 04c8ec0 commit 0e396ef

11 files changed

Lines changed: 195 additions & 204 deletions

src/Bloc-Demo/BlDemoBasicNode.class.st

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ Class {
1212
#category : #'Bloc-Demo-DemoPresenterNodes'
1313
}
1414

15-
{ #category : #'as yet unclassified' }
15+
{ #category : #'instance creation' }
1616
BlDemoBasicNode class >> withItem: anObject [
1717

18-
^ self new item: anObject
19-
18+
^ self new
19+
initializeWithItem: anObject;
20+
yourself
2021
]
2122

2223
{ #category : #adding }
@@ -37,10 +38,13 @@ BlDemoBasicNode >> children: anOrderedCollection [
3738
]
3839

3940
{ #category : #initialization }
40-
BlDemoBasicNode >> initialize [
41+
BlDemoBasicNode >> initializeWithItem: anObject [
42+
43+
self initialize.
44+
45+
children := OrderedCollection new.
4146

42-
super initialize.
43-
children := OrderedCollection new
47+
item := anObject
4448
]
4549

4650
{ #category : #accessing }
@@ -49,13 +53,8 @@ BlDemoBasicNode >> item [
4953
]
5054

5155
{ #category : #accessing }
52-
BlDemoBasicNode >> item: anObject [
53-
54-
item := anObject
55-
]
56+
BlDemoBasicNode >> name [
5657

57-
{ #category : #accessing }
58-
BlDemoBasicNode >> name [
5958
^ item name
6059
]
6160

@@ -69,3 +68,13 @@ BlDemoBasicNode >> parent: aNode [
6968

7069
parent := aNode
7170
]
71+
72+
{ #category : #printing }
73+
BlDemoBasicNode >> printOn: aStream [
74+
75+
super printOn: aStream.
76+
aStream
77+
nextPutAll: '(';
78+
print: item;
79+
nextPutAll: ')'
80+
]
Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,29 @@
11
Class {
22
#name : #BlDemoBasicNodeTest,
33
#superclass : #TestCase,
4-
#instVars : [
5-
'class',
6-
'class2'
7-
],
84
#category : #'Bloc-Demo-NodeTests'
95
}
106

117
{ #category : #tests }
128
BlDemoBasicNodeTest >> testEnsureClassForWithDifferentClass [
139

14-
| demo |
10+
| demo class class2 |
1511
demo := BlDemoCollector new.
16-
class := demo ensureClassFor: BlDemoData.
17-
class2 := demo ensureClassFor: BlDemoData2.
18-
self deny: class == class2
12+
class := demo ensureClassFor: BlFakeDemo.
13+
class2 := demo ensureClassFor: BlFakeDemo2.
14+
15+
self deny: class identicalTo: class2
1916
]
2017

2118
{ #category : #tests }
2219
BlDemoBasicNodeTest >> testEnsureClassForWithSameClass [
2320

24-
| demo |
21+
| demo class class2 |
2522
demo := BlDemoCollector new.
26-
class := demo ensureClassFor: BlDemoData.
27-
class2 := demo ensureClassFor: BlDemoData.
28-
self assert: class == class2
23+
class := demo ensureClassFor: BlFakeDemo.
24+
class2 := demo ensureClassFor: BlFakeDemo.
25+
26+
self assert: class identicalTo: class2
2927
]
3028

3129
{ #category : #tests }
@@ -35,7 +33,8 @@ BlDemoBasicNodeTest >> testEnsurePackageForWithSamePackage [
3533
demo := BlDemoCollector new.
3634
package := demo ensurePackageFor: 'Bloc-Demo'.
3735
package2 := demo ensurePackageFor: 'Bloc-Demo'.
38-
self assert: package == package2
36+
37+
self assert: package identicalTo: package2
3938
]
4039

4140
{ #category : #tests }
@@ -44,8 +43,8 @@ BlDemoBasicNodeTest >> testOneClassWithDifferentPragma [
4443
| collector elt1 classNode |
4544

4645
collector := BlDemoCollector new.
47-
collector pragma: #demo2.
48-
collector collectClass: BlDemoData.
46+
collector pragma: #demoTestingPragma2.
47+
collector collectClass: BlFakeDemo.
4948
classNode := collector classes first.
5049
elt1 := classNode children first.
5150
self assert: elt1 class equals: BlDemoMethodNode.
@@ -57,12 +56,14 @@ BlDemoBasicNodeTest >> testOneClassWithDifferentPragma [
5756
BlDemoBasicNodeTest >> testOneClassWithTwoMethodsHasTwoNodes [
5857

5958
| collector elt1 elt2 classNode |
60-
6159
collector := BlDemoCollector new.
62-
collector collectClass: BlDemoData.
60+
collector pragma: #demoTestingPragma.
61+
collector collectClass: BlFakeDemo.
6362
classNode := collector classes first.
63+
6464
elt1 := classNode children first.
6565
self assert: elt1 class equals: BlDemoMethodNode.
66+
6667
elt2 := classNode children second.
6768
self assert: elt2 class equals: BlDemoMethodNode.
6869

@@ -73,25 +74,25 @@ BlDemoBasicNodeTest >> testOneClassWithTwoMethodsHasTwoNodes [
7374
{ #category : #tests }
7475
BlDemoBasicNodeTest >> testOneClassWithoutPragma [
7576

76-
| collector |
77-
77+
| collector |
7878
collector := BlDemoCollector new.
79-
collector pragma: #blabla.
80-
collector collectClass: BlDemoData.
79+
collector pragma: #demoTestingPragma_Empty.
80+
collector collectClass: BlFakeDemo.
81+
8182
self assert: collector classes isEmpty
8283
]
8384

8485
{ #category : #tests }
8586
BlDemoBasicNodeTest >> testOnePackageWithTwoClassesHasTwoNodes [
8687

8788
| collector packages |
88-
collector := BlDemoCollector new
89-
pragma: #demo;
90-
collectPackage:
91-
(self class packageOrganizer packageNamed: #'Bloc-Demo').
89+
collector := BlDemoCollector new.
90+
collector
91+
pragma: #demoTestingPragma;
92+
collectPackageNamed: #'Bloc-Demo'.
93+
9294
packages := collector packages.
9395
self assert: packages size equals: 1.
94-
9596
self assert: packages first class equals: BlDemoPackageNode.
9697
self assert: packages first children size equals: 2.
9798
self
@@ -103,13 +104,14 @@ BlDemoBasicNodeTest >> testOnePackageWithTwoClassesHasTwoNodes [
103104
BlDemoBasicNodeTest >> testOnePackageWithTwoClassesHasTwoNodesWithSample2 [
104105

105106
| collector packages |
106-
collector := BlDemoCollector new
107-
pragma: #demo2;
108-
collectPackage:
109-
(self class packageOrganizer packageNamed: #'Bloc-Demo').
107+
collector := BlDemoCollector new.
108+
collector
109+
pragma: #demoTestingPragma2;
110+
collectPackage:
111+
(self class packageOrganizer packageNamed: #'Bloc-Demo').
112+
110113
packages := collector packages.
111114
self assert: packages size equals: 1.
112-
113115
self assert: packages first class equals: BlDemoPackageNode.
114116
self assert: packages first children size equals: 1
115117
]

src/Bloc-Demo/BlDemoClassNode.class.st

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
"
2+
I'm a demo node for a class.
3+
"
14
Class {
25
#name : #BlDemoClassNode,
36
#superclass : #BlDemoBasicNode,
@@ -11,6 +14,7 @@ BlDemoClassNode >> icon [
1114
]
1215

1316
{ #category : #accessing }
14-
BlDemoClassNode >> methods [
17+
BlDemoClassNode >> methods [
18+
1519
^ item methods
1620
]
Lines changed: 23 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
"
2+
I'm responsible of collecting demo nodes from a given pragma.
3+
"
14
Class {
25
#name : #BlDemoCollector,
36
#superclass : #Object,
@@ -9,83 +12,50 @@ Class {
912
#category : #'Bloc-Demo-DemoPresenterNodes'
1013
}
1114

12-
{ #category : #'instance creation' }
13-
BlDemoCollector class >> collectClass: aClass [
14-
15-
^ self new collectClass: aClass
16-
]
17-
18-
{ #category : #'instance creation' }
19-
BlDemoCollector class >> collectPackage: aPackage [
20-
21-
^ self new collectPackage: aPackage
22-
]
23-
24-
{ #category : #'instance creation' }
25-
BlDemoCollector class >> collectPragma: aSymbol fromClass: aClass [
26-
27-
^ self new
28-
pragma: aSymbol;
29-
collectClass: aClass
30-
]
31-
32-
{ #category : #'instance creation' }
33-
BlDemoCollector class >> collectPragma: aSymbol fromPackage: aPackage [
34-
35-
^ self new
36-
pragma: aSymbol;
37-
collectPackage: aPackage
38-
]
39-
4015
{ #category : #accessing }
4116
BlDemoCollector >> classes [
17+
4218
^ classDictionary values
4319
]
4420

4521
{ #category : #instanceCreation }
4622
BlDemoCollector >> collectClass: aClass [
4723

4824
| node pragmas |
49-
pragmas := (Pragma allNamed: pragma in: aClass) sorted: [ :pragma1 :pragma2 |
50-
pragma1 methodSelector < pragma2 methodSelector ].
25+
pragmas := (Pragma allNamed: pragma in: aClass)
26+
sorted: [ :pragma1 :pragma2 |
27+
pragma1 methodSelector < pragma2 methodSelector ].
28+
5129
pragmas ifEmpty: [ ^ self ].
5230
node := self ensureClassFor: aClass.
53-
pragmas do: [ :prag | node addChild: (BlDemoMethodNode new item: prag method ) ].
54-
55-
31+
pragmas do: [ :each |
32+
node addChild: (BlDemoMethodNode withItem: each method) ]
5633
]
5734

5835
{ #category : #instanceCreation }
5936
BlDemoCollector >> collectPackage: aPackage [
6037

61-
"| packageClasses packageNode classes |
62-
packageClasses := (aPackage classes flatCollect: [ :class | { class. class class } ])
63-
sorted: [ :class1 :class2 | class1 name < class2 name ].
64-
packageNode := self ensurePackageFor: aPackage.
65-
classes := OrderedCollection new.
66-
packageClasses do: [ :pairclass |
67-
| aNode |
68-
self collectClass: pairclass.
69-
aNode := classDictionary at: pairclass ifAbsent: [ nil ].
70-
aNode ifNotNil: [ packageNode addChild: aNode ] ]."
71-
72-
7338
| packageClasses node classes |
74-
packageClasses := (aPackage classes flatCollect: [ :class | { class. class class } ])
39+
packageClasses := (aPackage definedClasses
40+
flatCollect: [ :class | { class. class class } ])
7541
sorted: [ :class1 :class2 | class1 name < class2 name ].
7642
classes := OrderedCollection new.
7743
packageClasses do: [ :class |
78-
| temp |
7944
self collectClass: class.
80-
temp := classDictionary at: class ifAbsent: [ ].
81-
temp ifNotNil: [ classes add: temp ] ].
45+
classDictionary at: class ifPresent: [ :c | classes add: c ] ].
8246
classes ifEmpty: [ ^ self ].
8347
node := self ensurePackageFor: aPackage.
8448
classes do: [ :classNode | node addChild: classNode ]
8549

8650

8751
]
8852

53+
{ #category : #'as yet unclassified' }
54+
BlDemoCollector >> collectPackageNamed: aString [
55+
56+
self collectPackage: (self class packageOrganizer packageNamed: aString)
57+
]
58+
8959
{ #category : #collection }
9060
BlDemoCollector >> collectPackages: anOrderedCollection [
9161

@@ -98,15 +68,15 @@ BlDemoCollector >> ensureClassFor: aClass [
9868

9969
^ classDictionary
10070
at: aClass
101-
ifAbsentPut: [BlDemoClassNode new item: aClass; yourself]
71+
ifAbsentPut: [ BlDemoClassNode withItem: aClass ]
10272
]
10373

10474
{ #category : #collection }
10575
BlDemoCollector >> ensurePackageFor: aPackage [
10676

10777
^ packageDictionary
10878
at: aPackage
109-
ifAbsentPut: [ BlDemoPackageNode new item: aPackage; yourself]
79+
ifAbsentPut: [ BlDemoPackageNode withItem: aPackage ]
11080
]
11181

11282
{ #category : #initialization }
@@ -125,6 +95,7 @@ BlDemoCollector >> packages [
12595
]
12696

12797
{ #category : #accessing }
128-
BlDemoCollector >> pragma: aString [
98+
BlDemoCollector >> pragma: aString [
99+
129100
pragma := aString
130101
]

src/Bloc-Demo/BlDemoData.class.st

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)