示例#1
0
        private bool StartAction()
        {
            //ShadowMaker.ShowThis(new LoadingControl("Simulation ..."));
            modelControlGrid.IsEnabled = true;

            if (!experimenter.CheckDataCollectionExists())
            {
                var result = MessageBox.Show(App.Current.MainWindow, "There are no Data Collection measurements defined in the Model.\nDo you really want to start simulation?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning);
                if (result == MessageBoxResult.No)
                {
                    ShadowMaker.ShadowDown();
                    return(false);
                }
            }

            if (!experimenter.CheckCountersEvaluationEnabled())
            {
                var result = MessageBox.Show(App.Current.MainWindow, "Data Collection Evaluation is disabled.\nDo you want to enable Data Collection Evaluation?\n[Press Cancel to stop simulation]", "Question", MessageBoxButton.YesNoCancel, MessageBoxImage.Question);
                if (result == MessageBoxResult.Yes)
                {
                    experimenter.EnableCountersEvaluation();
                }
                if (result == MessageBoxResult.Cancel)
                {
                    ShadowMaker.ShadowDown();
                    return(false);
                }
            }

            return(true);
        }
        public CountersReportControl(string header, ProjectManager manager, IEnumerable <ItemDescriptor> items)
        {
            InitializeComponent();

            if (header == "Counters Report")
            {
                var binding = new Binding
                {
                    Source = Settings.Default,
                    Path   = new PropertyPath("CountersReportControl_cbxColumnsList_SelectedIndex1"),
                    Mode   = BindingMode.TwoWay,
                };

                cbxColumnsList.SetBinding(ComboBox.SelectedIndexProperty, binding);

                binding = new Binding
                {
                    Source = Settings.Default,
                    Path   = new PropertyPath("CountersReportControl_tbxFilter1"),
                    Mode   = BindingMode.TwoWay,
                };

                tbxFilter.SetBinding(TextBox.TextProperty, binding);
            }
            else
            {
                var binding = new Binding
                {
                    Source = Settings.Default,
                    Path   = new PropertyPath("CountersReportControl_cbxColumnsList_SelectedIndex2"),
                    Mode   = BindingMode.TwoWay,
                };

                cbxColumnsList.SetBinding(ComboBox.SelectedIndexProperty, binding);

                binding = new Binding
                {
                    Source = Settings.Default,
                    Path   = new PropertyPath("CountersReportControl_tbxFilter2"),
                    Mode   = BindingMode.TwoWay,
                };

                tbxFilter.SetBinding(TextBox.TextProperty, binding);
            }

            this.items                 = items;
            this.manager               = manager;
            tbkHeader.Text             = header;
            shadowMaker                = new ShadowMaker();
            ccTopLayerHost.DataContext = shadowMaker;
        }
示例#3
0
        private void btnLoad_Click(object sender, RoutedEventArgs e)
        {
            ShadowMaker.ShadowUp();
            ShadowMaker.ShowThis(new LoadingControl("Starting VISSIM..."));

            //???
            this.modelControlGrid.IsEnabled = false;

            experimenter.LoadModelAsync(true, this.Dispatcher, () =>
            {
                this.modelControlGrid.IsEnabled = true;
                ShadowMaker.ShadowDown();
            });
        }
示例#4
0
        public Analyst(ProjectManager clerk, ShadowMaker shadowMaker, AsyncExceptionHandler exceptionHandler)
        {
            this.aex = exceptionHandler;

            this.shadowMaker = shadowMaker;

            this.clerk = clerk;
            this.Host  = new ReportBindingSource(shadowMaker, exceptionHandler, clerk);

            //this.Host.DrawModel += new EventHandler<EventArgs<UserControl, bool>>(Host_DrawModel);
            this.Host.DrawPoints             += new EventHandler <EventArgs <UserControl> >(Host_DrawPoints);
            this.Host.DrawCounters           += new EventHandler <EventArgs <UserControl> >(Host_DrawCounters);
            this.Host.GenerateCountersReport += new EventHandler <EventArgs <DataTableEx, Dispatcher> >(Host_GenerateCountersReport);
            this.Host.GenerateTrTimesReport  += new EventHandler <EventArgs <DataTableEx, Dispatcher> >(Host_GenerateTrTimesReport);

            this.Host.DrawSections += new EventHandler <EventArgs <UserControl> >(Host_DrawSections);
            this.Host.DrawTrTimes  += new EventHandler <EventArgs <UserControl> >(Host_DrawTrTimes);
        }
示例#5
0
        void tc_Play()
        {
            RaiseEvent(new RoutedEventArgs(TreeControl.PlayEvent));

            modelControlGrid.IsEnabled = false;
            ShadowMaker.ShadowUp();

            if (!vissim.IsInstanciated)
            {
                ShadowMaker.ShowThis(new LoadingControl("Starting VISSIM ..."));
            }
            else
            {
                ShadowMaker.ShowThis(new LoadingControl("Simulation ..."));
            }

            experimenter.RunSimulationAsync(this.Dispatcher
                                            , StartAction
                                            , (expData) =>
            {
                var ctrl = CreateCreateExperimentControl(expData);
                ShadowMaker.ShowThis(ctrl);
            });
        }
示例#6
0
        private CreateExperimentControl CreateCreateExperimentControl(Experiment.ExperimentData expData)
        {
            var ctrl = new CreateExperimentControl();

            ctrl.DataContext = expData;

            //ctrl.tbkDuration.Text = duration.ToString();
            ctrl.btnCreateExperimenet.Click += (sender_, e_) =>
            {
                experimenter.CreateExperiment(expData);

                // refresh the model experiments tree
                Refresh();
                ShadowMaker.ShadowDown();
            };

            ctrl.btnCancel.Click += (sender_, e_) =>
            {
                Refresh();
                ShadowMaker.ShadowDown();
            };

            return(ctrl);
        }
示例#7
0
 private void InitShadowMaker()
 {
     shadowMaker = new ShadowMaker();
     ccTopLayerHost.DataContext = shadowMaker;
 }
示例#8
0
        void tc_Multi()
        {
            RaiseEvent(new RoutedEventArgs(TreeControl.MultiEvent));

            ShadowMaker.ShadowUp();
            modelControlGrid.IsEnabled = false;

            var x = new StartMultirunBindingSource()
            {
                DisableAnimation = true,
                NumberOfRuns     = 3
            };

            var startCtrl = new StartMultirunControl();

            startCtrl.DataContext      = x;
            startCtrl.btnCancel.Click += (sender_, e_) =>
            {
                ShadowMaker.ShadowDown();
                modelControlGrid.IsEnabled = true;
            };
            startCtrl.btnOk.Click += (sender_, e_) =>
            {
                ShadowMaker.ShadowDown();

                if (x.NumberOfRuns > 0)
                {
                    var lc = new LoadingControl();
                    if (!vissim.IsInstanciated)
                    {
                        lc.Message = "Starting VISSIM ...";
                    }
                    else
                    {
                        lc.Message = "Simulation ...";
                    }
                    ShadowMaker.ShowThis(lc);

                    experimenter.RunMultiAsync(x, this.Dispatcher
                                               , StartAction
                                               , (expData) =>
                    {
                        var ctrl = CreateCreateExperimentControl(expData);
                        ShadowMaker.ShowThis(ctrl);
                    }
                                               , (message) =>
                    {
                        lc.Message = message;
                    }
                                               );
                }
                else
                {
                    ShadowMaker.ShowThis(startCtrl);
                }

                ShadowMaker.ShadowUp();
            };

            ShadowMaker.ShowThis(startCtrl);
        }
示例#9
0
 private void InitShadowMaker()
 {
     ShadowMaker = new ShadowMaker();
     ccShadowHost.DataContext = ShadowMaker;
 }