public DefectForCGrConstrPage(int cIsso, Ais7IssoDefectsTreeNode parent, IReadOnlyCollection <Ais7IssoDefectsTreeNode> advancedDefects)
        {
            InitializeComponent();
            Title = $"ИССО №{cIsso}: Добавление дефекта. {parent.NGrConstr}";
            var page = new LoadingPopupPage("Идет подбор дефектов...", true);

            Navigation.PushPopupAsync(page, false);
            Task.Factory.StartNew(() =>
            {
                var scrollView = new ScrollView()
                {
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    Orientation       = ScrollOrientation.Vertical
                };
                var stackLayout = new StackLayout
                {
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    Orientation       = StackOrientation.Vertical
                };
                scrollView.Content = stackLayout;
                var mainDefect     = new DefectTreeView(cIsso, parent, true);
                stackLayout.Children.Add(mainDefect);
                foreach (var child in advancedDefects)
                {
                    stackLayout.Children.Add(new DefectTreeView(cIsso, child, false));
                }
                Device.BeginInvokeOnMainThread(() =>
                {
                    Content = scrollView;
                    Navigation.PopPopupAsync();
                });
            });
        }
        public Ais7IssoDefectsTreeNode(VGrConstrDef2 sourceRow, Ais7IssoDefectsTreeNode parent, List <CustomDefectAlterTable> alterTables)
        {
            //Life = sourceRow["life"] != DBNull.Value ? (Boolean)sourceRow["life"] : false;
            //DefectList = new List<ais7DefectItem>();
            //ChildrenNodes = new List<ais7IssoDefectsTreeNode>();
            //this.CGrConstr = (Int32)sourceRow["c_gr_constr"];
            //this.NGrConstr = sourceRow["text"].ToString();
            //this.ItemType = sourceRow["item_type"] != DBNull.Value ?
            //    (ais7IssoDefectsTreeNodeType)Convert.ToInt16(sourceRow["item_type"]) :
            //    ais7IssoDefectsTreeNodeType.Type1;

            //this.ParentNode = parent;
            //OrderInTree = sourceRow["ord"] != DBNull.Value ? (Int16)sourceRow["ord"] : (Int16)(-1);
            //ParentGrConstr4D = sourceRow.Table.Columns["ID4D"] != null && sourceRow["ID4D"] != DBNull.Value ?
            //    (Int32)sourceRow["ID4D"] : -1;

            Life          = sourceRow.LIFE;
            DefectList    = new List <Ais7DefectItem>();
            ChildrenNodes = new List <Ais7IssoDefectsTreeNode>();
            CGrConstr     = sourceRow.C_GR_CONSTR;
            NGrConstr     = sourceRow.TEXT;
            ItemType      = (Ais7IssoDefectsTreeNodeType)sourceRow.ITEM_TYPE;

            ParentNode       = parent;
            OrderInTree      = sourceRow.ORD;
            ParentGrConstr4D = sourceRow.ID4D;

            LoadDefectList(CGrConstr, alterTables);
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="avTables">перечень таблиц, которые нам нужно для дерева</param>
        /// <param name="parentNode"></param>
        /// <param name="infoRows"></param>
        /// <param name="alterTables"></param>
        public Ais7IssoDefectsTreeNode2(string tableName,
                                        IList <string> avTables, Ais7IssoDefectsTreeNode parentNode, List <InfoRow> infoRows, List <CustomDefectAlterTable> alterTables)
            : base(false)
        {
            TableName  = tableName;
            ParentNode = parentNode;
            ItemType   = Ais7IssoDefectsTreeNodeType.Type1;           // по умолчанию верхний уровень
            NGrConstr  = infoRows.Find(x => x.SysName == tableName).Description;
            CGrConstr  = infoRows.Find(x => x.SysName == tableName).CGrConstr;

            var subAlterTables = alterTables.Where(x => x.c_gr_constr == CGrConstr).ToList();

            if (subAlterTables.Count > 0)
            {
                isForConstr = subAlterTables[0].is_constr;
                Life        = subAlterTables[0].life;
                ItemType    = (Ais7IssoDefectsTreeNodeType)subAlterTables[0].ITEM_TYPE;
                OrderInTree = subAlterTables[0].ord;
            }
            else
            {
                isForConstr = false;
            }

            foreach (var subtable in infoRows.Where(x => x.CGrConstr != 10 && x.ParentId == infoRows.Find(y => y.SysName == tableName).CGrConstr).ToList())
            {
                if (avTables.IndexOf(subtable.SysName) != -1)
                {
                    ChildrenNodes.Add(new Ais7IssoDefectsTreeNode2(subtable.SysName, avTables, this, infoRows, alterTables));
                }
            }
            IsNotLeaf = ChildrenNodes.Count > 0;
            LoadDefectList(CGrConstr, alterTables);
        }
 private void LeafCapturingMethod(Ais7IssoDefectsTreeNode parent)
 {
     parent.IsNotLeaf = AdvancedSGrConstrList.FindAll(x =>
                                                      x.PARENT_GROUP == parent.CGrConstr && (Ais7IssoDefectsTreeNodeType)x.ITEM_TYPE !=
                                                      Ais7IssoDefectsTreeNodeType.Type0).Count > 0;
     foreach (var child in parent.ChildrenNodes)
     {
         LeafCapturingMethod(child);
     }
 }
 public DefectTreeView(int cIsso, Ais7IssoDefectsTreeNode parent, bool isMainDefect)
 {
     ViewModel = new DefectTreeModel(cIsso, parent, isMainDefect);
     //TreeViewModel.navigation = this.Navigation;
     NodeCreationFactory = () => new TreeNodeView
     {
         HorizontalOptions = LayoutOptions.FillAndExpand,
         VerticalOptions   = LayoutOptions.Start,
     };
     HeaderCreationFactory = () => new DemoTreeCardView
     {
         HorizontalOptions = LayoutOptions.FillAndExpand,
         VerticalOptions   = LayoutOptions.Start
     };
     BindingContext = ViewModel.Tree;
 }
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="cIsso"></param>
 /// <param name="rootNode"></param>
 /// <param name="currentLevel"></param>
 /// <param name="visibleMode"></param>
 public AddIssoDefectContentPageList(int cIsso, Ais7IssoDefectsTreeNode2 rootNode    = null,
                                     Ais7IssoDefectsTreeNode currentLevel            = null,
                                     Ais7IssoDefectsTreeNode.VisibleMode visibleMode = Ais7IssoDefectsTreeNode.VisibleMode.ExistConstructions)
 {
     InitializeComponent();
     Title                 = $"ИССО №{cIsso}: Добавление дефекта.";
     CIsso                 = cIsso;
     CurrentLevel          = currentLevel;
     RootNode              = rootNode;
     VisibilityMode        = visibleMode;
     ChangeDefectView.Icon = new FileImageSource
     {
         File = CommonStaffUtils.GetFilePath(visibleMode == Ais7IssoDefectsTreeNode.VisibleMode.AllContructions
                                 ? "elements_tree_full.png"
                                 : "elements_tree.png")
     };
 }