[squeak-dev] "find method" changes

Chris Muller asqueaker at gmail.com
Thu Mar 11 03:26:59 UTC 2010

Michael, this is absolutely fantastic.  You seem to have read my mind
with nearly every usability feature that you mentioned.  Nice code,

> I suspect they all started with the simple aim of "Bring up a dialog with a
> given title, and a list of items, and let me know which was picked", but
> then incrementally added more features:
> -Let the user see all options in the list easily.
> -Allow them to use mouse to move to an entry and activate it (support direct
> click [or double-click], and pressing an Accept button)

Yes of course, and this is where many designers stop caring.  Argh!

> -Allow use of the keyboard to incrementally filter out / disable entries as
> the user types a substring. Allow backspace to undo characters.


> -Keep a matching item selected at all times while the filtering substring is
> changed, and allow the arrow keys to change this selection.


> -Allow <enter> and <cmd-s> to choose the selected item, and <esc> and
> <cmd-l> to cancel the dialog without selection.


> -Ensure that closing the window cancels the dialog without selection.
> -Have a visible Accept and Cancel button to help new users navigate their
> way around.
> -Let me know that the dialog was cancelled.

I love it.  May I assume an MIT license on this code?  If so, I would
like to integrate this into the trunk, to replace ChooserTool.

I do have a couple of questions.

  - Is there a reason you chose to answer the index or 0 rather than
the object selected or nil?  The only way this could possibly convey
more information is if you have duplicate entries in the list, which
seems very unlikely..  The cost is that the developer has to index
back into some list, which may have originated from a non-Sequenceable
collection, forcing him to keep create and remember transient one to
index back into just to use it.

  - I'll take the filtering the way it is, but since you are obviously
one who cares about refined usability, I will tell you what my one
additional usability idea..  Order the results so that left-matches
are before mid-string matches.

Thanks again for this work!

 - Chris

More information about the Squeak-dev mailing list