private void UpdateBounds()
        {
            Rect empty = Rect.Empty;

            if (this.IsEnabled && this.treeView != null)
            {
                DataSchemaItem    dataSchemaItem = this.DataContext as DataSchemaItem;
                DataModelItemBase parent         = dataSchemaItem.Parent;
                int num1 = parent != null?parent.Children.IndexOf((DataModelItemBase)dataSchemaItem) : -1;

                DataModelItemBase dataModelItemBase = parent == null || num1 >= parent.Children.Count - 1 ? (DataModelItemBase)null : parent.Children[num1 + 1];
                int index = this.treeView.Items.IndexOf((object)dataSchemaItem);
                int num2  = dataModelItemBase != null?this.treeView.Items.IndexOf((object)dataModelItemBase) : this.treeView.Items.Count;

                FrameworkElement frameworkElement1 = VisualTreeHelper.GetParent((DependencyObject)this) as FrameworkElement;
                if (dataSchemaItem != null && parent != null && (index >= 0 && num2 >= 0))
                {
                    FrameworkElement frameworkElement2 = this.treeView.ItemContainerGenerator.ContainerFromIndex(index) as FrameworkElement;
                    if (frameworkElement2 != null)
                    {
                        Rect rect = frameworkElement2.TransformToVisual((Visual)frameworkElement1).TransformBounds(new Rect(0.0, 0.0, frameworkElement2.ActualWidth, frameworkElement2.ActualHeight));
                        empty.Union(rect);
                    }
                    if (num2 > index)
                    {
                        FrameworkElement frameworkElement3 = this.treeView.ItemContainerGenerator.ContainerFromIndex(num2 - 1) as FrameworkElement;
                        if (frameworkElement3 != null)
                        {
                            Rect rect = frameworkElement3.TransformToVisual((Visual)frameworkElement1).TransformBounds(new Rect(0.0, 0.0, frameworkElement3.ActualWidth, frameworkElement3.ActualHeight));
                            empty.Union(rect);
                        }
                    }
                }
            }
            if (empty.IsEmpty)
            {
                this.Visibility = Visibility.Collapsed;
            }
            else
            {
                this.Visibility      = Visibility.Visible;
                this.RenderTransform = (Transform) new TranslateTransform(empty.Left, empty.Top);
                this.Height          = empty.Height;
            }
        }
Example #2
0
 public override int CompareTo(DataModelItemBase treeItem)
 {
     return(this.DataSourceHost.DocumentNode.Marker.CompareTo((object)((DataHostItem)treeItem).DataSourceHost.DocumentNode.Marker));
 }
Example #3
0
        private List <DataModelItemBase> GenerateSiblingSchemaItemRange(DataSchemaItem first, DataSchemaItem last, DataModelItemBase parent)
        {
            int num1 = parent.Children.IndexOf((DataModelItemBase)last);
            int num2 = parent.Children.IndexOf((DataModelItemBase)first);
            int num3 = num2 < num1 ? 1 : -1;
            List <DataModelItemBase> list = new List <DataModelItemBase>();
            int index = num2;

            while (index != num1 + num3)
            {
                DataSchemaItem dataSchemaItem = parent.Children[index] as DataSchemaItem;
                if (dataSchemaItem != null)
                {
                    list.Add((DataModelItemBase)dataSchemaItem);
                }
                index += num3;
            }
            return(list);
        }
Example #4
0
        public override int CompareTo(DataModelItemBase treeItem)
        {
            DataSchemaItem dataSchemaItem = (DataSchemaItem)treeItem;

            return(StringLogicalComparer.Instance.Compare(this.PathName, dataSchemaItem.PathName));
        }
Example #5
0
 public override int CompareTo(DataModelItemBase treeItem)
 {
     return(this.DisplayName.CompareTo(treeItem.DisplayName));
 }