BetterExplorer.MainWindow.SetupUIOnSelectOrNavigate C# (CSharp) Method

SetupUIOnSelectOrNavigate() private method

Does setup required for the UI when navigation occurs to a new folder
private SetupUIOnSelectOrNavigate ( ) : void
return void
    private void SetupUIOnSelectOrNavigate() {
      Dispatcher.BeginInvoke(DispatcherPriority.Background, (ThreadStart)(() => {
        btnDefSave.Items.Clear();
        var selItemsCount = _ShellListView.GetSelectedCount();
        var selectedItem = this._ShellListView.GetFirstSelectedItem();

        if (selectedItem == null) {
          btnOpenWith.IsEnabled = false;
        } else {
          var mnu = new ShellContextMenu(this._ShellListView, false);

          try {
            var tempPoint = btnOpenWith.PointToScreen(new WIN.Point(0, 0));
            var itemMenuCount = mnu.ShowContextMenu(new System.Drawing.Point((int)tempPoint.X, (int)tempPoint.Y + (int)btnOpenWith.ActualHeight), 1, false);
            btnOpenWith.IsEnabled = itemMenuCount > 0 && selItemsCount == 1;
          } catch {
            btnOpenWith.IsEnabled = false;
          }
        }

        btnNewItem.IsEnabled = this._ShellListView.CurrentFolder.IsFileSystem || this._ShellListView.CurrentFolder.ParsingName == KnownFolders.Libraries.ParsingName;
        if (selectedItem != null && selectedItem.IsFileSystem && IsPreviewPaneEnabled && !selectedItem.IsFolder && selItemsCount == 1)
          this.Previewer.FileName = selectedItem.ParsingName;
        else if (!String.IsNullOrEmpty(this.Previewer.FileName))
          this.Previewer.FileName = null;

        //Set up ribbon contextual tabs on selection changed
        SetUpRibbonTabsVisibilityOnSelectOrNavigate(selItemsCount, selectedItem);
        SetUpButtonsStateOnSelectOrNavigate(selItemsCount, selectedItem);
      }));
    }
MainWindow