Как указать пользователю, что команда влияет на подмножество множественного выбора? - PullRequest
1 голос
/ 05 мая 2010

Вот пример, который иллюстрирует мой вопрос.

  • У меня есть программа, которая перечисляет 1000 элементов.
  • Я выбираю 10 из 1000 предметов.
  • Программа включает кнопку, указывающую, что команда доступна для моего выбора.
  • Я нажимаю кнопку, и появляется окно.
  • Я делаю некоторые изменения в окне и нажимаю ОК.
  • Команда меняет 5 из 10 элементов в моем множественном выборе, и эти 5 измененных элементов теперь отражают измененное состояние в моем списке.

Мой вопрос:

Как указать пользователю, что команда влияет на подмножество множественного выбора перед нажатием OK?

Кто-нибудь может привести примеры существующих продуктов, которые хорошо справляются с этим сценарием?

Ответы [ 2 ]

2 голосов
/ 07 мая 2010

Если список содержит элементы разных типов, и действие применяется только к определенным типам элементов списка, то и элемент списка, и кнопка действия должны отражать, к какому типу он относится.И этот пункт должен отражать, что действие имело место.(Как это звучит в вашем описании.)

Например, вот список различных типов элементов:

ITEMS
NAME       TYPE      STATE
====       ====      ==== 
oatmeal    cookie
chocolate  cake
chocolate  pudding
carrot     cake
cherry     pie

Теперь, если пользователь выбирает все элементы в этомсписок, затем кнопка с надписью

"Frost Cake" 

становится активной.И после того, как диалоговое окно «Морозный пирог» было открыто и закрыто после выполнения действия, список теперь выглядит так:

ITEMS
NAME       TYPE      STATE
====       ====      ==== 
oatmeal    cookie
chocolate  cake      frosted
chocolate  pudding
carrot     cake      frosted
cherry     pie

Конечно, этот пример может быть не совсем правильным.Потому что теперь вы можете захотеть узнать, какая глазурь использовалась, и вам может не захотеть наносить одну и ту же глазурь на все пирожные.Но это еще одна проблема.

1 голос
/ 07 мая 2010

Я не знаю ни одного существующего продукта, который бы решал эту проблему так, как вы пытаетесь, но я думаю, что вы выбираете правильный подход.Например, CorelDraw позволяет избежать этой проблемы, не позволяя пользователям многократно выбирать сочетание редактируемых и нередактируемых («заблокированных») объектов даже для просмотра информации, доступной только для чтения.Аналогично, IronCAD не позволит вам многократно выбирать объекты определенных классов (например, камеру и деталь).Это кажется ненужным ограничением для меня.Windows XP просто игнорирует вас, если вы пытаетесь открыть окно свойств для нескольких элементов разных классов (например, «Мой компьютер» и файл PDF).Это может сбивать с толку и расстраивать.Мне кажется, вы хотите предоставить пользователю максимальную гибкость, позволяя многократный выбор чего-либо и делать как можно больше для того, что выбрано.

Вот несколько идей:

  • Сначала попробуйте указать соответствующую информацию в главном / родительском окне, чтобы пользователь мог догадаться, что некоторые действия не повлияют на определенные выбранные объекты.Например, придать объектам только для чтения отчетливый вид, возможно, только при выделении (я представляю маленькие замки для ручек для приложений типа CAD).Каждый класс объекта должен иметь различный внешний вид, возможно, помечая каждый конкретным значком.Таким образом, поскольку пользователи выбирают несколько объектов, они могут предвидеть, какие команды выполняют, а какие нет (например, этот элемент является камерой, поэтому его можно перемещать, но, очевидно, его нельзя изменить в размере).

  • Если приложение не может сказать, что и к чему относится, до тех пор, пока не откроется диалоговое окно, возможно, изменится внешний вид выделения объектов, для которых действие не применяется.Например, когда пользователь изменяет значение свойства, все объекты, у которых отсутствует это свойство, имеют «вторичный» вид выбора в родительском окне.

  • Если критерий для применения действия не существуетОчевидно, вам могут понадобиться некоторые текстовые подсказки.Пункт меню или кнопка, вызывающая действие, может включать в свою подпись, сколько элементов оно затрагивает или на что оно влияет (например, «Только листовой металл»).В поле «Свойства» вы можете включить столбец рядом со столбцом свойств, в котором указано, что многие выбранные элементы применяются к каждому свойству или могут быть изменены.

  • Если это слишком много места, и все, что вам нужно сделать, это указать, что затронуты только некоторые объекты (не точное число, идентичность или пропорция), то, возможно, вы можете использовать сноску в диалоге.Создайте символ, который означает «частичный», может быть, наполовину заполненный круг?(Не используйте звездочку - это слишком часто означает «требуется».) Поместите этот символ в любой элемент управления, который влияет на подмножество выбора.В нижней части диалогового окна отобразите символ с текстом «= относится только к некоторым выбранным элементам».

  • Вы правы, указав, что действие применяется только частично доПользователь совершает это действие, но в качестве запасного варианта вы можете предоставить некоторую обратную связь после действия.В общем, вы хотите сделать эффект любого действия визуально видимым в ваших объектах в родительском окне, и этого может быть достаточно.Однако, если вы все еще беспокоитесь о путанице пользователей (например, объектами, которые прокручивались из поля зрения, которое они позже заметили, что они не были изменены), то, возможно, вы можете предоставить текстовое уведомление (самоустранившееся), которое говорит: «[actioned] [n] of [m] selected items », когда действие завершено.Возможно, предоставьте ссылку Справка, если пользователь не понимает, почему.

Кажется, вы прорезаете новый путь проектирования пользовательского интерфейса.Будет хорошей идеей протестировать все, что вы решите для пользователей, чтобы увидеть, будет ли оно на самом деле работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...