Esempio n. 1
0
        private void InitParentTree()
        {
            var nodeContext = DataContext as XamDataTreeNodeDataContext;

            if (nodeContext == null)
            {
                return;
            }

            if (_parentTree == null)
            {
                _parentTree = nodeContext.Node.NodeLayout.Tree.FindParent <FreeHierarchyTree>();
                if (_parentTree != null)
                {
                    TreeMode = _parentTree.TreeMode;
                }
            }
        }
Esempio n. 2
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);
            }
        }
Esempio n. 3
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;
        }
Esempio n. 4
0
 public void Dispose()
 {
     _parentTree = null;
 }