Table multi level sorting

Hi,

I’d like your advice on the most friendly choice to present a user - for accomplishing the following:

I have a table where currently I allow the user to sort by a single column.

I’d like to allow user to sort by more than one column (e.g., sort by 2nd column, then by 5th column, then by 1st column).

I thought of two options:

  1. A single column sorting would be triggered by a double click on the column heading. A multi column sorting would be triggered by a ctrl-double-click/ctrl-click (for ascending/descending order).
  2. Create a dialogue box (a la excel) where the sorting columns could be prioritised.
    I lean towards the first solution (the second solution is either too rigid in the maximum number sorting could be performed on, or else the dialog box would have to be created in such a way as to allow any number of columns to sort by (which does not seem trivial).

Thus, I would like to ask for your suggestions: how would you solve this problem of asking user which columns she wants to sort by and in which order ?

Thanks,

Ron.

image001.jpg

image003.jpg

I like option (1) as well, although I'd stick with single click, and
ctrl+click and avoid double clicks.

Another option (3) would be to allow the user to drag columns left and
right, and prioritize by their left-to-right order.

Another still (4) would be to add a number to each column header that
indicates it's rank, and then use a click to increase it's rank (swaps
it's rank with the next highest, and ctrl+click to decrease it's rank.

The question of which mechanism to use is left to how advanced you
expect your average user to be.

That is if users will typically use the app just once, then all users
will be novice, and these mechanisms we're describing are NOT
immediately obvious. Either directions should be plainly visible, or
you should supplement these rich interactions with your option(2)
where you present them with a button that opens a tool for sorting
columns.

If your user base is anticipated to be small, and primarily people who
will reuse the product, then the more rich interaction mechanisms (3 &
4) would certainly be preferable to these users.

Best,
adam

···

On Mon, Oct 6, 2008 at 6:23 AM, Barak, Ron <Ron.Barak@lsi.com> wrote:

Hi,

I'd like your advice on the most friendly choice to present a user - for
accomplishing the following:

I have a table where currently I allow the user to sort by a single column.
I'd like to allow user to sort by more than one column (e.g., sort by 2nd
column, then by 5th column, then by 1st column).

I thought of two options:

A single column sorting would be triggered by a double click on the column
heading. A multi column sorting would be triggered by a
ctrl-double-click/ctrl-click (for ascending/descending order).
Create a dialogue box (a la excel) where the sorting columns could be
prioritised.

I lean towards the first solution (the second solution is either too rigid
in the maximum number sorting could be performed on, or else the dialog box
would have to be created in such a way as to allow any number of columns to
sort by (which does not seem trivial).

Thus, I would like to ask for your suggestions: how would you solve this
problem of asking user which columns she wants to sort by and in which order
?

Thanks,
Ron.
_______________________________________________
wxpython-users mailing list
wxpython-users@lists.wxwidgets.org
http://lists.wxwidgets.org/mailman/listinfo/wxpython-users

Barak, Ron wrote:

Thus, I would like to ask for your suggestions: how would you solve
this problem of asking user which columns she wants to sort by and in
which order ?

Use a stable sort (http://c2.com/cgi/wiki?StableSort) for your
single-column sort and you're done. You don't need any
multi-column-selection mechanism at all. Users can reach the lexical
sort of columns A subsidiarily B, simply by clicking on the B heading
first, and on the A heading second.

Note that Python's builtin sort is stable, and guaranteed so.

regards, Anders