Расширенная интеграция коллективной работы

Интеграция поддержки хранилища с платформой начинается с продуманного проектирования.  Цель - интегрировать поток операций, известный пользователям хранилища, с концепциями рабочей среды.  Так как расширить UI и функциональность рабочей среды можно многими способами, то у вас есть некоторый простор для достижения интеграции.  С чего же начать?

API коллективной работы изучается не только для того, чтобы можно было создать модуль поддержки коллективной работы.  (В последующих разделах мы рассмотрим конкретные применения модуля коллективной работы.)  Требуется понимание интеграции рабочей среды.  Итак, начнем с общих представлений.  В качестве учебного примера для интеграции модуля коллективной работы с платформой мы будем использовать клиент CVS. Давайте рассмотрим некоторые функции модуля поддержки CVS и выясним, какие возможности рабочей среды и коллективной работы можно применить для достижения такого же уровня интеграции.

Рабочая среда с пунктами меню CVS, панелями, заданиями и значками оформления

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

Начало работы

Определите класс RepositoryProvider , представляющий вашу реализацию.
Создайте мастер настройки, чтобы пользователи могли связать свои проекты с вашим модулем.
Добавьте действия в меню Коллективная работа.

Оснастка панелей ресурса

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

Обработка пользовательского изменения ресурсов

Измените процесс сохранения ресурсов так, чтобы перед изменением файла пользователем проверялись права доступа.
  • Реализуйте перехватчик fileModificationValidator.
  • Для предотвращения или изменения процедуры сохранения файла воспользуйтесь validateSave.
Организуйте проверку прав доступа пользователя перед редактированием файла.
  • Реализуйте перехватчик fileModificationValidator.
  • Для предотвращения или изменения процедуры редактирования файла воспользуйтесь validateEdit.
Отслеживайте изменения ресурсов рабочей области, чтобы хранилище тоже изменялось соответствующим образом.
Убедитесь, что для операций с ресурсами, вызывающих перехватчики перемещения и удаления или fileModificatonValidator правильно настроена блокировка.
Включите поддержку связанных ресурсов

Рационализация задач, связанных с хранилищем

Организуйте простой экспорт описания проектов.
  • Экспорт проекта без содержимого (только описания) можно организовать с помощью наборов проектов. Тогда пользователи смогут скомпоновать проекты из хранилища.
Разгрузите хранилище, игнорируя файлы, которые можно создать повторно.
  • При обработке файлов и игнорирования файлов, порождаемых модулем, воспользуйтесь расширением ignore.

Улучшение интеграции платформы

На страницу параметров добавьте параметры для заданного модуля поддержки.
Реализуйте пользовательские панели, в которых будут отображаться подробные сведения о хранилищах или их ресурсах.
  • Для включения панели воспользуйтесь расширением views.
  • Пример можно посмотреть в панели типа хранилища для CVS.
Если требуется, добавьте панели или действия в имеющиеся проекции рабочей среды.
  • Добавьте панели или ярлыки модуля в существующие проекции с помощью расширения perspectiveExtensions.
Реализуйте проекцию для заданного хранилища, чтобы рационализировать администрирование или просмотр хранилища.
  • Проекции, панели, ярлыки и макеты страниц определяются с помощью расширения perspectives.