BetterExplorer.MainWindow.SetUpRibbonTabsVisibilityOnSelectOrNavigate C# (CSharp) Method

SetUpRibbonTabsVisibilityOnSelectOrNavigate() private method

Sets up each ribbon tab after select or navigate in ShellListView
Only used in SetupUIOnSelectOrNavigate
private SetUpRibbonTabsVisibilityOnSelectOrNavigate ( int selectedItemsCount, IListItemEx selectedItem ) : void
selectedItemsCount int The number of items selected
selectedItem IListItemEx The last selected item
return void
    private void SetUpRibbonTabsVisibilityOnSelectOrNavigate(int selectedItemsCount, IListItemEx selectedItem) {
      #region Search Contextual Tab
      ctgSearch.Visibility = BooleanToVisibiliy(_ShellListView.CurrentFolder.IsSearchFolder);
      if (ctgSearch.Visibility == Visibility.Visible && !_ShellListView.CurrentFolder.IsSearchFolder) {
        ctgSearch.Visibility = Visibility.Collapsed;
        TheRibbon.SelectedTabItem = HomeTab;
      }
      #endregion

      #region Folder Tools Context Tab
      ctgFolderTools.Visibility = BooleanToVisibiliy((selectedItemsCount == 1 && selectedItem.IsFolder && selectedItem.IsFileSystem && !selectedItem.IsDrive && !selectedItem.IsNetworkPath));

      if (_AsFolder && ctgFolderTools.Visibility == Visibility.Visible) {
        TheRibbon.SelectedTabItem = ctgFolderTools.Items[0];
      }
      #endregion

      #region Drive Contextual Tab
      ctgDrive.Visibility = BooleanToVisibiliy(_ShellListView.CurrentFolder.IsDrive || (selectedItemsCount == 1 && (selectedItem.IsDrive || (selectedItem.Parent != null && selectedItem.Parent.IsDrive))));
      if (asDrive && ctgDrive.Visibility == Visibility.Visible && selectedItemsCount == 1 && selectedItem.IsDrive) {
        TheRibbon.SelectedTabItem = ctgDrive.Items[0];
      }
      #endregion

      #region Library Context Tab
      ctgLibraries.Visibility = BooleanToVisibiliy((selectedItemsCount == 1 && _ShellListView.CurrentFolder.ParsingName.Equals(KnownFolders.Libraries.ParsingName)) || (selectedItemsCount == 1 && selectedItem.Parent != null && selectedItem.Parent.ParsingName.Equals(KnownFolders.Libraries.ParsingName)));

      if (ctgLibraries.Visibility == Visibility.Visible && asLibrary) {
        TheRibbon.SelectedTabItem = ctgLibraries.Items[0];
      }

      /*
        if (ctgLibraries.Visibility == Visibility.Visible && _ShellListView.CurrentFolder.ParsingName.Equals(KnownFolders.Libraries.ParsingName)) {
          if (selectedItem != null && selectedItemsCount == 1)
            SetupLibrariesTab(ShellLibrary.Load(Path.GetFileNameWithoutExtension(selectedItem.ParsingName), false));
        } else if (ctgLibraries.Visibility == Visibility.Visible && _ShellListView.CurrentFolder.Parent.ParsingName.Equals(KnownFolders.Libraries.ParsingName)) {
          if (selectedItemsCount == 1)
            SetupLibrariesTab(ShellLibrary.Load(Path.GetFileNameWithoutExtension(_ShellListView.CurrentFolder.ParsingName), false));
        }
        if (selectedItemsCount == 0) {
          ctgLibraries.Visibility = Visibility.Collapsed;
        }
      */
      if (selectedItemsCount == 0)
        ctgLibraries.Visibility = Visibility.Collapsed;
      else if (selectedItemsCount > 1) { } else if (ctgLibraries.Visibility == Visibility.Visible && _ShellListView.CurrentFolder.ParsingName.Equals(KnownFolders.Libraries.ParsingName))
        SetupLibrariesTab(ShellLibrary.Load(Path.GetFileNameWithoutExtension(selectedItem.ParsingName), false));
      else if (ctgLibraries.Visibility == Visibility.Visible && _ShellListView.CurrentFolder.Parent.ParsingName.Equals(KnownFolders.Libraries.ParsingName))
        SetupLibrariesTab(ShellLibrary.Load(Path.GetFileNameWithoutExtension(_ShellListView.CurrentFolder.ParsingName), false));

      #endregion

      #region Archive Contextual Tab
      ctgArchive.Visibility = WIN.Visibility.Collapsed; //TODO: Restore this: BooleanToVisibiliy(selectedItemsCount == 1 && Archives.Contains(Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant()));
      if (asArchive && ctgArchive.Visibility == Visibility.Visible)
        TheRibbon.SelectedTabItem = ctgArchive.Items[0];

      #endregion

      #region Application Context Tab
      ctgExe.Visibility = BooleanToVisibiliy(selectedItemsCount == 1 && !selectedItem.IsFolder && (Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant() == ".exe" || Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant() == ".msi"));
      if (asApplication && ctgExe.Visibility == Visibility.Visible) {
        TheRibbon.SelectedTabItem = ctgExe.Items[0];
      }
      #endregion

      #region Image Context Tab
      ctgImage.Visibility = BooleanToVisibiliy(selectedItemsCount == 1 && !selectedItem.IsFolder && Images.Contains(Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant()));
      if (ctgImage.Visibility == Visibility.Visible) {
        try {
          if (new FileInfo(selectedItem.ParsingName).Length != 0) {
            using (var cvt = new Bitmap(selectedItem.ParsingName)) {
              imgSizeDisplay.WidthData = cvt.Width.ToString();
              imgSizeDisplay.HeightData = cvt.Height.ToString();

              if (asImage) TheRibbon.SelectedTabItem = ctgImage.Items[0];
            }
          }
        } catch (Exception) {
          MessageBox.Show("Image was invalid");
        }
      }
      #endregion

      #region Virtual Disk Context Tab
      ctgVirtualDisk.Visibility = BooleanToVisibiliy(selectedItemsCount == 1 && !selectedItem.IsFolder && Path.GetExtension(selectedItem.ParsingName).ToLowerInvariant() == ".iso");
      if (asVirtualDrive && ctgVirtualDisk.Visibility == Visibility.Visible) {
        TheRibbon.SelectedTabItem = ctgVirtualDisk.Items[0];
      }
      #endregion

    }
MainWindow