public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            List <object> values = item as List <object>;

            if (values != null)
            {
                DefiningBenchmarkViewModel   bvm          = (DefiningBenchmarkViewModel)values[0];
                DefiningBenchmarkDialogState currentState = (DefiningBenchmarkDialogState)values[1];

                //find the proper dialog window
                Window win = Application.Current.Windows.Cast <Window>().SingleOrDefault(x => x.GetType().ToString().Equals("TraceLab.UI.WPF.Views.DefineBenchmarkDialog"));

                // Select one of the DataTemplate objects, based on the current state
                switch (currentState)
                {
                case DefiningBenchmarkDialogState.DefineBenchmark:
                    return(win.FindResource("defineBenchmark") as DataTemplate);

                case DefiningBenchmarkDialogState.Authentication:
                    return(win.FindResource("contestPublishing") as DataTemplate);    //use the same template as UploadingContest

                case DefiningBenchmarkDialogState.UploadingContest:
                    return(win.FindResource("contestPublishing") as DataTemplate);    //use the same template as Authenticate
                }
            }

            return(null);
        }
Exemple #2
0
        private void ShowDefineBenchmarkDialog(object param)
        {
            ApplicationViewModelWrapper appvm = (ApplicationViewModelWrapper)DataContext;
            var experiment = appvm.ExperimentDocumentWrapper[0] as ExperimentViewModel;

            if (experiment != null)
            {
                var loggerNameRoot = new TraceLab.Core.Components.LoggerNameRoot(experiment.TopLevel.ExperimentInfo.Id);
                //validate experiment first
                bool isValid = TraceLab.Core.ExperimentExecution.ExperimentValidator.ValidateExperiment((IExperiment)experiment.TopLevel,
                                                                                                        appvm.WorkspaceViewModel.WorkspaceTypeDirectories, loggerNameRoot);

                if (isValid == false)
                {
                    //show error dialog
                    string caption   = TraceLab.Core.Messages.ExperimentNotValid;
                    string errorText = TraceLab.Core.Messages.InvalidExperimentErrorMessage;
                    MessageBox.Show(errorText, caption, MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
                else
                {
                    //create dialog with data contex of Define Benchmark
                    DefineBenchmarkDialog box = new DefineBenchmarkDialog();

                    //until multiple benchmark directories are not implemented
                    List <string> benchmarkDirectories = new List <string>();
                    benchmarkDirectories.Add(appvm.BenchmarkWizardViewModel.BenchmarksDirectory);

                    //create view model
                    DefiningBenchmarkViewModel definingBenchmarkViewModel = new DefiningBenchmarkViewModel((Experiment)experiment.TopLevel,
                                                                                                           benchmarkDirectories,
                                                                                                           (TraceLab.Core.Components.ComponentsLibrary)appvm.ComponentLibraryViewModel,
                                                                                                           (TraceLab.Core.Workspaces.Workspace)appvm.WorkspaceViewModel,
                                                                                                           appvm.WorkspaceViewModel.WorkspaceTypeDirectories,
                                                                                                           appvm.SettingsViewModel.WebserviceAddress);

                    box.DataContext = definingBenchmarkViewModel;
                    box.Owner       = this;
                    box.ShowDialog();
                }
            }
        }
        private void ShowDefineBenchmarkDialog(object param)
        {
            ApplicationViewModelWrapper appvm = (ApplicationViewModelWrapper)DataContext;
            var experiment = appvm.ExperimentDocumentWrapper[0] as ExperimentViewModel;

            if (experiment != null)
            {
                var loggerNameRoot = new TraceLab.Core.Components.LoggerNameRoot(experiment.TopLevel.ExperimentInfo.Id);
                //validate experiment first
                bool isValid = TraceLab.Core.ExperimentExecution.ExperimentValidator.ValidateExperiment((IExperiment)experiment.TopLevel, 
                                                                            appvm.WorkspaceViewModel.WorkspaceTypeDirectories, loggerNameRoot);

                if (isValid == false)
                {
                    //show error dialog
                    string caption = TraceLab.Core.Messages.ExperimentNotValid;
                    string errorText = TraceLab.Core.Messages.InvalidExperimentErrorMessage;
                    MessageBox.Show(errorText, caption, MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
                else
                {
                    //create dialog with data contex of Define Benchmark
                    DefineBenchmarkDialog box = new DefineBenchmarkDialog();

                    //until multiple benchmark directories are not implemented
                    List<string> benchmarkDirectories = new List<string>();
                    benchmarkDirectories.Add(appvm.BenchmarkWizardViewModel.BenchmarksDirectory);

                    //create view model
                    DefiningBenchmarkViewModel definingBenchmarkViewModel = new DefiningBenchmarkViewModel((Experiment)experiment.TopLevel, 
                                                                                benchmarkDirectories,
                                                                                (TraceLab.Core.Components.ComponentsLibrary)appvm.ComponentLibraryViewModel,
                                                                                (TraceLab.Core.Workspaces.Workspace)appvm.WorkspaceViewModel,
                                                                                appvm.WorkspaceViewModel.WorkspaceTypeDirectories,
                                                                                appvm.SettingsViewModel.WebserviceAddress);

                    box.DataContext = definingBenchmarkViewModel;
                    box.Owner = this;
                    box.ShowDialog();
                }
            }
        }