/// <summary> /// Edit charge reference. /// </summary> private void ChargeReferenceEdit_Click(object sender, EventArgs e) { try { if (ChargeReferenceView.SelectedItems.Count == 1) { GXDLMSAccount target = Target as GXDLMSAccount; GXDLMSObjectCollection objects = target.Parent.GetObjects(ObjectType.Charge); if (objects.Count == 0) { throw new Exception("There are no Charge objects."); } ListViewItem li = ChargeReferenceView.SelectedItems[0]; GXDLMSTargetObjectDlg dlg = new GXDLMSTargetObjectDlg("Edit charge reference", target.Parent.FindByLN(ObjectType.None, li.Text) as GXDLMSObject, objects); if (dlg.ShowDialog(this) == DialogResult.OK) { target.ChargeReferences.Remove(li.Text); string desc = dlg.Target.LogicalName; li.SubItems[0].Text = desc; target.ChargeReferences.Add(desc); errorProvider1.SetError(ChargeReferenceView, Properties.Resources.ValueChangedTxt); Target.UpdateDirty(10, target.ChargeReferences); } } } catch (Exception ex) { MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Add charge reference. /// </summary> private void ChargeReferenceAdd_Click(object sender, EventArgs e) { try { GXDLMSAccount target = Target as GXDLMSAccount; GXDLMSObjectCollection objects = target.Parent.GetObjects(ObjectType.Charge); if (objects.Count == 0) { throw new Exception("There are no Charge objects."); } GXDLMSTargetObjectDlg dlg = new GXDLMSTargetObjectDlg("Add new charge reference", null, objects); if (dlg.ShowDialog(this) == DialogResult.OK) { string desc = dlg.Target.LogicalName; target.ChargeReferences.Add(desc); ListViewItem li = ChargeReferenceView.Items.Add(desc); errorProvider1.SetError(ChargeReferenceView, Properties.Resources.ValueChangedTxt); Target.UpdateDirty(10, target.ChargeReferences); } } catch (Exception ex) { MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
void OnShowDlg(GXActionArgs arg, GXDLMSTargetObjectDlg dlg, GXDLMSTarget it) { if (InvokeRequired) { BeginInvoke(new ShowDlgEventHandler(OnShowDlg), arg, dlg, it).AsyncWaitHandle.WaitOne(); } else { bool remove = false; ListViewItem li = null; GXDLMSParameterMonitor target = Target as GXDLMSParameterMonitor; if (it == null) { remove = true; if (ParametersLV.SelectedItems.Count != 1) { arg.Handled = true; return; } else { li = ParametersLV.SelectedItems[0]; it = (GXDLMSTarget)li.Tag; dlg.Target = it.Target; dlg.Index = it.AttributeIndex; } } if (dlg.ShowDialog(this) == DialogResult.OK) { if (!remove) { it.Target = dlg.Target; it.AttributeIndex = dlg.Index; li = ParametersLV.Items.Add(it.Target.ToString()); li.SubItems.Add(it.AttributeIndex.ToString()); li.Tag = it; arg.Value = target.Insert(arg.Client, it); } else { arg.Value = target.Delete(arg.Client, it); li.Remove(); } } else { arg.Handled = true; } } }
public void PreAction(GXActionArgs arg) { if (arg.Action == ActionType.Action) { if (arg.Index == 1) { GXDLMSTarget item = new GXDLMSTarget(); GXDLMSTargetObjectDlg dlg = new GXDLMSTargetObjectDlg("Add new target", item.Target, item.AttributeIndex, Target.Parent); OnShowDlg(arg, dlg, item); } else if (arg.Index == 2) { GXDLMSTargetObjectDlg dlg = new GXDLMSTargetObjectDlg("Remove target", null, 0, null); OnShowDlg(arg, dlg, null); } } }
void OnShowDlg(GXActionArgs arg) { if (InvokeRequired) { BeginInvoke(new ShowDlgEventHandler(OnShowDlg), arg).AsyncWaitHandle.WaitOne(); } else { GXDLMSRegisterActivation target = (GXDLMSRegisterActivation)Target; ListViewItem li = null; if (arg.Index == 1) { GXDLMSObjectDefinition item = new GXDLMSObjectDefinition(); GXDLMSTargetObjectDlg dlg = new GXDLMSTargetObjectDlg("Add new register", null, Target.Parent.GetObjects(new ObjectType[] { ObjectType.Register, ObjectType.ExtendedRegister, ObjectType.DemandRegister })); if (dlg.ShowDialog(this) == DialogResult.OK) { item.ObjectType = dlg.Target.ObjectType; item.LogicalName = dlg.Target.LogicalName; li = Assigments.Items.Add(item.ObjectType.ToString()); li.SubItems.Add(item.LogicalName); li.Tag = item; arg.Value = target.AddRegister(arg.Client, ((GXDLMSTargetObjectDlg)dlg).Target); } else { arg.Handled = true; } } else if (arg.Index == 2) { GXDLMSObjectDefinition item = new GXDLMSObjectDefinition(); GXDLMSRegisterActivationDlg dlg = new GXDLMSRegisterActivationDlg("Add new mask", null, null); if (dlg.ShowDialog(this) == DialogResult.OK) { arg.Value = target.AddMask(arg.Client, dlg.MaskName, dlg.IndexArray); } else { arg.Handled = true; } } else if (arg.Index == 3) { if (Masks.SelectedItems.Count == 1) { GXDLMSObjectDefinition item = new GXDLMSObjectDefinition(); KeyValuePair<byte[], byte[]> it = (KeyValuePair<byte[], byte[]>)Masks.SelectedItems[0].Tag; GXDLMSRegisterActivationDlg dlg = new GXDLMSRegisterActivationDlg("Remove mask", it.Key, it.Value); if (dlg.ShowDialog(this) == DialogResult.OK) { arg.Value = target.RemoveMask(arg.Client, ((GXDLMSRegisterActivationDlg)dlg).MaskName); } else { arg.Handled = true; } } else { MessageBox.Show(Parent, "Select one item to remove", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { arg.Handled = true; } } }