Использование пользовательских расширений для рабочих элементов TFS
ОГЛАВЛЕНИЕ
Стандартные списки
Для формирования связанных списков нам помогут встроенные глобальные списки (элемент GLOBALLIST). Глобальные списки очень удобны при работе с часто меняющимися списками и большими списками и одни и те же списки могут использоваться в различных рабочих элементах. Для нашего примера мы создадим несколько глобальных списков (см. Рисунок 1):
- Список «Operating systems» представляет собой набор типов операционных систем, который будет главным списком;
- Списки «OS Microsoft Windows», «OS Linux» и т.д. представляют собой список версий для каждого из типа операционной системы.
Рисунок 1. Глобальные списки
Далее необходимо создать два текстовых поля, которые буду хранить в себе информацию о выбранных полях:
- Поле «OS Type» будет содержать информацию о типе операционной системы;
- Поле «OS Version» будет содержать информацию о версии операционной системы.
Рисунок 2. Новые поля
Теперь необходимо для каждого поля определить список. Особенность в нашем случае заключается в том, что для поля «OS Type» должен быть статический список, а для поля «OS Version» необходимо определить динамический список, которые будет менять свой набор значений в зависимости от значения, которое выбрано в поле «OS Type». Для того чтоб подключить список к полю «OS Type», для него необходимо указать правило «ALLOWEDVALUES» и в нем установить ссылку на глобальный список «Operating systems» как изображено на рисунке ниже (см. Рисунок 3).
Рисунок 3. Подключение списка к полю
Для поля «OS Version» необходимо определить условия, по которым будет изменяться содержимое его списка. Для этого необходимо для поля определить правило «WHEN», которое выполнится при истинности прописанного в нем выражения. Правило «WHEN» может отслеживать изменения значения любого поля, которое принадлежит рабочему элементу. Как условие определим соответствие значения ссылки «CMC.Bug.OSType», которая определяет поле «OS Type», каждому значению из глобального списка «Operating systems» (см. Рисунок 4).
Рисунок 4. Определение условия для поля
Результатом выполнения правила должно быть установка в значение «ALLOWEDVALUES» наименования необходимого глобального списка (одного из «OS Microsoft Windows», «OS Linux» и т.д.)
И на последнем шаге необходимо новые поля разместить на форме рабочего элемента, которые должны иметь встроенный тип стандартного элемента пользовательского интерфейса «FieldControl» (см. Рисунок 6).
Рисунок 6. Определение полей на форме
Результатом проведенных изменений на форме должны быть два списковых поля с зависимыми значениями (см. Рисунок 7).
Рисунок 7. Новые поля на форме рабочего элемента
В примере используется статичный набор данных для каждого списка. Если же планируется использование динамических данных для глобальных списков, допустим, с внешних источников, можно написать внешнее приложение, которое будет получать информацию и обновлять ее с помощью утилиты импорта глобального списка из командной строки glimport.