Tim,<div><br><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 12.5px; border-collapse: collapse; color: rgb(68, 68, 68); ">I plugged the code into "Functional Tests":<div><br></div>
<div><div>WATreeFunctionalTest>>initialize</div><div><span style="white-space: pre-wrap; ">        </span>super initialize.</div><div><span style="white-space: pre-wrap; ">        </span>tree := WATree new</div><div><span style="white-space: pre-wrap; ">        </span></div>
<div><span style="white-space: pre-wrap; ">                </span>root: (DirTreeNode on: 'C:\cygwin\');</div><div><span style="white-space: pre-wrap; ">                </span>labelBlock: [ :node | node getLabel ];</div><div><span style="white-space: pre-wrap; ">                </span>childrenBlock: [ :node | node children ];</div>
<div><span style="white-space: pre-wrap; ">        </span></div><div><span style="white-space: pre-wrap; ">                </span>"root: Collection;</div><div><span style="white-space: pre-wrap; ">                </span>labelBlock: [ :class | class name ];</div>
<div><span style="white-space: pre-wrap; ">                </span>childrenBlock: [ :class | class subclasses ];</div><div><span style="white-space: pre-wrap; ">                </span>selectBlock: [ :class | selected := class name ];</div><div><span style="white-space: pre-wrap; ">                </span>canSelectBlock: [ :class | class subclasses notEmpty ];"</div>
<div><span style="white-space: pre-wrap; ">                </span></div><div><span style="white-space: pre-wrap; ">                </span>yourself</div><div><br></div><div>The code is the absolute minimal code needed to support a directory tree via WATree. BUT it WORKS!</div>
</div><div><br></div></span><div class="gmail_quote">On Thu, Aug 19, 2010 at 11:25 AM, John Chludzinski <span dir="ltr"><<a href="mailto:john.chludzinski@gmail.com">john.chludzinski@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div>Tim, I believe something as simple as the class below would solve your problem without modifying the WATree implementation (much simpler than bending <span style="font-family:monospace;font-size:medium;white-space:pre-wrap">CFIleDirectoryTreeItems to your will)</span>:</div>
<div><br></div><div><br></div><div>Object subclass: #DirTreeNode</div><div><span style="white-space:pre-wrap">        </span>instanceVariableNames: 'children name entry'</div><div><span style="white-space:pre-wrap">        </span>classVariableNames: ''</div>
<div><span style="white-space:pre-wrap">        </span>poolDictionaries: ''</div><div><span style="white-space:pre-wrap">        </span>category: 'Misc'!</div><div><br></div><div>!DirTreeNode methodsFor: 'accessing' stamp: 'jtc'!</div>
<div>children</div><div><br></div><div><span style="white-space:pre-wrap">        </span>self isLeaf ifTrue: [ ^ nil ].</div><div><span style="white-space:pre-wrap">        </span>children</div><div>
<span style="white-space:pre-wrap">                </span>ifNil: [</div><div><span style="white-space:pre-wrap">                        </span>children := OrderedCollection new.</div><div><span style="white-space:pre-wrap">                        </span>name entries do: [ :entry |</div>
<div><span style="white-space:pre-wrap">                                </span>children add: ((self class on: entry fullName) entry: entry) ]</div><div><span style="white-space:pre-wrap">                </span>].</div><div><br>
</div><div><span style="white-space:pre-wrap">        </span>^ children! !</div><div><br></div><div>!DirTreeNode methodsFor: 'accessing' stamp: 'jtc'!</div><div>entry</div><div><br></div><div><span style="white-space:pre-wrap">        </span>^ entry! !</div>
<div><br></div><div>!DirTreeNode methodsFor: 'accessing' stamp: 'jtc7'!</div><div>entry: e</div><div><br></div><div><span style="white-space:pre-wrap">        </span>entry := e! !</div><div><br>
</div><div>!DirTreeNode methodsFor: 'accessing' stamp: 'jtc'!</div><div>getLabel</div><div><br></div><div><span style="white-space:pre-wrap">        </span>^ (name pathName findTokens: '\') last! !</div>
<div><br></div><div>!DirTreeNode methodsFor: 'accessing' stamp: 'jtc'!</div><div>isLeaf</div><div><br></div><div><span style="white-space:pre-wrap">        </span>entry ifNil: [ ^ false ].</div>
<div><span style="white-space:pre-wrap">        </span>^ self entry isDirectory not! !</div><div><br></div><div>!DirTreeNode methodsFor: 'accessing' stamp: 'jtc'!</div><div>name: n</div><div><br>
</div><div><span style="white-space:pre-wrap">        </span>name := n! !</div><div><br></div><div>"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!</div><div><br></div><div>DirTreeNode class</div>
<div><span style="white-space:pre-wrap">        </span>instanceVariableNames: ''!</div><div><br></div><div>!DirTreeNode class methodsFor: 'instance creation' stamp: 'jtc'!</div><div>on: pathString</div>
<div><br></div><div><span style="white-space:pre-wrap">        </span>^ self new</div><div><span style="white-space:pre-wrap">                </span>name: (FileDirectory on: pathString)! !</div><div><br></div>
</blockquote></div><br></div>