[Seaside] Generalizing WATree.

Tim Murray tmurray at ecsorl.com
Wed Aug 18 13:03:12 UTC 2010

Hi all.


I am trying to generalize WATree so that is can tree out a typical file



I copied WATreeFunctionalTest and modified it to display the existing
Collection tree

On top of my file tree.


Here is the modified initialize method:



    super initialize.

    tree := WATree new

        root: Collection;

        labelBlock: [ :class | class name ];

        childrenBlock: [ :class | class subclasses ];

        selectBlock: [ :class | selected := class name ];

        canSelectBlock: [ :class | class subclasses notEmpty ];




    filetree:=WATree new

        root: (CFileDirectoryTreeItem on: FileDirectory default);

        labelBlock:[:cfdti | cfdti getLabel];

        childrenBlock:[:cfdti | cfdti getChildren ];




Here is the modified renderTreeOn:html


renderTreeOn: html

            html strong: 'Selected:'.

            html render: selected.

"           self break."

            html render: tree.

            html render:filetree.



I can't copy and paste the output directly into this, but it looks like
this with the filetree expanded one level:



*	+Collection



*	-CroquetSDK-1.0.18-Squeak4.1

	*	+bin
	*	cache
	*	cache-global
	*	+Content
	*	+MyLibrary
	*	+files
	*	icons
	*	package-cache
	*	prefs
	*	router-logs
	*	sm
	*	+Squeak 4.1.1beta2U.app
	*	....



However, when I go to expand +MyLibrary it does not expand.


Looking at +Collection , which does work, the principle seems to be that
every "thing" in the blocks are "the same thing"

For the +Collection, that "same thing" is a Class. So the operations all
recurse down.


After a lot of trying , "The Same Thing" I am using is a
CFileDirectoryTreeItem. (I have tried a lot of different things).

What is troubling, is that the childrenBlock:[:cfdti | cfdti
getChildren] does in fact, return CFIleDirectoryTreeItems.


Any ideas?










-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20100818/6a435460/attachment.htm

More information about the seaside mailing list