using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Drawing;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
using System.Reflection;
|
using SA_LTT.Alarm;
|
using SA_LTT;
|
|
namespace SA_LTT_UI.Screen
|
{
|
public partial class ScreenAlarmSetting : UserControl
|
{
|
private MainFrame _mainFrame;
|
List<Alarm> alarms = new List<Alarm>();
|
List<AlarmCode> changedAlarms = new List<AlarmCode>();
|
public ScreenAlarmSetting(MainFrame mainFrame)
|
{
|
InitializeComponent();
|
_mainFrame = mainFrame;
|
changedAlarms.Clear();
|
RefreshAlarmInfoDataGridView();
|
}
|
|
public void RefreshAlarmInfoDataGridView()
|
{
|
try
|
{
|
//Datagridview Double Buffer 사용.
|
Type dgvType = dgv_AlarmInfos.GetType();
|
PropertyInfo pi = dgvType.GetProperty("DoubleBuffered",
|
BindingFlags.Instance | BindingFlags.NonPublic);
|
pi.SetValue(dgv_AlarmInfos, true, null);
|
//================================
|
|
alarms.Clear();
|
alarms.AddRange(_mainFrame.equipment.alarmManager.GetAlarms().Values);
|
|
dgv_AlarmInfos.DataSource = alarms;
|
|
dgv_AlarmInfos.Columns["Code"].Width = 400;
|
dgv_AlarmInfos.Columns["Code"].ReadOnly = false;
|
dgv_AlarmInfos.Columns["Description"].Width = 1140;
|
dgv_AlarmInfos.Columns["Heavy"].Width = 50;
|
dgv_AlarmInfos.Columns["Light"].Width = 50;
|
dgv_AlarmInfos.Columns["Level"].Visible = false;
|
dgv_AlarmInfos.Columns["Use"].Width = 50;
|
dgv_AlarmInfos.Columns["OccurredTime"].Width = 200;
|
dgv_AlarmInfos.Columns["OccurredTime"].ReadOnly = false;
|
|
foreach (DataGridViewColumn column in dgv_AlarmInfos.Columns)
|
{
|
column.SortMode = DataGridViewColumnSortMode.NotSortable;
|
}
|
|
foreach (DataGridViewRow row in dgv_AlarmInfos.Rows)
|
{
|
row.DefaultCellStyle.BackColor = Color.White;
|
}
|
|
dgv_AlarmInfos.Refresh();
|
}
|
catch (Exception e)
|
{
|
EquipmentLogManager.Instance.WriteExceptionLog(e.StackTrace);
|
}
|
}
|
|
private void dgv_AlarmInfos_CellValueChanged_1(object sender, DataGridViewCellEventArgs e)
|
{
|
int rowIndex = e.RowIndex;
|
|
Alarm alarm = _mainFrame.equipment.alarmManager.GetAlarms()[alarms[rowIndex].Code].Clone();
|
|
if (alarm == alarms[rowIndex])
|
{
|
if (changedAlarms.Exists(x => x == alarm.Code))
|
{
|
changedAlarms.Remove(alarm.Code);
|
}
|
|
dgv_AlarmInfos.Rows[rowIndex].DefaultCellStyle.BackColor = Color.White;
|
}
|
else
|
{
|
if (changedAlarms.Exists(x => x == alarm.Code) == false)
|
{
|
changedAlarms.Add(alarm.Code);
|
}
|
|
dgv_AlarmInfos.Rows[rowIndex].DefaultCellStyle.BackColor = Color.Red;
|
}
|
}
|
|
private void btn_Cancel_Click(object sender, EventArgs e)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
|
changedAlarms.Clear();
|
RefreshAlarmInfoDataGridView();
|
}
|
|
private void btn_Save_Click(object sender, EventArgs e)
|
{
|
if (MessageBox.Show("변경사항을 저장 하시겠습니까?", "확인", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
{
|
EquipmentLogManager.Instance.WriteButtonLog($"{this.Name} : {((Control)sender).Text}");
|
|
_mainFrame.equipment.alarmManager.Save(alarms);
|
RefreshAlarmInfoDataGridView();
|
}
|
}
|
}
|
}
|