Esempio n. 1
0
        /// <summary>
        /// Построение дерева на основе определенных операций проекта.
        /// </summary>
        public bool ShowModes(TechObject.TechObjectManager techManager,
                              bool showCheckBoxes, bool showOneNode, ITreeViewItem item, ITreeViewItem checkedMode,
                              OnSetNewValue fn, bool isRebuiltTree = false)
        {
            if (fn != null)
            {
                functionAfterCheck = fn;
            }

            if (showCheckBoxes)
            {
                modesTreeViewAdv.NodeControls.Insert(0, nodeCheckBox);
            }
            else
            {
                modesTreeViewAdv.NodeControls.Remove(nodeCheckBox);
            }


            //Проверяем на изменение типов отображаемых операций.
            if (isRebuiltTree == false)
            {
                ShowDlg();
                return(true);
            }

            Refresh(techManager, checkedMode, showOneNode, item);

            ShowDlg();
            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// Построение дерева на основе определенных операций проекта.
        /// </summary>
        public bool ShowModes(TechObject.TechObjectManager techManager,
                              bool showCheckBoxes, bool showOneNode, Editor.ITreeViewItem item,
                              Editor.ITreeViewItem checkedMode,
                              OnSetNewValue function, bool isRebuiltTree = false)
        {
            if (function != null)
            {
                functionAfterCheck = function;
            }

            if (showCheckBoxes)
            {
                modesTreeViewAdv.NodeControls.Insert(0, nodeCheckBox);
            }
            else
            {
                modesTreeViewAdv.NodeControls.Remove(nodeCheckBox);
            }

            if (isRebuiltTree == true)
            {
                Refresh(techManager, checkedMode, showOneNode, item);
            }

            ShowDlg();
            return(true);
        }
Esempio n. 3
0
        /// <summary>
        /// Обновление дерева на основе текущих устройств проекта.
        /// </summary>
        /// <param name="techManager">Менеджер техустройств проекта.</param>
        /// <param name="checkedMode">Выбранные операции.</param>
        private void Refresh(TechObject.TechObjectManager techManager,
                             Editor.ITreeViewItem checkedMode, bool showOneNode,
                             Editor.ITreeViewItem item)
        {
            modesTreeViewAdv.BeginUpdate();

            modesTreeViewAdv.Model = null;
            modesTreeViewAdv.Refresh();
            var treeModel = new TreeModel();

            var root = new Node(techManager.DisplayText[0]);

            root.Tag = techManager;
            treeModel.Nodes.Add(root);

            int techObjectNumber = 0;
            int modeNumber       = 0;
            var mainTechObject   = item as TechObject.TechObject;

            FillTreeObjects(techManager.Items, root, mainTechObject,
                            showOneNode, ref techObjectNumber, ref modeNumber,
                            checkedMode);

            SetUpTreeVisibility(root, checkedMode);

            modesTreeViewAdv.Model = treeModel;

            List <TreeNodeAdv> nodes    = modesTreeViewAdv.AllNodes.ToList();
            TreeNodeAdv        treeNode = nodes[0];

            OnHideOperationTree.Execute(treeNode);

            modesTreeViewAdv.ExpandAll();
            modesTreeViewAdv.Refresh();
            modesTreeViewAdv.EndUpdate();
        }
Esempio n. 4
0
        /// <summary>
        /// Обновление дерева на основе текущих устройств проекта.
        /// </summary>
        ///
        /// <param name="techManager">Менеджер техустройств проекта.</param>
        /// <param name="checkedMode">Выбранные операиции.</param>
        private void Refresh(TechObject.TechObjectManager techManager,
                             ITreeViewItem checkedMode, bool showOneNode, ITreeViewItem item)
        {
            modesTreeViewAdv.BeginUpdate();

            modesTreeViewAdv.Model = null;
            modesTreeViewAdv.Refresh();
            TreeModel treeModel = new TreeModel();

            Node root = new Node(techManager.DisplayText[0]);

            root.Tag = techManager.GetType().FullName;
            treeModel.Nodes.Add(root);

            int toNum   = 0;
            int modeNum = 0;

            TechObject.TechObject mainTO = item as TechObject.TechObject;
            var restriction = checkedMode as TechObject.Restriction;

            //Заполняем узлы дерева устройствами.
            foreach (TechObject.TechObject to in techManager.Objects)
            {
                toNum++;

                Node parentNode = new Node(to.DisplayText[0]);
                parentNode.Tag = to.GetType().FullName;
                root.Nodes.Add(parentNode);

                List <TechObject.Mode> modes = to.ModesManager.Modes;

                foreach (TechObject.Mode mode in modes)
                {
                    modeNum++;

                    Node childNode = new Node(mode.DisplayText[0]);
                    childNode.Tag = mode.GetType().FullName;
                    parentNode.Nodes.Add(childNode);

                    if (restriction != null)
                    {
                        var restrictionManager = restriction.Parent;
                        var selectedMode       = restrictionManager.Parent as
                                                 TechObject.Mode;
                        var modeManager = selectedMode.Parent;
                        var selectedTO  = modeManager.Parent as
                                          TechObject.TechObject;
                        if (to.DisplayText[0] == selectedTO.DisplayText[0] &&
                            mode.Name == selectedMode.Name)
                        {
                            childNode.IsHidden = true;
                        }
                    }

                    string checkedStr;
                    if (checkedMode != null)
                    {
                        checkedStr = checkedMode.EditText[1];
                        if (restriction != null)
                        {
                            if (restriction.RestrictDictionary != null)
                            {
                                if (restriction.RestrictDictionary
                                    .ContainsKey(toNum))
                                {
                                    if (restriction.RestrictDictionary[toNum]
                                        .Contains(modeNum))
                                    {
                                        childNode.CheckState = CheckState
                                                               .Checked;
                                    }
                                    else
                                    {
                                        childNode.CheckState = CheckState
                                                               .Unchecked;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        checkedStr           = "";
                        childNode.CheckState = CheckState.Unchecked;
                    }
                }

                if (showOneNode == true)
                {
                    if (to != mainTO)
                    {
                        parentNode.IsHidden = true;
                        foreach (Node child in parentNode.Nodes)
                        {
                            child.IsHidden = true;
                        }
                    }
                }
                else
                {
                    if (to == mainTO)
                    {
                        parentNode.IsHidden = true;
                        foreach (Node child in parentNode.Nodes)
                        {
                            child.IsHidden = true;
                        }
                    }
                }
            }

            modesTreeViewAdv.Model = treeModel;
            //Обновляем названия строк (добавляем количество объектов).

            List <TreeNodeAdv> nodes    = modesTreeViewAdv.AllNodes.ToList();
            TreeNodeAdv        treeNode = nodes[0];

            OnHideOperationTree.Execute(treeNode);

            modesTreeViewAdv.ExpandAll();
            modesTreeViewAdv.Refresh();
            modesTreeViewAdv.EndUpdate();
        }