Открыл для себя недавно профили в браузерах. Жутко полезная вещь. Раньше как дурак пользовался десятком браузеров для разных аккаунтов. Ну так вот в Chrome список профилей выстраивается по алфавиту и нельзя поставить рядом два связанных по смыслу профиля. Из этого я задумался, а каким вообще должен быть GUI список.
- Список должен позволять добавлять и удалять элементы из него.
- Список должен позволять копировать, вырезать и вставлять элемент из другого списка.
- Список должен позволять изменять элемент. Если у элемента есть имя, то должна быть возможность менять его.
- Список должен позволять выполнять сортировку. Нужна как автоматическая сортировка по возрастанию/убыванию, по параметрам, так и пользовательская произвольная сортировка.
- Список должен позволять выбирать один или несколько элементов и применять к выбранному количеству элементов любые операции, которые можно выполнить и над одним элементом. Например, массовое удаление или копирование элементов.
- Список должен поддерживать drag-and-drop функции. Например чтобы перемещать элементы между списками, или добавлять в список элемент из другого источника, или удалять элемент путем его выноса за рамки списка.
- Список должен помнить свое последнее состояние. Позицию на полосе прокрутки. Выбранные элементы. Очень неприятно, когда список обновляется и теряет своё состояние. Приходится снова крутить полосу прокрутки и искать элементы.
- Часто используемые элементе списка можно потихоньку поднимать наверх, а менее используемые опускать вниз.
- Список должен поддерживать поиск. Например поиск по имени или другим параметрам.
- Список должен поддерживать фильтрацию элементов.
Видите сколько пунктов. Один маленький список, а сколько всего надо реализовать, чтобы сделать его по-настоящему удобным для использования.
Например, в Chrome нельзя отсортировать список закладок по алфавиту, а иногда это нужно. А в Firefox это есть. Вроде бы мелочи, но очень сильно влияют на удобство использования.