[Seaside] Tree of Seaside classes

Romain Robbes rrobbes at info.unicaen.fr
Thu Sep 16 15:39:38 CEST 2004


Hi all,

I took the time to set up a visualworks image with moose, codecrawler 
and seaside loaded as a moose model,
so that you (or anyone else ...) can use it to understand Seaside 
better.

Just download and untar the following image :

http://users.info.unicaen.fr/~rrobbes/seaside/

Here you might find some doc on Codecrawler, or at least links to 
publications.
http://scgwiki.iam.unibe.ch:8080/CodeCrawler/1

Note that you still have to register to download visualworks :

http://smalltalk.cincom.com/downloads/index.ssp?content=visualworks

Cheers,
	Romain


On Sep 16, 2004, at 3:00 PM, Damien Cassou wrote:

> Avi Bryant a écrit :
>> On Sep 16, 2004, at 2:30 PM, Damien Cassou wrote:
>>> >> I want to comment Seaside's classes and methods. Does a graphical 
>>> tree
>>> >> of the classes exists (which show the hierarchy between classes) 
>>> ? If
>>> >> not, is it possible to generate one from squeak easily ?
>>> >>
>>>
>>>>     You could try this, which does class diagrams based on 
>>>> dynamical information :
>>>> http://minnow.cc.gatech.edu/squeak/3577
>>>
>>>
>>> This program has a bug that prevents me from using it. The bug 
>>> report is below.
>> It looks like you didn't load Connectors first, which is required.  
>> It's available on SqueakMap.
>> Avi
> You are right, I haven't installed Connectors. I've done it and now I 
> have three flaps on the bottom of Squeak Window. But ClassDiagram 
> doesn't work better :
>
> 16 September 2004 2:57:31 pm
>
> VM: unix - a SmalltalkImage
> Image: Squeak3.7 [latest update: #5989]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /home/quetzalcoatl/squeak-3.7/squeak-bak
> Trusted Dir /home/quetzalcoatl/squeak-3.7/squeak-bak/secure
> Untrusted Dir /home/quetzalcoatl/squeak-3.7/squeak-bak/untrusted
>
> CDClassMorph class(Object)>>doesNotUnderstand: #newUMLClassSymbol
> 	Receiver: CDClassMorph
> 	Arguments and temporary variables:
> 		aMessage: 	newUMLClassSymbol
> 	Receiver's instance variables:
> 		superclass: 	ProtoObject
> 		methodDict: 	a 
> MethodDictionary(#addYellowButtonMenuItemsTo:event:->a 
> CompiledMe...etc...
> 		format: 	134
> 		instanceVariables: 	#('classDiagramUI' 'cdClass')
> 		organization: 	('accessing' shownClass)
> ('initialize-release' initialize initial...etc...
> 		subclasses: 	nil
> 		name: 	#CDClassMorph
> 		classPool: 	nil
> 		sharedPools: 	nil
> 		environment: 	a SystemDictionary(lots of globals)
> 		category: 	nil
>
> CDClassMorph class>>classDiagramUI:class:
> 	Receiver: CDClassMorph
> 	Arguments and temporary variables:
> 		aClassDiagramUI: 	a CDClassDiagramUI(1247)
> 		aCDClass: 	aCDClass:WAAnswerHandler
> 	Receiver's instance variables:
> 		superclass: 	ProtoObject
> 		methodDict: 	a 
> MethodDictionary(#addYellowButtonMenuItemsTo:event:->a 
> CompiledMe...etc...
> 		format: 	134
> 		instanceVariables: 	#('classDiagramUI' 'cdClass')
> 		organization: 	('accessing' shownClass)
> ('initialize-release' initialize initial...etc...
> 		subclasses: 	nil
> 		name: 	#CDClassMorph
> 		classPool: 	nil
> 		sharedPools: 	nil
> 		environment: 	a SystemDictionary(lots of globals)
> 		category: 	nil
>
> [] in CDClassDiagramUI>>morphForClass: {[classMorph := CDClassMorph 
> classDiagramUI: self class: aCDClass.  classMorp...]}
> 	Arguments and temporary variables:
> 		aCDClass: 	aCDClass:WAAnswerHandler
> 		classMorph: 	nil
> 		each: 	nil
>
> OrderedCollection(Collection)>>detect:ifNone:
> 	Receiver: an OrderedCollection()
> 	Arguments and temporary variables:
> 		aBlock: 	[] in CDClassDiagramUI>>morphForClass: {[:each | each 
> shownClass = aCDC...etc...
> 		exceptionBlock: 	[] in CDClassDiagramUI>>morphForClass: {[classMorph 
> := CDClassM...etc...
> 		each: 	nil
> 	Receiver's instance variables:
> 		array: 	#(nil nil nil nil nil nil nil nil nil nil)
> 		firstIndex: 	3
> 		lastIndex: 	2
>
>
> --- The full stack ---
> CDClassMorph class(Object)>>doesNotUnderstand: #newUMLClassSymbol
> CDClassMorph class>>classDiagramUI:class:
> [] in CDClassDiagramUI>>morphForClass: {[classMorph := CDClassMorph 
> classDiagramUI: self class: aCDClass.  classMorp...]}
> OrderedCollection(Collection)>>detect:ifNone:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> CDClassDiagramUI>>morphForClass:
> CDClassDiagramUI>>drawClass:
> [] in CDClassDiagramUI>>draw {[:each | self drawClass: each]}
> OrderedCollection>>do:
> CDClassDiagramUI>>draw
> CDClassDiagramUI>>update:
> [] in CDClassDiagram(Object)>>changed: {[:aDependent | aDependent 
> update: aParameter]}
> DependentsArray>>do:
> CDClassDiagram(Object)>>changed:
> CDClassDiagram>>addClassCategoryNamed:
> CDClassDiagramWindow>>addClassCategory:
> CDClassDiagramWindow>>addClassCategory
> PluggableButtonMorph>>performAction
> [] in PluggableButtonMorph>>mouseUp: {[:m | (m containsPoint: evt 
> cursorPoint)   ifTrue: [m performAction]]}
> Array(SequenceableCollection)>>do:
> PluggableButtonMorph>>mouseUp:
> PluggableButtonMorph(Morph)>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> PluggableButtonMorph(Morph)>>handleEvent:
> PluggableButtonMorph(Morph)>>handleFocusEvent:
> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self. 
> ActiveEvent := anEvent.  result := focusHolder     han...]}
> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
> BlockContext>>on:do:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h 
> processEvents.  capturingGesture := capturingGest...]}
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor 
> yield.  false] whileFalse.  nil]}
> [] in BlockContext>>newProcess {[self value.  Processor 
> terminateActive]}
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/seaside
>



More information about the Seaside mailing list