public void LoadScenario(string path) { this.Cursor = Cursors.WaitCursor; try { Scenarios.Action tmp = Scenarios.ScenarioTools.ReadFile(path); if (tmp == null) { this.Cursor = Cursors.Default; MessageBox.Show("Failed to load scenario from file " + path, "Load failed", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { reclistBox.Items.Clear(); this.scenario = tmp; this.Text = "Scenario (" + path + ")"; this.playbutton.Enabled = true; HandleLoadedScenario(scenario); } } catch { MessageBox.Show("Failed to load scenario from file " + path, "Load failed", MessageBoxButtons.OK, MessageBoxIcon.Error); } this.Cursor = Cursors.Default; }
public void Record(Scenarios.Action action) { if (status != Status.Recording) { return; } action.delay = delayForm.Delay; this.reclistBox.Items.Add(action); }
private void PlaybackRegister(Scenarios.Action a) { if (Safir.Dob.Typesystem.Operations.IsOfType(((RegInfo)a.scenarioInfo).typeId, Safir.Dob.Entity.ClassTypeId)) { ExplorerPanel.Instance.RegisterEntity((RegInfo)a.scenarioInfo); } else { ExplorerPanel.Instance.RegisterService((RegInfo)a.scenarioInfo); } }
private void incrInstmenuItem_Click(object sender, System.EventArgs e) { foreach (int i in this.reclistBox.SelectedIndices) { Scenarios.Action action = (Scenarios.Action)reclistBox.Items[i]; if (action.HasInstanceNumber()) { action.instStepUp = !action.instStepUp; this.reclistBox.Items[i] = action; } } this.reclistBox.Invalidate(); }
private void PlaybackUnsubscribe(Scenarios.Action a) { SubInfo subInfo = (SubInfo)a.scenarioInfo; if (Safir.Dob.Typesystem.Operations.IsOfType(subInfo.typeId, Safir.Dob.Entity.ClassTypeId)) { ExplorerPanel.Instance.UnsubscribeEntity(subInfo); } else { ExplorerPanel.Instance.UnsubscribeMessage(subInfo); } }
private void HandleLoadedScenario(Scenarios.Action a) { bool isLoop = a.repetitions > 1 || a.repetitions < 0; if (isLoop) //Start of loop { Scenarios.RepeatStartMarker startMark = new Sate.Scenarios.RepeatStartMarker(a.repetitions); this.reclistBox.Items.Add(startMark); } if (a.action == Scenarios.DobAction.Sequence) { for (int i = 0; i < a.sequence.Length; i++) { HandleLoadedScenario(a.sequence[i]); } } else { this.reclistBox.Items.Add(a); } if (isLoop) //End of loop { Scenarios.RepeatStopMarker stopMark = new Sate.Scenarios.RepeatStopMarker(); this.reclistBox.Items.Add(stopMark); } if (a.xmlObject != null) { try { a.objInfo.Obj = Safir.Dob.Typesystem.Serialization.ToObject(a.xmlObject); //long typeId = a.objInfo.Obj.GetTypeId(); //string className = Safir.Dob.Typesystem.Operations.GetName(typeId); //System.Type dobType = MainForm.Instance.DotsGenerated.GetType(className); //System.Reflection.ConstructorInfo constr = // dobType.GetConstructor(new System.Type[] { typeof(Safir.Dob.Typesystem.Object) }); //System.Reflection.ConstructorInfo constr = dobType.GetConstructor(System.Type.EmptyTypes); //a.obj = (Safir.Dob.Typesystem.Object)constr.Invoke(new object[] { a.obj }); // a.numberOfInstances = Safir.Dob.Typesystem.Operations.GetMaxNumberOfInstances(typeId); } catch (Safir.Dob.Typesystem.IllegalValueException e) { MessageBox.Show("Failed to load serialized object:\n\n" + a.xmlObject, "Serialization Error: " + e.Message); } } }
private void delaymenuItem_Click(object sender, System.EventArgs e) { DelayForm df = new DelayForm(); if (df.ShowDialog() == DialogResult.OK) { foreach (int i in this.reclistBox.SelectedIndices) { Scenarios.Action tmp = GetAction(i); tmp.delay = df.Delay; this.reclistBox.Items[i] = tmp; } } this.reclistBox.Invalidate(); }
private void PlaybackUnsubscribeRegistration(Scenarios.Action a) { ExplorerPanel.Instance.UnsubscribeRegistration((SubRegInfo)a.scenarioInfo); }
private void PlaybackSendMessage(Scenarios.Action a) { MainForm.Instance.SendMessage((MessageInfo)a.objInfo); }
private void PlaybackServiceRequest(Scenarios.Action a) { MainForm.Instance.ServiceRequest((ServiceHandlerInfo)a.objInfo); }
private void PlaybackDeleteRequest(Scenarios.Action a) { MainForm.Instance.DeleteRequest((EntityIdInfo)a.scenarioInfo); }
private void PlaybackUpdateRequest(Scenarios.Action a) { MainForm.Instance.UpdateRequest((EntityInfo)a.objInfo); }
private void PlaybackDeleteEntity(Scenarios.Action a) { MainForm.Instance.DeleteEntity((EntityInfo)a.objInfo); }
private void PlaybackSetAllEntity(Scenarios.Action a) { MainForm.Instance.SetAllEntity((EntityInfo)a.objInfo); }
private void PlaybackUnregister(Scenarios.Action a) { ExplorerPanel.Instance.Unregister((RegInfo)a.scenarioInfo); }
//------------------------------------------------------- // Playback, running in a seperate thread //------------------------------------------------------- private void PlaybackAction() { if (playIterator == null) { return; } if (!playIterator.HasNext()) { playIterator = null; stopbutton_Click(null, null); return; } Scenarios.Action a = playIterator.Next(); switch (a.action) { case Scenarios.DobAction.Connect: PlaybackConnect(a); break; case Scenarios.DobAction.Disconnect: PlaybackDisconnect(a); break; case Scenarios.DobAction.Register: PlaybackRegister(a); break; case Scenarios.DobAction.Unregister: PlaybackUnregister(a); break; case Scenarios.DobAction.Subscribe: PlaybackSubscribe(a); break; case Scenarios.DobAction.Unsubscribe: PlaybackUnsubscribe(a); break; case Sate.Scenarios.DobAction.SubscribeRegistration: PlaybackSubscribeRegistration(a); break; case Sate.Scenarios.DobAction.UnsubscribeRegistration: PlaybackUnsubscribeRegistration(a); break; case Scenarios.DobAction.SetChangesEntity: PlaybackSetChangesEntity(a); break; case Scenarios.DobAction.SetAllEntity: PlaybackSetAllEntity(a); break; case Scenarios.DobAction.DeleteEntity: PlaybackDeleteEntity(a); break; case Scenarios.DobAction.CreateRequest: PlaybackCreateRequest(a); break; case Scenarios.DobAction.UpdateRequest: PlaybackUpdateRequest(a); break; case Scenarios.DobAction.DeleteRequest: PlaybackDeleteRequest(a); break; case Scenarios.DobAction.ServiceRequest: PlaybackServiceRequest(a); break; case Scenarios.DobAction.SendMessage: PlaybackSendMessage(a); break; } if (a.instStepUp) { a.StepUpInstance(); } playTimer.Interval = a.delay; }
private void PlaybackDisconnect(Scenarios.Action a) { MainForm.Instance.Disconnect(); }
private void PlaybackConnect(Scenarios.Action a) { MainForm.Instance.Connect(false, 0); }