public void CloneFromAlarmObject(cAlarmObject AlarmObjectToCopy)
 {
     RoadSideObject          = AlarmObjectToCopy.RoadSideObject;
     bActive                 = AlarmObjectToCopy.bActive;
     bSuspended              = AlarmObjectToCopy.bSuspended;
     bAcknowledged           = AlarmObjectToCopy.bAcknowledged;
     sObjectType             = AlarmObjectToCopy.sObjectType;
     sSpecificObject         = AlarmObjectToCopy.sSpecificObject;
     sAlarmCodeId            = AlarmObjectToCopy.sAlarmCodeId;
     sDescription            = AlarmObjectToCopy.sDescription;
     sExternalAlarmCodeId    = AlarmObjectToCopy.sExternalAlarmCodeId;
     sExternalNTSAlarmCodeId = AlarmObjectToCopy.sExternalNTSAlarmCodeId;
     sPriority               = AlarmObjectToCopy.sPriority;
     sCategory               = AlarmObjectToCopy.sCategory;
     AlarmReturnValues.Clear();
     foreach (cAlarmReturnValue AlarmReturnValue in AlarmObjectToCopy.AlarmReturnValues)
     {
         cAlarmReturnValue NewAlarmReturnValue = new cAlarmReturnValue();
         NewAlarmReturnValue.sName    = AlarmReturnValue.sName;
         NewAlarmReturnValue.sComment = AlarmReturnValue.sComment;
         NewAlarmReturnValue.Value    = new cValue(AlarmReturnValue.Value.ValueTypeObject, true);
         AlarmReturnValues.Add(NewAlarmReturnValue);
     }
     // We don't copy alarm events
 }
        private void listView_Alarms_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            ListView     listview = (ListView)sender;
            ListViewItem lvItem;

            int iSelectedColumn = 0;

            if (listview.SelectedItems.Count == 0)
            {
                return;
            }

            lvItem = listview.SelectedItems[0];

            ListViewHitTestInfo lvHitTest = listview.HitTest(LastMouseX, LastMouseY);

            foreach (ListViewItem.ListViewSubItem ScanSubItem in lvItem.SubItems)
            {
                if (lvHitTest.SubItem == ScanSubItem)
                {
                    break;
                }
                iSelectedColumn++;
            }

            try
            {
                // Tag is ex Value_2
                if (listview.Columns[iSelectedColumn].Tag.ToString().StartsWith("Value", StringComparison.OrdinalIgnoreCase))
                {
                    int               iIndex           = Int32.Parse(listview.Columns[iSelectedColumn].Tag.ToString().Substring(6));
                    cAlarmObject      AlarmObject      = (cAlarmObject)lvItem.Tag;
                    cAlarmReturnValue AlarmReturnValue = AlarmObject.AlarmReturnValues[iIndex];
                    string            sText            = lvHitTest.SubItem.Text;
                    // if (cFormsHelper.InputBox("Enter new value", "Value", ref sText, sType.Equals("base64", StringComparison.OrdinalIgnoreCase), true) == DialogResult.OK)
                    if (cFormsHelper.InputStatusBoxValueType("Enter new value", ref sText, AlarmReturnValue.Value, AlarmReturnValue.sComment, true) == DialogResult.OK)
                    {
                        AlarmReturnValue.Value.SetValue(sText);
                        lvHitTest.SubItem.Text = sText;
                    }
                }
            }
            catch
            {
            }
        }