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);
 }
Пример #10
0
 private void PlaybackServiceRequest(Scenarios.Action a)
 {
     MainForm.Instance.ServiceRequest((ServiceHandlerInfo)a.objInfo);
 }
Пример #11
0
 private void PlaybackDeleteRequest(Scenarios.Action a)
 {
     MainForm.Instance.DeleteRequest((EntityIdInfo)a.scenarioInfo);
 }
Пример #12
0
 private void PlaybackUpdateRequest(Scenarios.Action a)
 {
     MainForm.Instance.UpdateRequest((EntityInfo)a.objInfo);
 }
Пример #13
0
 private void PlaybackDeleteEntity(Scenarios.Action a)
 {
     MainForm.Instance.DeleteEntity((EntityInfo)a.objInfo);
 }
Пример #14
0
 private void PlaybackSetAllEntity(Scenarios.Action a)
 {
     MainForm.Instance.SetAllEntity((EntityInfo)a.objInfo);
 }
Пример #15
0
 private void PlaybackUnregister(Scenarios.Action a)
 {
     ExplorerPanel.Instance.Unregister((RegInfo)a.scenarioInfo);
 }
Пример #16
0
        //-------------------------------------------------------
        // 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;
        }
Пример #17
0
 private void PlaybackDisconnect(Scenarios.Action a)
 {
     MainForm.Instance.Disconnect();
 }
Пример #18
0
 private void PlaybackConnect(Scenarios.Action a)
 {
     MainForm.Instance.Connect(false, 0);
 }