/// <summary> /// Event handler for the train graphic clicked event /// </summary> /// <param name="sender">Sender of the event</param> /// <param name="e">Event arguments</param> private void OnTrainGraphicClicked(object sender, EventArgs e) { try { TrainGraphic graphic = (TrainGraphic)sender; if (m_selectedTrackBlock != null) { m_selectedTrackBlock.StopBlinking(); } if (m_selectedTrain != null && m_selectedTrain != graphic) { m_selectedTrain.StopBlinking(); } m_selectedTrackBlock = null; m_selectedTrain = graphic; blinkTimer.Start(); if (TrainClicked != null) { TrainClicked(graphic.Train); } } catch (InvalidCastException ex) { m_log.LogError(ex); throw ex; } }
public void BlinkTest1() { ITrain train = null; // TODO: Initialize to an appropriate value TrainGraphic target = new TrainGraphic(train); // TODO: Initialize to an appropriate value target.Blink(); Assert.Inconclusive("A method that does not return a value cannot be verified."); }
/// <summary> /// Updates the display /// </summary> /// <param name="blocks">List of track blocks</param> /// <param name="trains">List of trains</param> public void UpdateDisplay(List <TrackBlock> updatedBlocks, List <ITrain> trains) { if (InvokeRequired) { Invoke(m_updateDelegate, updatedBlocks, trains); } else { //Update the block layout if (updatedBlocks != null) { this.SuspendLayout(); foreach (TrackBlock b in updatedBlocks) { if (m_blockTable.ContainsKey(b)) { m_blockTable[b].Invalidate(); } } //Upate the train locations foreach (ITrain train in trains) { if (m_trainTable.ContainsKey(train)) { TrainGraphic graphic = m_trainTable[train]; graphic.Left = System.Convert.ToInt32((train.GetPosition().X - m_layoutPosition.X) * m_scale - graphic.Width / 2); graphic.Top = System.Convert.ToInt32((train.GetPosition().Y - m_layoutPosition.Y) * m_scale - graphic.Height / 2); } else { //New train, add it to the list TrainGraphic graphic = new TrainGraphic(train); graphic.Location = new Point(System.Convert.ToInt32((train.GetPosition().X - m_layoutPosition.X) * m_scale - graphic.Width / 2), System.Convert.ToInt32((train.GetPosition().Y - m_layoutPosition.Y) * m_scale - graphic.Height / 2)); graphic.TrainClicked += OnTrainGraphicClicked; graphic.Disposed += OnTrainDisposed; Controls.Add(graphic); graphic.Visible = true; graphic.BringToFront(); m_trainTable[train] = graphic; } } this.ResumeLayout(); } } }
/// <summary> /// A train was disposed. Remove the graphic /// </summary> /// <param name="sender">Sender of the event</param> /// <param name="e">Event arguments</param> private void OnTrainDisposed(object sender, EventArgs e) { try { ITrain train = (ITrain)sender; if (m_trainTable.ContainsKey(train)) { //Remove the train graphic from the display if (m_selectedTrain == m_trainTable[train]) { m_selectedTrain = null; } m_trainTable[train].Dispose(); m_trainTable.Remove(train); } } catch (InvalidCastException ex) { m_log.LogError("Received train disposing event but could not cast to train", ex); } }
public void TrainTest1() { ITrain train = null; // TODO: Initialize to an appropriate value TrainGraphic target = new TrainGraphic(train); // TODO: Initialize to an appropriate value ITrain expected = null; // TODO: Initialize to an appropriate value ITrain actual; target.Train = expected; actual = target.Train; Assert.AreEqual(expected, actual); Assert.Inconclusive("Verify the correctness of this test method."); }
public void TrainGraphicConstructorTest1() { ITrain train = null; // TODO: Initialize to an appropriate value TrainGraphic target = new TrainGraphic(train); Assert.Inconclusive("TODO: Implement code to verify target"); }
public void SetScaleTest1() { ITrain train = null; // TODO: Initialize to an appropriate value TrainGraphic target = new TrainGraphic(train); // TODO: Initialize to an appropriate value double scale = 0F; // TODO: Initialize to an appropriate value bool expected = false; // TODO: Initialize to an appropriate value bool actual; actual = target.SetScale(scale); Assert.AreEqual(expected, actual); Assert.Inconclusive("Verify the correctness of this test method."); }