[net.micro.mac] Multiple File Selection in SFGetFile

tim@k.cs.cmu.edu.ARPA (Tim Maroney) (09/19/85)

Again my thanks to everyone who responded to my query about selecting
multiple files in the Standard File Package.  My final decision was to
extend the "SFSAMPLE.TEXT" example program in the "Examples 2" disk of the
latest Software Supplement.  This work is proceeding rapidly and well, and I
will post the sources (Lisa Pascal, unfortunately, but it should be easy to
translate) when I finish, which should surely be by Friday.

While this dialog will specifically deal with files, it should be easy to
modify it to deal with resource names and whatever other lists of strings
are desired.  Considerably more of the code will be in place than in the
"SFSAMPLE.TEXT" example program.

There is one question, however, concerning the user interface.
Shift-clicking is the standard way of implementing "extend selection".
However, in this case I don't think that's right, for two reasons.  First, I
don't think this is user-friendly; it is not self-explanatory and is
probably not known to most naive users of the Macintosh.  Second, if
shift-clicking extends the selection, then a plain click would set a new
selection; this creates the possibility of inconvenient errors.  For
instance, imagine that you've just gone through the list and selected five
files by shift-clicking, then forget to hold down the shift key (or let
your finger slip by accident) for the sixth.  Your five existing selections
go away, wasting your time and perhaps inducing you to defenestrate your
Macintosh.

Because of this, I intend to just make a click mean "extend selection".  To
deselect a file name, you will have to click again on it.  This is the most
user-friendly and error-proof way of doing it, as far as I can see, but I
would welcome comments on this evaluation.
-=-
Tim Maroney, Carnegie-Mellon University, Networking
ARPA:	Tim.Maroney@CMU-CS-K	uucp:	seismo!cmu-cs-k!tim
CompuServe:	74176,1360	audio:	shout "Hey, Tim!"

barmar@mit-eddie.UUCP (Barry Margolin) (09/20/85)

In article <546@k.cs.cmu.edu.ARPA> tim@k.cs.cmu.edu.ARPA (Tim Maroney) writes:
>Because of this, I intend to just make a click mean "extend selection".  To
>deselect a file name, you will have to click again on it.  This is the most
>user-friendly and error-proof way of doing it, as far as I can see, but I
>would welcome comments on this evaluation.

I would like to propose a modified version of your solution.  Provide a
check-item (or radio buttons) in the dialogue that lets the user specify
that multiple selections should be permitted.  This is because the
current mechanism is optimized for the normal case of selecting a single
item.  If multiple selections are the norm for a particular use of the
routine, the caller can initialize the item to be checked, and even make
it unchangeable.  And if the caller is not prepared to accept multiple
selections (as in the standard Open... dialogue), the item can be
disabled completely.
-- 
    Barry Margolin
    ARPA: barmar@MIT-Multics
    UUCP: ..!genrad!mit-eddie!barmar

bhyde@inmet.UUCP (09/25/85)

"Hey Tim"
  The purpose of standard user interfaces is to provide the user with
dependable consistent unsurprizing service.
  Consider that this these standards are used in MacDraw for objects, the
Finder for documents, MacWrite for selection regions, etc.  etc.
Changing this isn't user friendly.
  The short comming of shift click is that for huge multiple
selections it is a lot of work.  For example to sellect most of the
files in a folder of fifty files is a pain.  In such cases alternate
methods (nonstandard--bizzare methods) seem called for, wild cards
etc.  The only models for those I'm aware of those are the querry
mechinisms in the data base products.  They all seem sort of clunky.
  The finder convention of allowing a sellected file to be desellected
via an additional shift click is some help.  For example one can 
drag sellect the entire folder's contents, sort-size desellect a few,
sort-alpha desellect a few, and then sort-kind and resellect
a few.
ben hyde, cambridge.