Ejemplo n.º 1
0
        private void RenameMergedPet(object sender, RoutedEventArgs e)
        {
            try
            {
                if (PetGrid.SelectedItem != null)
                {
                    var selectedDataset = (Dataset)PetGrid.SelectedItem;
                    var renameDialog    = new PromptDialog {
                        Owner = this, Text = selectedDataset.Name
                    };

                    bool?result = renameDialog.ShowDialog();

                    if (result == true && renameDialog.Text != selectedDataset.Name)
                    {
                        PetMerger.RenameMergedPet(selectedDataset, renameDialog.Text, ViewModel.Store.DataDirectory);
                        ViewModel.ReloadMerged();
                    }
                }
            }
            catch (Exception ex)
            {
                ShowErrorDialog("Rename error", "An error occurred while renaming this PET.", ex.Message, ex.ToString());
            }
        }
Ejemplo n.º 2
0
        private void JobCollectionAddedHandler(object o, JobManagerFramework.JobManager.JobCollectionAddedEventArgs jobCollectionAddedEventArgs)
        {
            InvokeOnMainThread(() =>
            {
                PetMerger.BuildPetDirectory(jobCollectionAddedEventArgs.JobCollection);

                if (JobCollectionAdded != null)
                {
                    JobCollectionAdded(this, jobCollectionAddedEventArgs);
                }
            });
        }
Ejemplo n.º 3
0
        private void RefreshMergedPet(object sender, RoutedEventArgs e)
        {
            //TODO: Refresh multiple selected merged PETs?
            if (PetGrid.SelectedItems.Count == 1)
            {
                try
                {
                    var selectedDataset = (Dataset)PetGrid.SelectedItem;

                    PetMerger.RefreshMergedPet(selectedDataset, ViewModel.Store.DataDirectory);

                    //Trigger an update of the details panel
                    PetGrid_SelectionChanged(this, new SelectionChangedEventArgs(e.RoutedEvent, new Object[0], new Object[0]));
                }
                catch (Exception ex)
                {
                    ShowErrorDialog("Refresh error", "An error occurred while refreshing the merged PET.", ex.Message, ex.ToString());
                }
            }
        }
Ejemplo n.º 4
0
        public string CreateNewVisualizerSession(string name)
        {
            var baseDirectory      = Path.Combine(MergedDirectory, DetailsDataset.Folders[0]);
            var newSessionFileName = string.Format("{0}-visualizer_config.json", name);
            var newSessionPath     = Path.Combine(baseDirectory, newSessionFileName);

            if (File.Exists(newSessionPath))
            {
                throw new InvalidOperationException("A visualizer session with this name already exists.");
            }

            PetMerger.WriteDefaultVizConfig(newSessionPath);

            //Reload visualizer session list
            VisualizerSessionsList.Clear();
            VisualizerSessionsList.AddRange(GetVisualizerSessions(MergedDirectory));
            VisualizerSessions.Refresh();

            return(newSessionPath);
        }
Ejemplo n.º 5
0
        private void PetGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            foreach (var deselectedObject in e.RemovedItems)
            {
                var dataset = (Dataset)deselectedObject;

                dataset.Selected = false;
            }

            foreach (var selectedObject in e.AddedItems)
            {
                var dataset = (Dataset)selectedObject;

                dataset.Selected = true;
            }


            PetDetailsPanel.Children.Clear();

            //If we recreate this intermediate panel every time this method's called, we can
            //avoid displaying the wrong results if the user changes focus while data's loading
            var detailsPanel = new DockPanel();

            PetDetailsPanel.Children.Add(detailsPanel);

            var placeholderPanel = new PlaceholderDetailsPanel();

            detailsPanel.Children.Add(placeholderPanel);
            try
            {
                if (PetGrid.SelectedItem != null)
                {
                    var selectedDataset = (Dataset)PetGrid.SelectedItem;

                    if (selectedDataset.Kind == Dataset.DatasetKind.PetResult)
                    {
                        placeholderPanel.IsLoading = true;
                        var resultsDirectory = System.IO.Path.Combine(ViewModel.Store.DataDirectory,
                                                                      DatasetStore.ResultsDirectory);

                        var loadTask = Task <PetDetailsViewModel> .Factory.StartNew(() =>
                        {
                            return(new PetDetailsViewModel(selectedDataset, resultsDirectory));
                        });

                        loadTask.ContinueWith(task =>
                        {
                            if (!task.IsCanceled)
                            {
                                if (task.Exception != null)
                                {
                                    placeholderPanel.IsLoading   = false;
                                    placeholderPanel.DisplayText =
                                        "An error occurred while inspecting selected object: \n";

                                    foreach (var exception in task.Exception.InnerExceptions)
                                    {
                                        placeholderPanel.DisplayText += "\n" + exception.Message;
                                    }
                                }
                                else
                                {
                                    var detailsControl = new PetDetailsControl(task.Result, ViewModel);

                                    detailsPanel.Children.Clear();
                                    detailsPanel.Children.Add(detailsControl);
                                }
                            }
                        }, TaskScheduler.FromCurrentSynchronizationContext());
                    }
                    else if (selectedDataset.Kind == Dataset.DatasetKind.MergedPet || selectedDataset.Kind == Dataset.DatasetKind.Pet)
                    {
                        placeholderPanel.IsLoading = true;
                        var resultsDirectory = System.IO.Path.Combine(ViewModel.Store.DataDirectory,
                                                                      DatasetStore.MergedDirectory);
                        var dataDirectory = ViewModel.Store.DataDirectory;

                        var loadTask = Task <MergedPetDetailsViewModel> .Factory.StartNew(() =>
                        {
                            //Only auto-refresh autogenerated merged PET datasets (ones generated by the Results Browser
                            //when a PET is run).  Merged PETs are manually refreshed.
                            if (selectedDataset.Kind == Dataset.DatasetKind.Pet)
                            {
                                try
                                {
                                    PetMerger.RefreshMergedPet(selectedDataset, dataDirectory);
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine("An error occurred while refreshing this merged PET: {0}", ex);
                                }
                            }

                            return(new MergedPetDetailsViewModel(selectedDataset, resultsDirectory));
                        });

                        loadTask.ContinueWith(task =>
                        {
                            if (!task.IsCanceled)
                            {
                                if (task.Exception != null)
                                {
                                    placeholderPanel.IsLoading   = false;
                                    placeholderPanel.DisplayText =
                                        "An error occurred while inspecting selected object: \n";

                                    foreach (var exception in task.Exception.InnerExceptions)
                                    {
                                        placeholderPanel.DisplayText += "\n" + exception.Message;
                                    }
                                }
                                else
                                {
                                    var detailsControl = new MergedPetDetailsControl(task.Result, ViewModel);

                                    detailsPanel.Children.Clear();
                                    detailsPanel.Children.Add(detailsControl);
                                }
                            }
                        }, TaskScheduler.FromCurrentSynchronizationContext());
                    }
                    else
                    {
                        placeholderPanel.DisplayText = "No archive inspector";
                    }
                }
            }
            catch (Exception ex)
            {
                placeholderPanel.IsLoading   = false;
                placeholderPanel.DisplayText = "An error occurred while inspecting selected object.";
                ShowErrorDialog("Error", "An error occurred while loading dataset details.", ex.Message, ex.ToString());
            }
        }
Ejemplo n.º 6
0
 private void OnRenamed(object source, RenamedEventArgs e)
 {
     // Specify what is done when a file is renamed.
     Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
     PetMerger.RefreshMergedPet(MergedDataset, DataDirectoryPath);
 }
Ejemplo n.º 7
0
 private void OnChanged(object source, FileSystemEventArgs e)
 {
     // Specify what is done when a file is changed, created, or deleted.
     Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
     PetMerger.RefreshMergedPet(MergedDataset, DataDirectoryPath);
 }
Ejemplo n.º 8
0
        private void OkButton_Click(object sender, RoutedEventArgs e)
        {
            this.DialogResult = true;

            PetMerger.MergePets(this.MergedPetNameTextBox.Text, DatasetsToMerge, DataDirectoryPath);
        }