Цитата quarq:
"выделить все" выделилось 15 драйверов а там два лишних ну сняли эти два при этом с кнопкой("выделить все" ) ничего не произойдет она будет в состоянии нажата (или галочка ) если надо снять выделение с 13 паков, что мешает повторно нажать на кнопку которая по функции обязана возвращать триггеры в исходное состояние(заметьте не инвертировать состояние всех тригеров а сброс)? »
|
Изначально кнопка выглядела "[ ] выделить все".
Пользователь нажал на кнопку: выделилось все и кнопка стала выглядеть "[V] выделить все". Из этого пользователь делает вывод что "выделить все" является командой, а галка является индикацией состояния.
Пользователь снимает выделение с нескольких драйверов и кнопка остается без изменений. В этом случае индикация галкой уже не отражает состояние списка, а поскольку надпись осталась прежней, пользователь ожидает что "выделить все" выполнится как команда.
Сценарий №1
Выделено 2 драйвера из 15.
Кнопка: [V] выделить все
Ожидание пользователя: нажатие на кнопку выделит все драйверы.
Выполняемое действие: снятие выделения.
Цитата quarq:
рассмотрим последний возможный вариант вы в ручную натыкали "энное" количество паков а потом решили сбросить ... в этом состоянии кнопка будет выглядеть как "снять выделение" (или с галочкой) просто нажимаем на кнопку (снимаем галочку) происходит обнуление триггеров в дефолтное состояние единственное что необходимо добавить к такой комбинированной кнопке это опрос состояния активных триггеров (из за многообразия фильтров не все триггеры в состоянии "0"или"1" будут активны) »
|
Сценарий №2
Выделено 2 драйвера из 15.
Кнопка: [ ] снять выделение
Ожидание пользователя: нажатие на кнопку снимет выделение.
Выполняемое действие: снятие выделения
В обоих сценариях конечное состояние выделенных драйверов одинаковое, но при при этом название команды и индикация галкой отличается из за того что к этому состоянию пришли разными путями. Такую ситуацию нельзя допускать, так как для идентичных состояний должны быть доступны идентичные команды и идентичная индикация.