Мне нужен пользовательский интерфейс, который позволяет пользователям сортировать таблицу по нескольким столбцам (например, сортировать по цвету, а затем по цене в цвете или, альтернативно, по цене и затем по цвету в цене). Единственный такой интерфейс, с которым я знаком, - это диалоговое окно, которое можно найти в Excel в разделе data> sort, но это довольно неуклюже и не позволяет быстро переключаться между представлениями. Я бы предпочел интерфейс в стиле iTunes, который позволяет быстро сортировать, нажимая на заголовки столбцов. Однако такие интерфейсы обычно позволяют сортировать только по одному столбцу (исключение составляет сам iTunes, который имеет очень ограниченную, явно жестко закодированную возможность сортировки по «Альбомам по исполнителям» и «Альбомам по годам», нажав на заголовок альбома).
Я могу представить интерфейс, в котором заголовок каждого столбца имеет несколько чисел, например, нажатие на 1 делает столбец первичным ключом сортировки, нажатие на 2 вторичным ключом и так далее. В качестве альтернативы, щелчок (или щелчок правой кнопкой мыши) по заголовку столбца может вызвать раскрывающееся меню с «первичной сортировкой», «вторичной сортировкой» и т. Д. Однако я никогда не видел такого реализованного интерфейса и не имею хорошая интуиция вопросов юзабилити, которые могут возникнуть.
Существуют ли приложения, которые позволяют сортировать по нескольким столбцам, используя заголовки столбцов? Вы могли бы указать мне на это? Есть ли полезные результаты юзабилити в отношении таких интерфейсов - какие работают лучше, а какие нет?
Кроме того, хотя меня больше всего интересует спецификация интерфейса, любые советы, которые можно передать людям, реализующим его, будут приветствоваться, например. общедоступные библиотеки, которые предоставляют части решения (особенно Java).
Редактировать: два человека предложили использовать диалоговое окно в стиле Excel. Это не сработает. Для моего приложения пользователи должны найти «лучшее соответствие» среди существующих записей таблицы (что часто не является идеальным соответствием). Таблица слишком велика, чтобы держать ее в голове, поэтому вам нужно продолжать сканировать соответствующие части, и полезно многократно сортировать таблицу, чтобы получить несколько представлений. Необходимость проходить через диалоговое окно с несколькими вариантами для каждого изменения представления слишком медленная; к тому времени, как вы закончили работу с окном, вы забыли результаты предыдущего просмотра.