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); }
/// <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); } }
public void Dispose() { _descriptor = null; }
public FreeHierarchyTreeSelectedObjectsPopup(FreeHierarchyTreeDescriptor descriptor) { InitializeComponent(); _descriptor = descriptor; }
public void Dispose() { Descriptor = null; FreeHierarchyTreeItems = null; FreeHierarchyTypeTreeItem = null; }
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); } }