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); }
/// <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") }; }