public void Dispose()
 {
     CancelSearch();
     FoundedGrid.DataSource = null;
     if (_parent != null)
     {
         _parent.TreeFindBar = null;
         _parent             = null;
     }
     _descriptor = null;
 }
        public void Init(FreeHierarchyTree parent, FreeHierarchyTreeDescriptor descriptor)
        {
            _parent     = parent;
            _descriptor = descriptor;

            Dispatcher.BeginInvoke((Action)(() =>
            {
                FoundedGrid.DataSource = null;

                cbTypeHierarchy.ItemsSource = EnumsHelper.TypesDict;

                #region Прятать или нет поиск по серийному номеру

                if (_parent != null)
                {
                    var im = _parent.FindParent <IModule>();
                    if (im != null)
                    {
                        switch (im.ModuleType)
                        {
                        case ModuleType.DataTIElectricity:
                        case ModuleType.DeviceManage:
                        case ModuleType.JuridicalPersons:
                        case ModuleType.MonitoringAutoSbor:
                        case ModuleType.Monitoring61968:
                        case ModuleType.MonitoringConcentratorSbor:
                        case ModuleType.MonitoringUSPDSbor:
                            spFindTypeLayout.Visibility = System.Windows.Visibility.Visible;
                            break;
                        }
                    }
                }

                #endregion

                if (LoginPage.IsShowPik)
                {
                    byPik.Visibility = Visibility.Visible;
                }
                else
                {
                    byPik.Visibility = Visibility.Collapsed;
                }
            }));

            Dispatcher.BeginInvoke((System.Action)(() => Keyboard.Focus(textFind)), DispatcherPriority.Background);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Подгрузчик дерева
        /// </summary>
        /// <param name="freeHierarchyTypeTreeItem"></param>
        /// <param name="isFullReload"></param>
        public TreeStartLoader(FreeHierarchyTree tree, FreeHierarchyTypeTreeItem freeHierarchyTypeTreeItem, HashSet <long> selectedNodes,
                               bool isFullReload = false, HashSet <int> singreRootFreeHierItemIds = null)
        {
            if (freeHierarchyTypeTreeItem == null || tree == null)
            {
                return;
            }

            var d = new FreeHierarchyTreeDescriptor
            {
                //TreeID = freeHierarchyTypeTreeItem.FreeHierTree_ID,
                FilterStatus                      = tree.FilterStatus,
                TreeHashId                        = GetHashCode(),
                IsSelectSingle                    = tree.IsSelectSingle,
                ShowUspdAndE422InTree             = tree.ShowUspdAndE422InTree,
                IsHideSelectMany                  = tree.IsHideSelectMany,
                NeedFindTransformatorsAndreactors = tree.IsShowTransformatorsAndReactors,
                NeedFindTI                        = !tree.IsHideTi && (freeHierarchyTypeTreeItem.FreeHierTree_ID >= GlobalFreeHierarchyDictionary.TreeTypeStandartPS ||
                                                                       freeHierarchyTypeTreeItem.FreeHierTree_ID == GlobalFreeHierarchyDictionary.TreeTypeStandartTIFormula ||
                                                                       freeHierarchyTypeTreeItem.FreeHierTree_ID == GlobalFreeHierarchyDictionary.TreeTypeStandartDistributingArrangementAndBusSystem),
                IsHideTp = tree.IsHideTp,
                PermissibleForSelectObjects = tree.PermissibleForSelectObjects,
                FreeHierarchyTree           = tree,
            };

            try
            {
                Descriptor = d;
                FreeHierarchyTypeTreeItem = freeHierarchyTypeTreeItem;
                FreeHierarchyTreeItems    = GlobalFreeHierarchyDictionary.GetTree(d, out IsFirstLoaded, tree.IsHideTi, selectedNodes, isFullReload, singreRootFreeHierItemIds);
            }
            catch (Exception ex)
            {
                Manager.UI.ShowMessage(ex.Message);
            }
        }
Ejemplo n.º 4
0
 public void Dispose()
 {
     _descriptor = null;
 }
Ejemplo n.º 5
0
        public FreeHierarchyTreeSelectedObjectsPopup(FreeHierarchyTreeDescriptor descriptor)
        {
            InitializeComponent();

            _descriptor = descriptor;
        }
Ejemplo n.º 6
0
 public void Dispose()
 {
     Descriptor                = null;
     FreeHierarchyTreeItems    = null;
     FreeHierarchyTypeTreeItem = null;
 }
Ejemplo n.º 7
0
        private void InitVisual()
        {
            var nodeContext = DataContext as XamDataTreeNodeDataContext;

            if (nodeContext == null)
            {
                return;
            }

            var item = nodeContext.Data as FreeHierarchyTreeItem;

            if (_parentTree == null)
            {
                _parentTree = nodeContext.Node.NodeLayout.Tree.TryFindResource("treeModule") as FreeHierarchyTree; //.FindParent<FreeHierarchyTree>();
            }

            #region Определяемся нужно ли пересоздавать контрол

            var isRecreateControl = _freeHierarchyTreeItem == null ||
                                    item == null;

            if (!isRecreateControl)
            {
                var oldTypeFound = false;
                var newTypeFound = false;

                isRecreateControl = true;

                foreach (var notRecreatableType in _notRecreatableTypes)
                {
                    if (!oldTypeFound && notRecreatableType == _freeHierarchyTreeItem.FreeHierItemType)
                    {
                        oldTypeFound = true;
                    }

                    if (!newTypeFound && notRecreatableType == item.FreeHierItemType)
                    {
                        newTypeFound = true;
                    }

                    if (oldTypeFound && newTypeFound)
                    {
                        isRecreateControl = false;
                        break;
                    }
                }
            }

            #endregion

            _freeHierarchyTreeItem = item;

            if (_freeHierarchyTreeItem == null || _freeHierarchyTreeItem.Descriptor == null)
            {
                return;
            }

            //MainLayout.DataContext = _freeHierarchyTreeItem;

            if (_outerSelector == null && _parentTree != null && _parentTree.OuterSelector != null)
            {
                _outerSelector = _parentTree.OuterSelector;
            }

            //if (_freeHierarchyTreeItem.UpdateItemContent == null)
            //{
            //    _freeHierarchyTreeItem.UpdateItemContent = UpdateItemContent;
            //}

            if (_parentTree == null)
            {
                return;
            }

            _treeDescriptor = _parentTree.GetDescriptor();
            if (_treeDescriptor == null)
            {
                return;
            }

            bool isHideStandartIcon = false;


            //если указана пользовательская иконка то скрываем стандартные
            if (item != null && item.NodeIcon_ID != null)
            {
                isHideStandartIcon = true;

                DictNodeIcon imgBytes;
                GlobalTreeDictionary.DictNodeIconList.TryGetValue(item.NodeIcon_ID ?? 0, out imgBytes);


                if (imgBytes != null)
                {
                    UserImage.Source = imgBytes.DataImage;
                }
                UserImage.Visibility = Visibility.Visible;
            }
            else if (UserImage.Visibility == Visibility.Visible)
            {
                UserImage.Visibility = Visibility.Collapsed;
                //TODO
            }


            //if (ccLayout.Content != null) DisposeControlContent();
            UpdateItemContent(_freeHierarchyTreeItem, isRecreateControl, isHideStandartIcon);

            //ccLayout.Content = _freeHierarchyTreeItem.Name;
        }
 public FreeHierarchyTreeFindBar(FreeHierarchyTree parent, FreeHierarchyTreeDescriptor descriptor)
 {
     InitializeComponent();
     Init(parent, descriptor);
 }
        internal static void OpenFreeHierarchyTreeFindBar(FreeHierarchyTree parent, FreeHierarchyTreeDescriptor descriptor)
        {
            FreeHierarchyTreeFindBar findBar;

            //Сначала закрываем предыдущее окно
            if (parent.TreeFindBar != null)
            {
                findBar = parent.TreeFindBar;
                findBar.Init(parent, descriptor);
                var previousPopup = findBar.FindParent <System.Windows.Controls.Primitives.Popup>();
                if (previousPopup != null && !previousPopup.IsOpen)
                {
                    previousPopup.IsOpen = true;
                }
                return;
            }

            findBar            = new FreeHierarchyTreeFindBar(parent, descriptor);
            parent.TreeFindBar = findBar;

            findBar.MakeResizable();
            var tvPlace = new Rect(parent.tree.PointToScreen(new Point(0, 0)),
                                   parent.tree.PointToScreen(new Point(parent.tree.ActualWidth, parent.tree.ActualHeight)));
            var wa = SystemParameters.WorkArea;

            var popup = new System.Windows.Controls.Primitives.Popup
            {
                Child     = findBar,
                StaysOpen = false,
            };

            var isShowNearest = true;
            var ch            = parent.FindParent <ILocalChildren>();

            isShowNearest = ch == null;

            popup.PlacementTarget = parent.tree;

            if (isShowNearest)
            {
                if ((tvPlace.Right + findBar.ActualHeight) < wa.Right)
                {
                    popup.Placement = PlacementMode.Right;
                }
                else if (tvPlace.Left - findBar.ActualWidth > wa.Left)
                {
                    popup.Placement = PlacementMode.Left;
                }
                else if (tvPlace.Bottom + findBar.ActualHeight < wa.Bottom)
                {
                    popup.Placement        = PlacementMode.Relative;
                    popup.HorizontalOffset = tvPlace.Width - findBar.ActualWidth;
                    popup.VerticalOffset   = tvPlace.Height;
                }
                else
                {
                    popup.Placement = PlacementMode.Top;
                }
            }
            else
            {
                popup.Placement        = PlacementMode.Right;
                popup.HorizontalOffset = -333;
                popup.VerticalOffset   = -10;
            }

            if (popup.PlacementTarget != null)
            {
                popup.OpenAndRegister(false);
            }
        }