t-oster / VisiCut

A userfriendly tool to prepare, save and send Jobs to Lasercutters
https://visicut.org
Other
226 stars 114 forks source link

Unifying mapping and laser settings #168

Open peteruithoven opened 11 years ago

peteruithoven commented 11 years ago

First mockup, shoot away. laser-settings-ui-01

peteruithoven commented 11 years ago

Added a few details. Found ways to incorporate saving mappings and mapping multiple selections to one profile. Not sure about the "Edit advanced profile settings" button placement. Feels like that should be in the opened up laserproperties parts somehow. But I'm not sure how. laser-settings-ui-02

mgmax commented 11 years ago

Looks good to me. The only confusing thing would be the ordering: Will the order in your example be engrave-cut-mark? Is there a way to say "cut green, then yellow"?

This is already a problem with the current GUI, but I think we should also find a fix for this if we rework the whole interface.

peteruithoven commented 11 years ago

Thanks for the feedback! Coming from modern web interfaces I was assuming drag and drop. But maybe we should add a indicator, like jqueryui's sortable, because it's a different context. http://jqueryui.com/sortable/ laser-settings-ui-03

mgmax commented 11 years ago

This sounds good, but I fear most users will still be confused. We have many users coming from the Epilog windows driver which enforces "engrave first, then cut". They often just select what to engrave and what to cut and assume it will be in a sensible order. If VisiCut doesn't do it right by default, they blame it.

Can we just enforce a default sorting, as long as it is not changed explicitly?

I propose using a list for each profile: mockup

The user would just drag and drop "blue" to "cut" when he wants to cut it. For the (usually not needed) case of cutting before engraving, the user would drag the "cut" group before "engrave", or use the up/down buttons. I don't think that users understand that you can also drag-and-drop whole groups and not only individual items.

peteruithoven commented 11 years ago

Nice idea. I need to think about how I can get the actual properties in here somehow (which is important for my users).

Because these interfaces are quite differently than the existing one, prototyping would be interesting. A very simple but unexpectedly useful way is "paper prototyping". The basic idea is that you draw the interface on pieces of paper in such a way you can simulate the interface. You prepare a couple of tasks for people, like

But if this is really not your cup of tea some jQuery javascript kind of mockups might be a easy way to prototype.

peteruithoven commented 11 years ago

Inspired by mgmax ideas of putting profiles first I made the following mockup. By putting the profiles first it makes more sense when we limit the reordering of profiles. So for lasercutters like Epilog we could just disable reordering. It also takes away a selection for users. In the current interface they have to select both a selection (a color for example) and a profile. In this interface I reused the progressive disclosure idea we use for files.

I wouldn't go for the drag and drop idea because I think this is a interface type that people might have less experience with. laser-settings-ui-04

mgmax commented 11 years ago

I dislike the use of a dropdown box (intended for "select one") for showing a list of selected items. Such multi-selection lists are rather unusual in programs. The only example I remember from a desktop application are attachments in Mozilla Thunderbird: attachment2 right clicking opens a drop-down menu where you can delete items: attachment1

Most web interfaces seem to show a list of elements with an "x" button for removing after each single element. A single "add" button is often placed at the bottom of the list:

(add...)

To be honest, I don't know how to bring this into a Java desktop application without looking strange.

peteruithoven commented 11 years ago

Good point. I find it hard to find java ui examples so I simply used the Java Swing List element in the following mockup. Another benefit of a list is that reordering might be easier and more user friendly to implement. I would prefer this list (and profile area) to grow when items are added but seeing Thomas had a hard time making the tables grow to the used space it might also work if they have a height of 3 lines and then start to scroll.

laser-settings-ui-06

What do you mean with "this" when you talk about bringing this into a Java desktop application? These dropdowns, lists or the whole interface?

peteruithoven commented 11 years ago

Just for fun, this was the paper prototype I made of the mockup and tested on a person in about an hour. img_0519-resized Hope to find the time to do some more tests, also with the whole interface to give people the right context.

peteruithoven commented 10 years ago

After some tests and discussions some first basic improvements:

laser-settings-ui-07

peteruithoven commented 10 years ago

I personally found the combination of found mapping options and presets (saved mappings) a bit confusing so this is another variation:

laser-settings-ui-08

mgmax commented 10 years ago

the simple variant on the left looks nice, but the "advanced" checkbox can be confusing. Imagine a shared computer that is used by beginners and experts. An expert uses VisiCut, leaves "advanced" checked. Now a beginner uses Visicut and is confused by the menu.

I see two solutions:

peteruithoven commented 10 years ago

I totally agree, I fell into the modes (like beginners / advanced) pitfall again. I made the following iteration, inspired by your second solution: laser-settings-ui-09 I also made the collapsible list more consistent with the regular ui design and added a bit more explanations.

peteruithoven commented 10 years ago

I'm doubting about settings open and close icons. I feel, in contrast to the above designs, option B makes more sense. laser-settings-ui-properties-icon

mgmax commented 10 years ago

I like it :)