Delete and Clear button in tables

This commit is contained in:
2024-11-22 13:38:21 +07:00
parent 092429cec8
commit c34aa59ed1
3 changed files with 54 additions and 109 deletions

View File

@@ -817,21 +817,21 @@ namespace FAtoPA.Net
private void btnDelSIID_Click(object sender, RoutedEventArgs e)
{
//int selectedindex = FSMTable.SelectedIndex;
//if (selectedindex >= 0)
//{
// FSMData selected = (FSMData)FSMTable.Items[selectedindex];
// MessageBoxResult result = MessageBox.Show("Delete SIID " + selected.ToString() + " ?", "Delete SIID", MessageBoxButton.YesNo);
// if (result == MessageBoxResult.Yes)
// {
// FsmTableMember.Remove(selected);
// database.RemoveFSMDatabySIID(selected.SIID);
// FSMSIID.Remove(selected.SIID);
// }
//}
//else MessageBox.Show("Select a row in table to delete");
if (FSMTable != null)
{
var selected = FSMTable.SelectedItem as FSMData;
if (selected != null)
{
MessageBoxResult result = MessageBox.Show($"Are you sure want to delete SIID={selected.SIID}, Label={selected.Label}, Type={selected.Type} ?", "Delete SIID", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
FsmTableMember.Remove(selected);
database.RemoveFSMDatabySIID(selected.SIID);
FSMSIID.Remove(selected.SIID);
}
}
else MessageBox.Show("Select a row in table to delete");
}
}
private void btnClearSIID_Click(object sender, RoutedEventArgs e)
@@ -919,37 +919,21 @@ namespace FAtoPA.Net
private void btnDelModbus_Click(object sender, RoutedEventArgs e)
{
String ssid = "";
String reg = "";
if (ModbusSIIDComboBox.SelectedItem != null)
if (ModbusTable != null)
{
ssid = (string)ModbusSIIDComboBox.SelectedItem;
}
else
{
MessageBox.Show("Invalid SIID"); return;
}
if (ModbusRegister.SelectedItem != null)
{
reg = (String)ModbusRegister.SelectedItem;
}
else
{
MessageBox.Show("Invalid Register"); return;
}
MessageBoxResult result = MessageBox.Show("Delete SIID " + ssid + " Link with Register " + reg + " ?", "Delete Modbus Linkage", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
if (database != null)
var selected = ModbusTable.SelectedItem as ModbusData;
if (selected != null)
{
if (database.RemoveModbusDatabySIID(ssid))
MessageBoxResult xx = MessageBox.Show($"Are you sure want to delete SIID={selected.SIID}, Register={selected.Register} ?", "Delete SIID", MessageBoxButton.YesNo);
if (xx == MessageBoxResult.Yes)
{
ModbusTable.ItemsSource = database.GetModbusDatas();
database.RemoveModbusDatabySIID(selected.SIID);
ModbusTableMember.Remove(selected);
}
else MessageBox.Show("Failed to delete from database");
}
else MessageBox.Show("Database is null");
else MessageBox.Show("Select a row in Table to delete");
}
}
private void btnClearModbus_Click(object sender, RoutedEventArgs e)
@@ -957,15 +941,8 @@ namespace FAtoPA.Net
MessageBoxResult result = MessageBox.Show("Clear all Modbus Linkage ?", "Clear Modbus Linkage", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
if (database != null)
{
if (database.ClearModbusTable())
{
ModbusTable.ItemsSource = database.GetModbusDatas();
}
else MessageBox.Show("Failed to clear database");
}
else MessageBox.Show("Database is null");
database.ClearModbusTable();
ModbusTableMember.Clear();
}
}
@@ -1017,45 +994,19 @@ namespace FAtoPA.Net
private void btnDelVX_Click(object sender, RoutedEventArgs e)
{
String ssid = "";
int id = 0;
int cin = 0;
if (VXSIIDComboBox.SelectedItem != null)
if (VXTable != null)
{
ssid = (string)VXSIIDComboBox.SelectedItem;
}
else
{
MessageBox.Show("Invalid SIID"); return;
}
if (VXFrame.SelectedItem != null)
{
id = (int)VXFrame.SelectedItem;
}
else
{
MessageBox.Show("Invalid ID"); return;
}
if (VXCIN.SelectedItem != null)
{
cin = (int)VXCIN.SelectedItem;
}
else
{
MessageBox.Show("Invalid CIN"); return;
}
MessageBoxResult result = MessageBox.Show("Delete SIID " + ssid + " Link with Frame " + id + " CIN " + cin + " ?", "Delete VX Linkage", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
if (database != null)
var selected = VXTable.SelectedItem as VXData;
if (selected != null)
{
if (database.RemoveVXDatabySIID(ssid))
var result = MessageBox.Show($"Delete SIID={selected.SIID}, ID={selected.FrameID}, CIN={selected.CIN} ?", "Delete SIID", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
VXTable.ItemsSource = database.GetVXDatas();
database.RemoveVXDatabySIID(selected.SIID);
VXTableMember.Remove(selected);
}
else MessageBox.Show("Failed to delete from database");
}
else MessageBox.Show("Database is null");
else MessageBox.Show("Select a row in Table to delete");
}
}
@@ -1064,15 +1015,8 @@ namespace FAtoPA.Net
MessageBoxResult result = MessageBox.Show("Clear all VX Linkage ?", "Clear VX Linkage", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
if (database != null)
{
if (database.ClearVXTable())
{
VXTable.ItemsSource = database.GetVXDatas();
}
else MessageBox.Show("Failed to clear database");
}
else MessageBox.Show("Database is null");
database.ClearVXTable();
VXTableMember.Clear();
}
}
@@ -1234,6 +1178,7 @@ namespace FAtoPA.Net
l.Margin = new Thickness(5, 0, 5, 0);
l.TextWrapping = TextWrapping.Wrap;
UpdateLabel(l, client);
l.Tag = client;
connectedlist.Items.Add(l);
}
@@ -1266,20 +1211,24 @@ namespace FAtoPA.Net
public void TXRXStatusUpdate(ModbusClientRecord client)
{
foreach (var item in connectedlist.Items)
{
TextBlock l = (TextBlock)item;
if (l.Tag == client)
connectedlist.Dispatcher.Invoke(() => {
foreach (var item in connectedlist.Items)
{
UpdateLabel(l, client);
return;
TextBlock l = (TextBlock)item;
if (l.Tag == client)
{
UpdateLabel(l, client);
return;
}
}
}
});
}
private void UpdateLabel(TextBlock l, ModbusClientRecord client)
{
l.Text = client.remoteEP + " TX: " + client.TXBytes + " RX: " + client.RXBytes + "TXOK: " + client.TXResponse + " RXOK: " + client.RXValidRequest;
l.Text = client.remoteEP + "/TX: " + client.TXBytes + "/RX: " + client.RXBytes + "/TXOK: " + client.TXResponse + "/RXOK: " + client.RXValidRequest+"/RXFAIL: "+client.RXInvalidRequest;
}
}