Ejemplo n.º 1
0
        public static void SetIsAltSelected(ExplorerTreeViewItem element, Boolean value, ExplorerTreeView treeView)
        {
            if (element == null)
            {
                return;
            }

            if (value)
            {
                //deselect previous selection
                var selected = ExplorerTreeView.GetAltSelectedItem(treeView);
                ExplorerTreeView.AltDeselectItem(treeView, element, element);
            }

            if (GetIsAltSelected(element) != value)
            {
                element.SetValue(IsAltSelectedProperty, value);
                element.NotifyPropertyChanged("IsAltSelected");
            }
            object selectedobj = ExplorerTreeView.GetAltSelectedItem(treeView);

            if (selectedobj != null && selectedobj.Equals(element.Header))
            {
                return;
            }

            ExplorerTreeView.SetAltSelectedItem(treeView, value ? element.Header : null);
        }
Ejemplo n.º 2
0
 public static void AltDeselectItem(ExplorerTreeView treeView, ExplorerTreeViewItem treeViewItem, ExplorerTreeViewItem skip)
 {
     if (treeView != null)
     {
         for (int i = 0; i < treeView.Items.Count; i++)
         {
             if (treeView.ItemContainerGenerator.ContainerFromIndex(i) is ExplorerTreeViewItem item)
             {
                 if (item != skip)
                 {
                     ExplorerTreeViewItem.SetIsAltSelected(item, false, treeView);
                 }
                 AltDeselectItem(null, item, skip);
             }
         }
     }
     else
     {
         for (int i = 0; i < treeViewItem.Items.Count; i++)
         {
             if (treeViewItem.ItemContainerGenerator.ContainerFromIndex(i) is ExplorerTreeViewItem item)
             {
                 if (item != skip)
                 {
                     ExplorerTreeViewItem.SetIsAltSelected(item, false, treeView);
                 }
                 AltDeselectItem(null, item, skip);
             }
         }
     }
 }
Ejemplo n.º 3
0
        protected override void OnPreviewMouseLeftButtonUp(MouseButtonEventArgs e)
        {
            base.OnPreviewMouseRightButtonDown(e);

            var treeViewItem = FindTreeViewItem(e.OriginalSource as DependencyObject);

            if (treeViewItem == _selectTreeViewItemOnMouseUp)
            {
                ExplorerTreeViewItem.SetIsAltSelected(treeViewItem, true, this);
            }
        }
Ejemplo n.º 4
0
        protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnPreviewMouseLeftButtonDown(e);

            var treeViewItem = FindTreeViewItem(e.OriginalSource as DependencyObject);

            if (treeViewItem != null)
            {
                _selectTreeViewItemOnMouseUp = treeViewItem;
            }
        }
Ejemplo n.º 5
0
        private static void OnAltSelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var treeViewItem = d as ExplorerTreeViewItem;
            var treeView     = FindTreeView(treeViewItem);

            if (treeViewItem != null && treeView != null)
            {
                var selectedItem = GetAltSelectedItem(treeView);
                if (selectedItem != null)
                {
                    if (ExplorerTreeViewItem.GetIsAltSelected(treeViewItem))
                    {
                        SetAltSelectedItem(treeView, treeViewItem.Header);
                    }
                    else
                    {
                        SetAltSelectedItem(treeView, null);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        protected override void OnGotFocus(RoutedEventArgs e)
        {
            base.OnGotFocus(e);

            if (e.OriginalSource is ExplorerTreeView)
            {
                return;
            }

            var treeViewItem = FindTreeViewItem(e.OriginalSource as DependencyObject);

            if (treeViewItem == null)
            {
                return;
            }

            if (Mouse.LeftButton == MouseButtonState.Pressed && ExplorerTreeViewItem.GetIsAltSelected(treeViewItem))
            {
                _selectTreeViewItemOnMouseUp = treeViewItem;
            }
        }
Ejemplo n.º 7
0
        protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
        {
            base.PrepareContainerForItemOverride(element, item);

            var            ei          = item as FSExplorerItem;
            var            rootcontrol = element;
            FSExplorerTree tvRoot      = null;

            while (true)
            {
                if (!(rootcontrol is Visual || rootcontrol is Visual3D))
                {
                    break;
                }

                if (rootcontrol is FSExplorerTree)
                {
                    tvRoot = rootcontrol as FSExplorerTree;
                    break;
                }
                else
                {
                    rootcontrol = VisualTreeHelper.GetParent(rootcontrol);
                    if (rootcontrol == null)
                    {
                        break;
                    }
                    continue;
                }
            }

            ExplorerTreeViewItem tvi = element as ExplorerTreeViewItem;

            if (tvRoot != null && tvRoot.ShowFiles == false && ei != null && !ei.IsDirectory)
            {
                tvi.Visibility = Visibility.Collapsed;
            }
            //else tvi.Visibility = ei.Visibility;
        }
Ejemplo n.º 8
0
 public static bool GetIsAltSelected(ExplorerTreeViewItem element)
 {
     return((bool)element.GetValue(IsAltSelectedProperty));
 }