[UI] ToolBuilder

Gary Chambers gazzaguru2 at btinternet.com
Fri Sep 7 22:46:15 UTC 2007


Also, IMHO, it looks like ToolBuilder was there to just support the tools in
an MVC/Morphic/Other manner rather than a more general UI. I.e. just enough
for the IDE tools...

> -----Original Message-----
> From: ui-bounces at lists.squeakfoundation.org 
> [mailto:ui-bounces at lists.squeakfoundation.org] On Behalf Of 
> Matthew Fulmer
> Sent: 07 September 2007 11:30 pm
> To: ui at lists.squeakfoundation.org
> Subject: [UI] ToolBuilder
> 
> 
> On Tue, Sep 04, 2007 at 02:09:10PM -0400, Bill Schwab wrote:
> > I am not so much thinking of a new IDE, only hooking into the tools 
> > (that I _think_ are intended) to take the existing tools over to 
> > tweak, etc.  I vaguely recall seeing some of it in action, but it 
> > might be very far short of what would be needed.  One way 
> to find out 
> > though.
> 
> You may be thinking of PlusTools, which is a port of the 
> Squeak toolset to use the ToolBuilder abstraction layer. 
> 
> ---- A survey of squeak UI toolkits ----
> 
> The default squeak browsers use the Pluggable*Morphs, whose 
> sole purpose was to get the toolset, which was and still is 
> written for MVC, to work in Morphic. They are not terribly 
> useful morphs and are not representative of Morphic at all. 
> They are the keepers of most of the "Unspeakable Horrors" in 
> Morphic. Unfortunately, due to the popularity of the toolset, 
> these widgets have given the average squeak developer a bad 
> image of Morphic.
> 
> ToolBuilder has an equally utilitarian original purpose: port 
> the toolset to Tweak. Thus, it currently supports exactly 
> what is needed to implement the Toolset. Unlike the Pluggable 
> morphs, it creates a new, incompatible but slightly simpler 
> abstraction layer, meaning that the entire toolset must be 
> ported to use it. PlusTools is the name of this port, and it 
> is not in the image by default.
> 
> OmniBrowser is another abstraction created for the toolset. 
> It is mostly a new model rather than a new view. That said, 
> it does have it's own view abstraction I know nothing about.
> 
> Monticello uses yet another custom view abstraction, or so I 
> have heard. I know nothing about it.
> 
> ToolBuilder is currently very primitive with regards to 
> layout policy and widget variety. That is understandable, as 
> it has not been used much since it was created. However, it 
> does provide the necessary abstraction to enable a UI to be 
> run on MVC, Morphic, Tweak, and (maybe?) Seaside. From what I 
> have seen of
> it:
> 
> I am not sure if ToolBuilder supports a hierarchal box model 
> layout or not. It supports a Panel widget, but I have only 
> seen it applied to the toolbar in the Browser. I have only 
> seen ToolBuilder used with window-size relative positioning 
> (ie, put this text pane in the rectangle (0 @ 0.5 corner: 1 @ 
> 1), where (0 @ 0 corner: 1 @ 1) is the drawable window area). 
> No box model as far as I can tell. 
> 
> Also, I don't know if ToolBuilder supports dynamic UI's; all 
> of squeak's tools are build-then-forget; the UI is never 
> changed once built. I don't know if that is a technical 
> limitation or a lack of imagination.
> 
> 
> Widgets ToolBuilder always supports:
> - Lists
> - Text areas
> - Button
> - Panel
> - Window
> 
> Widgets ToolBuilder optionally supports:
> - Tree               (with no fallback)
> - Multi-select list  (with list fallback)
> - Input field        (with text area fallback)
> - Action button      (with button fallback)
> - Radio button       (with button fallback)
> - Check box          (with button fallback)
>     
> 
> So, in summary, ToolBuilder may be a fine start for a 
> portable GUI framework, but it needs work and PlusTools is 
> not in wide use yet and so still has a few rough edges. And 
> there are quite a few projects that aren't using it.
> 
> Jason: Could you describe MVP and what it is? I read a 
> tutorial once but didn't get it...
> 
> -- 
> Matthew Fulmer -- http://mtfulmer.wordpress.com/
> Help improve Squeak Documentation: 
> http://wiki.squeak.org/squeak/808 
> _______________________________________________
> UI mailing list
> UI at lists.squeakfoundation.org 
> http://lists.squeakfoundation.org/mailman/listinfo/ui
> 



More information about the UI mailing list