using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Data.SqlClient;
|
using System.Reflection;
|
using System.Windows.Forms;
|
|
namespace SHARP_CLAS_UI.Screen
|
{
|
public partial class Form_Parameter_Alarm_Setting : Form
|
{
|
Form_Frame _Parent;
|
|
public System.Net.IPAddress _DBip = System.Net.IPAddress.Parse("127.0.0.1");
|
public string _DBid = "sa";
|
public string _DBPassword = "1234";
|
|
List<AlarmInfo> AlarmList = new List<AlarmInfo>();
|
|
List<Alarm> alarms = new List<Alarm>();
|
List<int> defferentList = new List<int>();
|
public Form_Parameter_Alarm_Setting(Form_Frame _Parent)
|
{
|
InitializeComponent();
|
this._Parent = _Parent;
|
|
Init_DataGridView1();
|
}
|
|
public void Set_Language()
|
{
|
try
|
{
|
if (dgv_Alarm_list != null)
|
{
|
//dgv_Alarm_list.Columns[0].HeaderText = resLanguage.Code;
|
dgv_Alarm_list.Columns[1].HeaderText = resLanguage.DESCRIPTION;
|
//dgv_Alarm_list.Columns[2].HeaderText = resLanguage.Heavy;
|
//dgv_Alarm_list.Columns[3].HeaderText = resLanguage.Light;
|
dgv_Alarm_list.Columns[4].HeaderText = resLanguage.USE;
|
}
|
}
|
catch(Exception ex)
|
{
|
|
}
|
}
|
|
public void Init_DataGridView()
|
{
|
string connection_str = $"Server = {_DBip}; uid = {_DBid}; pwd = {_DBPassword}; database = SHARP_CLAS";
|
using (SqlConnection sqlcon = new SqlConnection(connection_str))
|
{
|
try
|
{
|
sqlcon.Open();
|
|
SqlCommand scom = new SqlCommand();
|
scom.Connection = sqlcon;
|
|
scom.CommandText = "Select * from Alarm";
|
|
AlarmList.Clear();
|
|
using (SqlDataReader sdr = scom.ExecuteReader())
|
{
|
while (sdr.Read())
|
{
|
AlarmList.Add(new AlarmInfo((int)sdr["Code"], (string)sdr["Name"], (string)sdr["Description"], (bool)sdr["Heavy"], (bool)sdr["Unused"]));
|
}
|
sdr.Close();
|
}
|
|
dgv_Alarm_list.DataSource = AlarmList;
|
|
int i = 0;
|
foreach (DataGridViewColumn dgvc in dgv_Alarm_list.Columns)
|
{
|
if (i == 0)
|
dgvc.Width = 100;
|
else if (i == 1)
|
dgvc.Width = 300;
|
else if (i == 2)
|
dgvc.Width = 1030;
|
else if (i == 3)
|
dgvc.Width = 100;
|
else if (i == 4)
|
dgvc.Width = 100;
|
else if (i == 5)
|
dgvc.Width = 100;
|
|
i++;
|
}
|
|
foreach (DataGridViewColumn column in dgv_Alarm_list.Columns)
|
{
|
column.SortMode = DataGridViewColumnSortMode.NotSortable;
|
}
|
}
|
catch (Exception ex)
|
{
|
dgv_Alarm_list.DataSource = AlarmList;
|
|
int i = 0;
|
foreach (DataGridViewColumn dgvc in dgv_Alarm_list.Columns)
|
{
|
if (i == 0)
|
dgvc.Width = 100;
|
else if (i == 1)
|
dgvc.Width = 300;
|
else if (i == 2)
|
dgvc.Width = 1030;
|
else if (i == 3)
|
dgvc.Width = 100;
|
else if (i == 4)
|
dgvc.Width = 100;
|
else if (i == 5)
|
dgvc.Width = 100;
|
|
i++;
|
}
|
|
foreach (DataGridViewColumn column in dgv_Alarm_list.Columns)
|
{
|
column.SortMode = DataGridViewColumnSortMode.NotSortable;
|
}
|
|
Console.WriteLine(ex.Message);
|
}
|
finally
|
{
|
sqlcon.Close();
|
}
|
}
|
}
|
|
public void Init_DataGridView1()
|
{
|
try
|
{
|
//Datagridview Double Buffer 사용.
|
Type dgvType = dgv_Alarm_list.GetType();
|
PropertyInfo pi = dgvType.GetProperty("DoubleBuffered",
|
BindingFlags.Instance | BindingFlags.NonPublic);
|
pi.SetValue(dgv_Alarm_list, true, null);
|
//================================
|
|
alarms.Clear();
|
List<Alarm> alarm_datas = new List<Alarm>(Alarm_Manager.Instance.Clone().Values);
|
foreach (Alarm alarm in alarm_datas)
|
{
|
alarms.Add(alarm);
|
}
|
|
dgv_Alarm_list.DataSource = alarms;
|
|
int i = 0;
|
foreach (DataGridViewColumn dgvc in dgv_Alarm_list.Columns)
|
{
|
if (i == 0)
|
dgvc.Width = 500;
|
else if (i == 1)
|
dgvc.Width = 930;
|
else if (i == 2)
|
dgvc.Width = 100;
|
else if (i == 3)
|
dgvc.Width = 100;
|
else if (i == 4)
|
dgvc.Width = 100;
|
|
i++;
|
}
|
|
foreach (DataGridViewColumn column in dgv_Alarm_list.Columns)
|
{
|
column.SortMode = DataGridViewColumnSortMode.NotSortable;
|
}
|
}
|
catch (Exception ex)
|
{
|
dgv_Alarm_list.DataSource = alarms;
|
|
int i = 0;
|
foreach (DataGridViewColumn dgvc in dgv_Alarm_list.Columns)
|
{
|
if (i == 0)
|
dgvc.Width = 500;
|
else if (i == 1)
|
dgvc.Width = 930;
|
else if (i == 2)
|
dgvc.Width = 100;
|
else if (i == 3)
|
dgvc.Width = 100;
|
else if (i == 4)
|
dgvc.Width = 100;
|
|
i++;
|
}
|
|
foreach (DataGridViewColumn column in dgv_Alarm_list.Columns)
|
{
|
column.SortMode = DataGridViewColumnSortMode.NotSortable;
|
}
|
|
Console.WriteLine(ex.Message);
|
}
|
}
|
|
private void dgv_Alarm_list_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
{
|
switch (e.ColumnIndex)
|
{
|
case 1:
|
{
|
break;
|
}
|
case 2:
|
{
|
alarms[e.RowIndex].Set_Heavy(!alarms[e.RowIndex].Heavy);
|
break;
|
}
|
case 3:
|
{
|
alarms[e.RowIndex].Set_Light(!alarms[e.RowIndex].Light);
|
break;
|
}
|
case 4:
|
{
|
alarms[e.RowIndex].Set_Use(!alarms[e.RowIndex].Use);
|
break;
|
}
|
}
|
|
if (!alarms[e.RowIndex].Equal(Alarm_Manager.Instance.Alarm_List[alarms[e.RowIndex].Code]))
|
{
|
dgv_Alarm_list.Rows[e.RowIndex].DefaultCellStyle.BackColor = System.Drawing.Color.Red;
|
if(!defferentList.Contains(e.RowIndex))
|
defferentList.Add(e.RowIndex);
|
}
|
else
|
{
|
dgv_Alarm_list.Rows[e.RowIndex].DefaultCellStyle.BackColor = System.Drawing.Color.Empty;
|
defferentList.Remove(e.RowIndex);
|
}
|
|
dgv_Alarm_list.Refresh();
|
}
|
|
private void btn_Save_Click(object sender, EventArgs e)
|
{
|
DateTime dt = DateTime.Now;
|
|
foreach(Alarm alarm in alarms)
|
{
|
if(!Alarm_Manager.Instance.Alarm_List[alarm.Code].Equal(alarm))
|
{
|
Alarm_Manager.Instance.Alarm_List[alarm.Code] = alarm.Clone();
|
}
|
}
|
|
Alarm_Manager.Instance.Save_Alarm_List();
|
|
dgv_Alarm_list_Refresh();
|
|
TimeSpan ts = DateTime.Now - dt;
|
}
|
|
private void btn_Reset_Click(object sender, EventArgs e)
|
{
|
foreach (int defferent in defferentList)
|
{
|
if(!alarms[defferent].Equal(Alarm_Manager.Instance.Alarm_List[alarms[defferent].Code]))
|
{
|
alarms[defferent] = Alarm_Manager.Instance.Alarm_List[alarms[defferent].Code].Clone();
|
dgv_Alarm_list.Rows[defferent].DefaultCellStyle.BackColor = System.Drawing.Color.Empty;
|
}
|
}
|
|
dgv_Alarm_list_Refresh();
|
}
|
|
private void dgv_Alarm_list_Refresh()
|
{
|
if (dgv_Alarm_list.FirstDisplayedCell == null) return;
|
int rowindex = dgv_Alarm_list.FirstDisplayedCell.RowIndex;
|
int code = (int)dgv_Alarm_list.SelectedRows[0].Cells[0].Value;
|
|
foreach (int defferent in defferentList)
|
{
|
if (!alarms[defferent].Equal(Alarm_Manager.Instance.Alarm_List[alarms[defferent].Code]))
|
{
|
dgv_Alarm_list.Rows[defferent].DefaultCellStyle.BackColor = System.Drawing.Color.Red;
|
}
|
else
|
{
|
dgv_Alarm_list.Rows[defferent].DefaultCellStyle.BackColor = System.Drawing.Color.Empty;
|
}
|
}
|
|
defferentList.Clear();
|
DateTime dt = DateTime.Now;
|
dgv_Alarm_list.Refresh();
|
|
TimeSpan ts = (DateTime.Now - dt);
|
dgv_Alarm_list.Rows[code].Selected = true;
|
dgv_Alarm_list.FirstDisplayedScrollingRowIndex = rowindex;
|
}
|
}
|
}
|