Список плагинов¶
{{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. Выделение плагина¶
- Пользователь выделяет плагин в списке.
- Если до этого был выделен другой элемент и элемент не помечен как удаленный, то происходит сохранение временных настроек плагина (включая внутренние).
- Если сохранение внутренних настроек происходит с ошибкой, то выделение отменяется.
- Если выделение прошло успешно, то в контроле настроек плагина отображается информация о настройках выделенного плагина.