[UI] Squeak UI guidelines/heuristics

Bill Schwab BSchwab at anest.ufl.edu
Tue Aug 28 11:45:02 UTC 2007


Jason,

I have a pretty good understanding of Dolphin's MVP framework.  Views
are created from serialized prototype instances.  Composite views are
quite natural - just start with a shell or a container view and
sub-views, assign layout managers, etc.  New views can be wrapped,
though I haven't needed to do it in a long time.  IIRC, it involves
sending something like #addView:asResource: to the appropriate
presenter.  It might also be possible to trick the VC into doing it,
though it is pretty rare, largely being a task for the creator of a
wrapper for a widget library - after that, it's done.  The _real_
problems are in maintaining serialization (STB) conversion methods in
View subclasses.  That is "easy" (well, very doable) in classes owned by
one entity, but when two vendors have different release cycles, it can
get messy.  OA made some changes to help with it, but I remain slightly
skeptical, perhaps only because the one or two custom views I have got
started before that change.

IMHO, there is very little reason to make new views in Dolphin, and I
wish I had understood that from the beginning.  If I ever have trouble
with one of my views, I will probably just replace it with an
ImagePresenter and associated view.  Then all of my graphics code is at
the domain level, and I just render it on a canvas for a bitmap, and
with some attention to resolution, I can print with the same code. 
Anything that does not fit with an image presenter, in my experience at
least, is a composite where the VC does exactly what one wants.

Bill



====================
Jason Johnson jason.johnson.081 at gmail.com wrote:

On 8/25/07, tim Rowledge <tim at rowledge.org> wrote:
>
> As it happens I was one of the reviewers of the original CUA
> documents waaaaaay back. It was certainly comprehensive - in my
> opinion far too comprehensive.

Isn't it always with IBM? :)

> Morphic is a reasonable implementation technology but many of the
> current widgets built with Morphic are nasty. It would be nice to see
> a better bottom layer (under morphic unless anyone wants to rewrite
> everything) that can take advantage of OS facilities for accelerated
> graphics; Sophie has been using a binding to the Cairo libraries for
> example. Tweak has many interesting points but the version Sophie has
> been using (and I have no idea how out of date it might be) has been
> the cause of much gnashing of teeth when trying to debug or work out
> wtf is happening when.
>
>
> tim

Yes, with my MVP suggestion I don't mean Morphic couldn't be used.  In
Dolphin (sorry to harp on it, but it's the best I've ever seen) the
view part really feels like a black box, at least to me.  I never
understood how to create a new widget, and based on how some of the
"goodies" widgets looked I don't know if there even was a clean way.

So if we had the mechanisms set up for the Model and Presenter objects
to communicate to the View space then Morphic or anything else would
work as the view.

Then we could have a tabbed "chooser" view for selecting Morphs for
your GUI you're building.  If you create a new Morph you can select
what kind of Morph it is and it shows up in the GUI builder after
that.

I think Tim's idea of cataloging what is there is good.  And when we
catagorize we would also need to look at implementations so we can
document which ones are good to go, and which ones are good in concept
only but need a rewrite.

Wilhelm K. Schwab, Ph.D.
University of Florida
Department of Anesthesiology
PO Box 100254
Gainesville, FL 32610-0254

Email: bschwab at anest.ufl.edu
Tel: (352) 846-1285
FAX: (352) 392-7029



More information about the UI mailing list