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); }
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(); } } }