Исправил оформление кода
This commit is contained in:
parent
a2801a2cbe
commit
09275140c4
@ -9,74 +9,45 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Lers.Utils;
|
||||
|
||||
namespace ExternalModuleExample
|
||||
{
|
||||
/// <summary>
|
||||
/// Класс экранной формы
|
||||
/// </summary>
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// Экземпляр хост-интерфейса клиента
|
||||
/// </summary>
|
||||
IPluginHost host;
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Инициализация формы
|
||||
/// </summary>
|
||||
/// <param name="host"></param>
|
||||
internal void Initialize(IPluginHost host)
|
||||
{
|
||||
internal void Initialize(IPluginHost host)
|
||||
{
|
||||
// Сохраняем хост-интерфейса клиента себе в программу
|
||||
this.host = host;
|
||||
|
||||
// Получам список точек учёта от сервера
|
||||
MeasurePoint[] measurePointList = host.Server.MeasurePoints.GetList();
|
||||
MeasurePoint[] measurePointList = host.Server.MeasurePoints.GetList();
|
||||
|
||||
// Если список точек учёта не пуст
|
||||
if (measurePointList != null)
|
||||
{
|
||||
if (measurePointList != null)
|
||||
{
|
||||
// Проходим по всему списку
|
||||
foreach (MeasurePoint measurePoint in measurePointList)
|
||||
{
|
||||
string measurePointType = "";
|
||||
|
||||
// Смотрим тип точки учёта и в соответствии со значением присваиваем название
|
||||
switch (measurePoint.SystemType)
|
||||
{
|
||||
case SystemType.ColdWater:
|
||||
measurePointType = "Холодное водоснабжение"; break;
|
||||
|
||||
case SystemType.Electricity:
|
||||
measurePointType = "Электричество"; break;
|
||||
|
||||
case SystemType.Gas:
|
||||
measurePointType = "Газоснабдение"; break;
|
||||
|
||||
case SystemType.Heat:
|
||||
measurePointType = "Теплоснабжение"; break;
|
||||
|
||||
case SystemType.HotWater:
|
||||
measurePointType = "Горячее водоснабжение"; break;
|
||||
|
||||
case SystemType.None:
|
||||
measurePointType = "Нет типа"; break;
|
||||
|
||||
case SystemType.Steam:
|
||||
measurePointType = "Пароснабжение"; break;
|
||||
|
||||
default:
|
||||
measurePointType = "Не удалось получить тип"; break;
|
||||
}
|
||||
|
||||
foreach (MeasurePoint measurePoint in measurePointList)
|
||||
{
|
||||
// Добавляем запись в таболицу MainView
|
||||
MainView.Rows.Add(measurePoint.FullTitle, measurePointType);
|
||||
MainView.Rows.Add(measurePoint.FullTitle, EnumUtils.GetDescription(measurePoint.SystemType));
|
||||
}
|
||||
|
||||
// Ставим авто-ширину столбцов в такой режим, что суммарная ширина всех столбцов
|
||||
@ -84,11 +55,11 @@ namespace ExternalModuleExample
|
||||
MainView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
}
|
||||
|
||||
else
|
||||
else
|
||||
// Если список точек учёта пуст, выводим сообщение
|
||||
MessageBox.Show("Список точек учёта пуст",
|
||||
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
MessageBox.Show("Список точек учёта пуст",
|
||||
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,113 +11,113 @@ namespace ExternalModuleExample
|
||||
/// Класс, реализующий интерфейс IPlugin
|
||||
/// </summary>
|
||||
public class Plugin : IPlugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Экземпляр хост-интерфейса клиента
|
||||
/// </summary>
|
||||
internal static IPluginHost Host { get; private set; }
|
||||
{
|
||||
/// <summary>
|
||||
/// Экземпляр хост-интерфейса клиента
|
||||
/// </summary>
|
||||
internal static IPluginHost Host { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Список открытых окон
|
||||
/// </summary>
|
||||
private List<MainForm> visibleForms = new List<MainForm>();
|
||||
/// <summary>
|
||||
/// Список открытых окон
|
||||
/// </summary>
|
||||
private List<MainForm> visibleForms = new List<MainForm>();
|
||||
|
||||
/// <summary>
|
||||
/// Метод, вызывающийся во время запуска клиента
|
||||
/// </summary>
|
||||
/// <param name="pluginHost"></param>
|
||||
public void Initialize(IPluginHost pluginHost)
|
||||
{
|
||||
{
|
||||
// Копируем экземпляр хост-интерфейса клиента в нашу программу
|
||||
Host = pluginHost;
|
||||
|
||||
// Ищем меню Сервис.
|
||||
foreach (var item in Host.MainWindow.MainMenu.Items)
|
||||
{
|
||||
if (item.ID == (int)Lers.UI.SystemMenuId.Service)
|
||||
{
|
||||
// Добавляем подпункт в пункт главного меню Сервис.
|
||||
item.AddItem("Пример внешнего модуля", Properties.Resources.Icon, true, OnItemClick);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Ищем меню Сервис.
|
||||
foreach (var item in Host.MainWindow.MainMenu.Items)
|
||||
{
|
||||
if (item.ID == (int)Lers.UI.SystemMenuId.Service)
|
||||
{
|
||||
// Добавляем подпункт в пункт главного меню Сервис.
|
||||
item.AddItem("Пример внешнего модуля", Properties.Resources.Icon, true, OnItemClick);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Событие выбора приложения в меню Сервис
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void OnItemClick(object sender, EventArgs e)
|
||||
{
|
||||
// Проверим, открыто ли такое окно
|
||||
MainForm currentForm = GetOpenedForm();
|
||||
/// <summary>
|
||||
/// Событие выбора приложения в меню Сервис
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void OnItemClick(object sender, EventArgs e)
|
||||
{
|
||||
// Проверим, открыто ли такое окно
|
||||
MainForm currentForm = GetOpenedForm();
|
||||
|
||||
// Если такого окна нет, то открываем новое
|
||||
if (currentForm == null)
|
||||
NewForm();
|
||||
// Если такого окна нет, то открываем новое
|
||||
if (currentForm == null)
|
||||
NewForm();
|
||||
|
||||
//Такое окно есть, переводим фокус на него
|
||||
else
|
||||
{
|
||||
currentForm.Show();
|
||||
currentForm.Focus();
|
||||
}
|
||||
}
|
||||
//Такое окно есть, переводим фокус на него
|
||||
else
|
||||
{
|
||||
currentForm.Show();
|
||||
currentForm.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Возвращает открытую форму или null если формы нет
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private MainForm GetOpenedForm()
|
||||
{
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
foreach (MainForm form in this.visibleForms)
|
||||
{
|
||||
return form;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Возвращает открытую форму или null если формы нет
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private MainForm GetOpenedForm()
|
||||
{
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
foreach (MainForm form in this.visibleForms)
|
||||
{
|
||||
return form;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Открываем новое окно
|
||||
/// </summary>
|
||||
private void NewForm()
|
||||
{
|
||||
// Создаём новый экземпляр формы
|
||||
MainForm mainForm = new MainForm() { Text = "Пример внешнего модуля" };
|
||||
/// <summary>
|
||||
/// Открываем новое окно
|
||||
/// </summary>
|
||||
private void NewForm()
|
||||
{
|
||||
// Создаём новый экземпляр формы
|
||||
MainForm mainForm = new MainForm() { Text = "Пример внешнего модуля" };
|
||||
|
||||
// Инициализируем форму
|
||||
mainForm.Initialize(Host);
|
||||
// Инициализируем форму
|
||||
mainForm.Initialize(Host);
|
||||
|
||||
// Добавляем форму в список окон в программе
|
||||
Host.MainWindow.AddPage(mainForm);
|
||||
// Добавляем форму в список окон в программе
|
||||
Host.MainWindow.AddPage(mainForm);
|
||||
|
||||
// Открываем форму
|
||||
mainForm.Show();
|
||||
// Открываем форму
|
||||
mainForm.Show();
|
||||
|
||||
// Добавляем событие на закрытие формы
|
||||
mainForm.FormClosed += new System.Windows.Forms.FormClosedEventHandler(currentForm_FormClosed);
|
||||
// Добавляем событие на закрытие формы
|
||||
mainForm.FormClosed += new System.Windows.Forms.FormClosedEventHandler(currentForm_FormClosed);
|
||||
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
this.visibleForms.Add(mainForm);
|
||||
}
|
||||
}
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
this.visibleForms.Add(mainForm);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Закрыто окно. Удаляем его из списка открытых окон.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
void currentForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
|
||||
{
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
this.visibleForms.Remove((MainForm)sender);
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Закрыто окно. Удаляем его из списка открытых окон.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
void currentForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
|
||||
{
|
||||
lock (this.visibleForms)
|
||||
{
|
||||
this.visibleForms.Remove((MainForm)sender);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user