Snoop.SnoopUI.InitShell C# (CSharp) Method

InitShell() private method

private InitShell ( ) : void
return void
        private void InitShell()
        {
            if (ShellConstants.IsPowerShellInstalled)
            {
                var shell = new EmbeddedShellView();
                shell.Start(this);

                this.PowerShellTab.Content = shell;

                RoutedPropertyChangedEventHandler<object> onSelectedItemChanged = (sender, e) => shell.NotifySelected(this.CurrentSelection);
                Action<VisualTreeItem> onProviderLocationChanged = item => this.Dispatcher.BeginInvoke(new Action(() =>
                {
                    item.IsSelected = true;
                    this.CurrentSelection = item;
                }));

                // sync the current location
                this.Tree.SelectedItemChanged += onSelectedItemChanged;
                shell.ProviderLocationChanged += onProviderLocationChanged;

                // clean up garbage!
                this.Closed += delegate
                {
                    this.Tree.SelectedItemChanged -= onSelectedItemChanged;
                    shell.ProviderLocationChanged -= onProviderLocationChanged;
                };
            }
        }