コード例 #1
0
 /// <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);
     }
 }
コード例 #2
0
 /// <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);
     }
 }
コード例 #3
0
 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;
         }
     }
 }
コード例 #4
0
 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);
         }
     }
 }
コード例 #5
0
 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;
         }
     }
 }