private void ChangeSignalboxNameHandler(object sender, SignalboxEventArgs e)
 {
     if (e.Signalbox != null && _rowMap.ContainsKey(e.Signalbox.Id))
     {
         _rowMap[e.Signalbox.Id].Cells[_nameColIdx].Value = e.Signalbox.EditorDisplayName;
     }
 }
 private void ChangeSignalboxCodeHandler(object sender, SignalboxEventArgs e)
 {
     if (e.Signalbox != null && _rowMap.ContainsKey(e.Signalbox.Id))
     {
         _rowMap[e.Signalbox.Id].Cells[_codeColIdx].Value = e.Signalbox.Code;
     }
 }
 private void RemoveSignalboxHandler(object sender, SignalboxEventArgs e)
 {
     if (e.Signalbox == null)
     {
         return;
     }
     e.Signalbox.CodeChanged -= ChangeSignalboxCodeHandler;
     e.Signalbox.EditorDisplayNameChanged -= ChangeSignalboxNameHandler;
     dataGridView.Rows.Remove(_rowMap[e.Signalbox.Id]);
     _rowMap.Remove(e.Signalbox.Id);
 }
        public void SignalboxClassSettingCodePropertyRaisesCodeChangedEventWithCorrectArguments()
        {
            string firstCode = _random.NextString(_random.Next(1, 4));
            string secondCode;

            do
            {
                secondCode = _random.NextString(_random.Next(1, 4));
            } while (firstCode == secondCode);
            object             lastSender    = null;
            SignalboxEventArgs lastEventArgs = null;
            Signalbox          testObject    = new Signalbox {
                Code = firstCode
            };

            testObject.CodeChanged += new SignalboxEventHandler((o, e) => { lastSender = o; lastEventArgs = e; });

            testObject.Code = secondCode;

            Assert.AreSame(testObject, lastSender as Signalbox);
            Assert.AreSame(testObject, lastEventArgs.Signalbox);
        }
        public void SignalboxClassSettingExportDisplayNamePropertyRaisesExportDisplayNameChangedEventWithCorrectSenderAndArguments()
        {
            string firstName = _random.NextString(_random.Next(128));
            string secondName;

            do
            {
                secondName = _random.NextString(_random.Next(128));
            } while (firstName == secondName);
            object             lastSender    = null;
            SignalboxEventArgs lastEventArgs = null;
            Signalbox          testObject    = new Signalbox {
                ExportDisplayName = firstName
            };

            testObject.ExportDisplayNameChanged += new SignalboxEventHandler((o, e) => { lastSender = o; lastEventArgs = e; });

            testObject.ExportDisplayName = secondName;

            Assert.AreSame(testObject, lastSender as Signalbox);
            Assert.AreSame(testObject, lastEventArgs.Signalbox);
        }
        private void AddSignalboxHandler(object sender, SignalboxEventArgs e)
        {
            if (e.Signalbox == null)
            {
                return;
            }
            e.Signalbox.CodeChanged += ChangeSignalboxCodeHandler;
            e.Signalbox.EditorDisplayNameChanged += ChangeSignalboxNameHandler;
            DataGridViewRow row = dataGridView.RowTemplate.Clone() as DataGridViewRow;

            row.CreateCells(dataGridView);
            row.Cells[_idColIdx].Value   = e.Signalbox.Id;
            row.Cells[_codeColIdx].Value = e.Signalbox.Code;
            row.Cells[_nameColIdx].Value = e.Signalbox.EditorDisplayName;
            if (!e.Index.HasValue || e.Index >= Model.Count - 1)
            {
                dataGridView.Rows.Add(row);
            }
            else
            {
                dataGridView.Rows.Insert(e.Index.Value, row);
            }
            _rowMap.Add(e.Signalbox.Id, row);
        }
 private void SignalboxChangedHandler(object sender, SignalboxEventArgs e)
 {
     OnTimetableDocumentChanged();
 }