Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Далее будет описана разработка внешнего модуля ЛЭРС УЧЁТ на языке программирования C# в IDE Visual Studio.
1. Ссылки на сборки Lers Framework
В проект необходимо добавить ссылки на сборки  Lers Framework. Необходимые для разработки внешнего модуля классы находятся в сборках Lers.Plugins, Lers.Plugins.Attributes, Lers.System.

2. Каркас внешнего модуля

Создайте новый класс, реализующий интерфейс IPlugin и содержащий в себе метод Initialize.

 

Code Block
languagec#
titleПример
public class Plugin: IPlugin
{
	private IPluginHost pluginHost;

	public void Initialize(IPluginHost pluginHost)
	{
		this.pluginHost = pluginHost;
	}
}

 

3. Способ взаимодействия внешнего модуля с пользователем

Нужно выбрать как именно пользователь будет запускать внешний модуль. Можно добавить пункты в главное меню, в панель навигации, или создать шеврон на списке объектов учёта.

 

Запуск через пункт главного меню.

Code Block
languagec#
titleПример
public class Plugin: IPlugin
{
	public void Initialize(IPluginHost pluginHost)
	{
		foreach (var item in this.pluginHost.MainWindow.MainMenu.Items)
		{
			if (item.ID == (int)Lers.UI.SystemMenuId.Service)
			{
				// Добавляем подпункт в пункт главного меню Сервис.
				item.AddItem("Запустить внешний модуль", Properties.Resources.Image, true, OnItemClick);
			}
		}
	}
 
	private void OnItemClick(object sender, EventArgs e)
	{	
		// TODO: Код работы внешнего модуля
	}
}

 

Запуск через пункт панели параметров Действия и контекстного меню на списках точек и объектов учета.

Code Block
languagec#
titleПример
public class Plugin: IPlugin
{
	public void Initialize(IPluginHost pluginHost)
	{
		// Регистрируем пункт для панели Действия и контекстного меню.
		Plugin.Host.MainWindow.RegisterObjectAction(ObjectType.MeasurePoint, "Запустить внешний модуль", null, OnItemClick);
	}

 
	private void OnItemClick(int actionId, object sender)
	{	
		// TODO: Код работы внешнего модуля
	}
}

 

Запуск через шеврон на списке точек и объектов учета.

Code Block
languagec#
titleПример
public class Plugin: IPlugin
{
	public void Initialize(IPluginHost pluginHost)
	{
		Plugin.Host.MainWindow.AddChevron(ObjectType.MeasurePoint, "Запустить внешний модуль", Properties.Resources.Image, OnChevronPress);
	}
 
	private void OnChevronPress(object sender, ChevronPressEventArgs e)
	{	
		// TODO: Код работы внешнего модуля
	}
}

 

4. Атрибуты внешнего модуля

Каждый внешний модуль должен содержать в своих атрибутах определённые параметры и дополнительную информацию. Более подробно атрибуты описаны в основной статье.