Дизайн интерфейса / рабочий процесс: изменение одного и того же свойства для нескольких объектов - PullRequest
2 голосов
/ 09 октября 2008

Я ищу общий дизайн / рабочий процесс пользовательского интерфейса для изменения одного и того же свойства для нескольких объектов.

Предположим, у меня есть класс объектов с именем Person. У класса Person есть свойство City. Я хочу выбрать 5 объектов Person и изменить свойство City для всех 5 на «New York» одним действием в пользовательском интерфейсе.

Это не сложно сделать программно, но мне трудно придумать интуитивно понятный рабочий процесс пользовательского интерфейса. Одна мысль состоит в том, чтобы использовать модал, подобный тому, который используется в iTunes, для изменения информации о нескольких выбранных песнях. Я хотел бы придумать другой рабочий процесс, поскольку эта идея уже получила отпор на работе.

Мысли? Идеи?

Редактировать: Я ценю ответы до сих пор. Есть несколько дополнительных моментов, которые я хотел бы высказать:

  1. Должны ли предыдущие значения City отображаться каким-либо образом? Если так, то как? Или как на экране комбинированного свойства показывать, что все значения City в настоящее время одинаковы или различны с цветным или другим индикатором?
  2. Как должны отображаться логические свойства (например, Person.IsAlive)? Используете ли вы переключатель с тремя состояниями / флажок? Нас выпадающий с тремя значениями? Другие идеи?

Ответы [ 6 ]

2 голосов
/ 09 октября 2008

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

1 голос
/ 09 октября 2008

Я бы, вероятно, сделал это с довольно стандартным представлением списка - разрешить множественный выбор - и когда вы изменяете поле в любой выбранной записи (например, раскрывающемся списке), когда выбрано более одного элемента, все элементы обновляются до одинакового значения .

В некоторых случаях вы можете отключить это действие, поэтому укажите элемент ссылки справа, чтобы указать, что все элементы будут обновлены вместе.

0 голосов
/ 04 ноября 2009

Я совершил нечто подобное с помощью мастера редактирования. Я выбираю 1-10000 различных строк и затем щелкаю правой кнопкой мыши, чтобы отобразить экран «Редактор мастера». Первая панель отображается с возможностью установки до 8 различных полей. Каждое поле, которое я разрешаю изменить, будет применено ко всем строкам. У меня есть флажки рядом с каждым полем, чтобы выбрать, какие поля изменить. Затем, когда отмечен, покажите текстовое поле, чтобы захватить новое значение рядом с. Если все строки имеют одинаковое значение, то они отображаются серым цветом, например, если все для одного и того же города показывают Город в сером, если в одной из строк не указан тот же город, что и в первом, выделите поле города оранжевым цветом и отобразите оранжевое сообщение ' Предупреждение. Есть строки, отличные от первой выбранной строки ». Я делаю страницу подтверждения, чтобы проверить, что пользователи хотят продолжить, и затем кнопку завершения. Затем заново отобразите строки после завершения.

Rows to update : 3

    ..........Old Value... Change?....New Value

    Field A   ABC
    Field B   123          Y          845
    Field C   BOB 

                       [<Back] [Next>] [Finish]

<== Выделите BOB оранжевым цветом, если в одной из строк нет BOB в поле C. </p>

надеюсь, что помогает

0 голосов
/ 09 октября 2008

Если у вас ограниченное количество таких полей, вы можете использовать парадигму, аналогичную «формату копирования и вставки» в Word или Excel. Выберите прототип записи, щелкните правой кнопкой мыши, выберите «Копировать город ...» из меню, а затем вставьте остальные.

Но мне больше нравится ваша оригинальная идея ...

0 голосов
/ 09 октября 2008

Ну, вам нужно вручную выбрать весь объект, поэтому множественный выбор кажется естественным. После этого вы можете реализовать пункт контекстного меню (если у вас уже есть контекстное меню, сделать его подменю с именем «Редактировать») и предлагать все существующие свойства в качестве пунктов подменю. Примерно так:

  • Редактировать
    • Имя
    • Город
    • и т.д.

Когда выбран элемент меню, запрашивать у пользователя новое значение и впоследствии обновлять все записи.

0 голосов
/ 09 октября 2008

Одним из подходов будет установка разделенной панели, в которой все люди находятся на одной стороне, а все свойства людей - на другой стороне.

Очевидно, что это плохо сработает для редактирования отдельных людей.

...