views:

69

answers:

3

I'm working on a small project that involves selecting time intervals and then using them for my nefarious purposes (which basically boils down to making a robot voice shout things at me). However, I can't decide on a proper paradigm for choosing these intervals. The required data is as follows:

Action (Text)
Starting At (Time, can be minutes/seconds)
Interval (Time, can be minutes/seconds)

The best interface I've been able to come up with is:

Action: [_____________________] | Starting At [__][__] | Interval [__][__]

In the above example, the small [__] areas represent spinners. Can anyone else think of a more standard, consistent interface design?

+3  A: 

I'm no GUI expert, but, personally, I love interfaces that give me three ways to choose an interval: "starting at", "ending at", and "duration". Of course, when I advance (say) the duration, it's crucial to have the "ending at" advance in tandem (I find it more intuitive to have the "starting at" interval fixed when either of the other is changed, and the duration fixed -- and the "ending at" changing -- when the "starting at" is the one that's being changed -- however, I could not put into words why I find that intuitive... I guess that's part of me not "being a GUI expert", just a user who knows what I like and dislike;-).

Alex Martelli
you possibly find it intuitive because that's what most major "planners" (like Outlook) do and you have gotten used to it...
Marjan Venema
@Marjan: "Gotten used to it" has a bonus that's hard to beat for the user, but is a burden for the designer trying to optimize an interface (because his ideas and all testees are biased towards familiarity). Outlook certainly isn't ideal especially if it's a sequence of actions, +1.
peterchen
+3  A: 

Outlook has a pretty good paradigm for choosing intervals in the appointment creator.

Robert Harvey
+3  A: 

My thoughts:

For text input, use a Miniparser, that would accept inputs like 1:30, which works much better for power users. From my limited experience watching users, this isn't harder to learn when they see samples (e.g. an initial selection) and have another mechanism to help them out when they are stuck (e.g. one spinner for minutes, one for seconds).

Try both positionings for looks and usability:

[spin-minute] [edit] [spin-second]
[edit] [spin-minute] [spin-second]

An advanced Miniparser might allow a range editor and allow different formats, say

1.30 - 2.15    (starts at 1.30, runs for 45 seconds, '-' for range)
1.30 +45       (the same, '+' for start and duration)
90 + 0.45      (the same, time in seconds)

I have no ideas how to place spinners here.


Ideally, you have a visual editor, that can show the relationship between the items:

[Action 1]             [.....>----<.......................]
[Action 2]             [..........>---------<.............]

Range selectors could be something like this.

dragging one of the range "bounds" should show a vertical marker (e.g. dotted line) through all sliders so that you can see the relationship between them.

You might want the movement to "snap" to other markers, so that they can be chained easily.

When implementing snapping, here are my expectations: - make it an option
- have a method to disable it on the fly, (e.g. by holding down shift) - when repeatedly pressing and releasing shift, it should jump between the snapped and the floating position (i.e. you have to track these separately)


peterchen