From 55286646a050a493181cfd8add8c34a9ceb337c8 Mon Sep 17 00:00:00 2001 From: Stefan Schmiedl Date: Wed, 26 Jan 2011 21:05:03 +0100 Subject: [PATCH] Make ClassSearchWidget a quick reference browser --- More/Examples/ILClassSearchWidget.st | 36 +++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/More/Examples/ILClassSearchWidget.st b/More/Examples/ILClassSearchWidget.st index 18e2f82..ccb2d41 100644 --- a/More/Examples/ILClassSearchWidget.st +++ b/More/Examples/ILClassSearchWidget.st @@ -45,21 +45,23 @@ ILWidget subclass: ILClassSearchWidget [ ^resultsWidget ifNil: [resultsWidget := self widgetFor: [:widget | (self search: self searchText) do: [:each | - widget div + widget a class: 'results'; onClickDo: [ self selectedClass: each. self infoWidget markDirty ]; - text: each name asString. + text: each displayString. widget br]]] ] infoWidget [ ^infoWidget ifNil: [ infoWidget := self widgetFor: [ :widget | - widget style: 'float:left; text-align:left; width:40%; margin-left:5em;'. - self selectedClass ifNotNil: [ :aClass | |ul| - widget h2 text: aClass name asString. + widget style: 'float:left; text-align:left; width:60%; margin-left:5em;'. + self selectedClass ifNotNil: [ :aClass | | ul| + widget h2 text: aClass displayString. + self renderSuperclassOf: aClass on: widget div. + self renderSubclassesOf: aClass on: widget div. widget p text: aClass comment. ul := widget ul. ( self sortedMessagesForClass: aClass) @@ -68,6 +70,28 @@ ILWidget subclass: ILClassSearchWidget [ ]] ] + renderSubclassesOf: aClass on: aContainer [ + + aContainer text: 'subclass(es): '. + aClass allSubclasses + do: [ :each | + aContainer a + onClickDo: [ self selectedClass: each. self infoWidget markDirty ]; + text: each displayString ] + separatedBy: [ aContainer text: ', ' ]. + ] + + renderSuperclassOf: aClass on: aContainer [ + + aContainer text: 'superclass: '. + aClass superclass + ifNil: [ aContainer text: 'nil' ] + ifNotNil: [:supa | + aContainer a + onClickDo: [ self selectedClass: supa. self infoWidget markDirty ]; + text: supa displayString]. + ] + sortedMessagesForClass: aClass [ ^aClass methodDictionary keys asSortedCollection @@ -80,7 +104,7 @@ ILWidget subclass: ILClassSearchWidget [ ifFalse: [ (Class allSubclasses select: [:each | - each instanceClass name asString beginsWith: aString]) + each instanceClass displayString beginsWith: aString]) collect: [ :each | each instanceClass ]] ] ]