ZPatterns: BTree folder w/ customizer support
I want to combine Shane Hathaway's BTreeFolder product with ZPatterns to create a "BTree folder w/ Customizer support". This has obvious advantages over the current "Folder w/ Customizer support" when you have a large number of DataSkin subobjects, both in terms of performance, and in terms of user-interface. The easiest way for me to do this would be to ask Phillip to make such a thing a standard part of ZPatterns :-) This is a little more difficult to do as a separate product, without lots of cut-and-paste reuse. (At least, it seems that way at first site.) the problem is that the inheritance heirarchy for CustomizerFolder (meta_type is "folder w/ customizer support") is like this: PlugInBase Folder ^ ^ |_______________| | PlugInContainer ^ | CustomizerFolder Without seriously delving into the code, I think I'd have to reimplement PlugInContainer. Instead, why not make PlugInContainer a mix-in class, and have concrete classes for PlugInFolder and PlugInBTreeFolder ? Then, it is easy to have a CustomizerFolder and a CustomizerBTreeFolder. Then again, I wouldn't mind if things stay as they are, except that PlugInContainer is made to derive from BTreeFolder rather than Folder. Of course, that creates a dependency that you need the BTreeFolder product in order to use ZPatterns. -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net
Steve Alexander wrote:
I want to combine Shane Hathaway's BTreeFolder product with ZPatterns to create a "BTree folder w/ Customizer support".
<snip!>
Instead, why not make PlugInContainer a mix-in class, and have concrete classes for PlugInFolder and PlugInBTreeFolder ?
Then, it is easy to have a CustomizerFolder and a CustomizerBTreeFolder.
Then again, I wouldn't mind if things stay as they are, except that PlugInContainer is made to derive from BTreeFolder rather than Folder. Of course, that creates a dependency that you need the BTreeFolder product in order to use ZPatterns.
Or... I could alter Shane's BTree Folder product to split it into a mix-in class and a usable folder class. Would that work, I wonder? -- Steve Alexander Software Engineer Cat-Box limited http://www.cat-box.net
At 02:30 PM 7/13/00 +0100, Steve Alexander wrote:
Steve Alexander wrote:
I want to combine Shane Hathaway's BTreeFolder product with ZPatterns to create a "BTree folder w/ Customizer support".
<snip!>
Instead, why not make PlugInContainer a mix-in class, and have concrete classes for PlugInFolder and PlugInBTreeFolder ?
Then, it is easy to have a CustomizerFolder and a CustomizerBTreeFolder.
Then again, I wouldn't mind if things stay as they are, except that PlugInContainer is made to derive from BTreeFolder rather than Folder. Of course, that creates a dependency that you need the BTreeFolder product in order to use ZPatterns.
Or... I could alter Shane's BTree Folder product to split it into a mix-in class and a usable folder class. Would that work, I wonder?
Probably. I think the main problem you'll run into will be the UI, since the BTreeFolder is going to probably display all its contents without filtering out PlugIns. You may have to do some work on that. Other than that, though, my guess is that a BTreeFolder mixin would layer nicely over PlugInContainer.
Steve Alexander wrote:
Or... I could alter Shane's BTree Folder product to split it into a mix-in class and a usable folder class. Would that work, I wonder?
I just tried it and discovered some subtle problems with __getattr__. It could be the result of TransparentFolders, which is also running on my system. The released versions of BTreeFolder and TransparentFolders work together, but not when I decomposed BTreeFolder into base classes. YMMV! Shane
participants (3)
-
Phillip J. Eby -
Shane Hathaway -
Steve Alexander