Project

General

Profile

Список плагинов


{{Image("clip1538.jpg")}}

Контрол представляет из себя двухуровневое дерево с кнопками управления и контекстным меню. В дереве на первом уровне находятся плагины - источники данных, на втором - постпроцессоры. Постпроцессоры расположены в порядке обработки данных(сверху вниз). Плагины источники сортируются по имени.

Позволяет:

  • Добавлять источник данных
  • Добавлять постпроцессор
  • Изменять порядок постпроцессоров
  • Помечать плагин как заблокированный/снимать метку блокирования
  • Помечать плагин как удаленный/убирать метку удаления
  • Выделять плагины

1. Добавление источника данных

  • Событие происходит после нажатия кнопки "Add".
  • Загружается форма добавления плагина.
  • В форме отображаются список загруженных сборок и список плагинов(типов, реализующих интерфейс IPlugin) в выбранной сборке.
  • Если необходимо, пользователь загружает сборки, отсутствующие в списке.
  • Пользователь вводит название, которое будет соответствовать добавляемому плагину, и выбирает сборку и плагин из этой сборки.
  • Пользователь нажимает кнопку "Add Instance".
  • Если введено имя и выбран плагин, то форма закрывается, иначе выдается сообщение "Введите название и выберите типа плагина".
  • Если форма закрывается нажатием кнопки "Add Instance", то плагин добавляется в список, иначе плагин не добавляется.

2. Добавление постпроцессора

  • Пользователь выделяет плагин-поставщик данных в списке.
  • В контекстном меню выбирается пункт "Add postprocessing"
  • Загружается форма добавления плагина.
  • В форме отображается список загруженных сборок с плагинами-постобработчиками и список плагинов-постобработчиков (реализующих IPlugin и IFeederDataProcessor) в выбранной сборке.
  • Если необходимо, пользователь загружает сборки, отсутствующие в списке.
  • Пользователь вводит название, которое будет соответствовать добавляемому плагину, и выбирает сборку и плагин из этой сборки.
  • Пользователь нажимает кнопку "Add Instance".
  • Если введено имя и выбран плагин, то форма закрывается, иначе выдается сообщение "Введите название и выберите типа плагина".
  • Если форма закрывается нажатием кнопки "Add Instance", то плагин добавляется в список, иначе плагин не добавляется.

3. Изменение порядка постпроцессоров

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

4. Блокирование/разблокирование плагина

  • Пользователь выделяет плагин в списке
  • Пользователь нажимает кнопку "Block" или выбирает в контекстном меню пункт "Block".
  • Плагин помечается как заблокированный.
  • При повторном нажатии метка блокирования снимается.
  • Сохранение параметров блокирования происходит вместе с сохранением настроек

Заблокированные плагины сохраняют свои настройки, но при запуске сервиса не загружаются и не выполняют какую-либо работу.

5. Установка/ снятие метки удаление плагина

  • Пользователь выделяет плагин в списке (2.а)
  • Пользователь нажимает кнопку "Delete" или выбирает в контекстном меню пункт "Delete" или нажимает на клавиатуре кнопку "Delete".
  • Плагин помечается как удаленный.
  • При повторном нажатии метка удаления снимается.
  • Удаление из списка происходит после сохранения настроек.

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

6. Выделение плагина

  • Пользователь выделяет плагин в списке.
  • Если до этого был выделен другой элемент и элемент не помечен как удаленный, то происходит сохранение временных настроек плагина (включая внутренние).
  • Если сохранение внутренних настроек происходит с ошибкой, то выделение отменяется.
  • Если выделение прошло успешно, то в контроле настроек плагина отображается информация о настройках выделенного плагина.

Add picture from clipboard (Maximum size: 742 MB)