void OnShowDialog(GXActionArgs arg) { if (InvokeRequired) { BeginInvoke(new ShowDialogEventHandler(OnShowDialog), arg).AsyncWaitHandle.WaitOne(); } else { GXDLMSNtpSetup target = (GXDLMSNtpSetup)Target; //If user is adding a new item. if (arg.Index == 2) { GXDLMSNtpDlg dlg = new GXDLMSNtpDlg(0, null, false); if (dlg.ShowDialog(Parent) == DialogResult.OK) { arg.Value = target.AddAuthenticationKey(arg.Client, dlg.Id, dlg.Key); } else { arg.Handled = true; } } else { //User is removing the item. if (KeysView.SelectedItems.Count == 1) { KeyValuePair <UInt32, byte[]> item = (KeyValuePair <UInt32, byte[]>)KeysView.SelectedItems[0].Tag; GXDLMSNtpDlg dlg = new GXDLMSNtpDlg(item.Key, item.Value, true); if (dlg.ShowDialog(Parent) == DialogResult.OK) { arg.Value = target.DeleteAuthenticationKey(arg.Client, item.Key); KeysView.Items.Remove(KeysView.SelectedItems[0]); } else { arg.Handled = true; } } else { arg.Handled = true; } } } }
public void OnValueChanged(GXDLMSViewArguments arg) { GXDLMSNtpSetup target = (GXDLMSNtpSetup)Target; if (arg.Index == 2) { ActivatedCb.Checked = target.Activated; } else if (arg.Index == 6) { KeysView.Items.Clear(); foreach (KeyValuePair <UInt32, byte[]> it in target.Keys) { ListViewItem li = new ListViewItem(new string[] { it.Key.ToString(), GXDLMSTranslator.ToHex(it.Value) }); KeysView.Items.Add(li).Tag = it; } ActivatedCb.Checked = target.Activated; } else { throw new IndexOutOfRangeException("index"); } }