private void ParseRequirements(ReqPro40.Package___v1 rpxPkg, ReqTreeNode tn) { ReqPro40.Requirement___v6 rpxReq; ReqPro40.Package___v1 rpxPkgChild; ReqTreeNode tnPkgChild; ReqTreeNode tnReqNew; int nKey; int i; object[,] o = (object[, ])rpxPkg.KeyList(ReqPro40.enumElementTypes.eElemType_Requirement); for (i = 0; i < o.GetLength(1); i++) { if (o[0, i] != null) { nKey = (int)o[0, i]; rpxReq = GetRequirement(nKey); tnReqNew = new ReqTreeNode (rpxReq.get_Tag(ReqPro40.enumTagFormat.eTagFormat_Tag) + ": " + rpxReq.Name, rpxReq.key, ReqTreeNode.eReqTreeNodeType.eTreeNodeReq); tn.Add(ref tnReqNew); ParseReqChildren(rpxReq, tnReqNew); } } for (i = 0; i < tn.Count; i++) { tnPkgChild = tn[i]; if (tnPkgChild.IsPackage()) { rpxPkgChild = (ReqPro40.Package___v1)rpxProject.GetPackage(tnPkgChild.Key, ReqPro40.enumPackageWeights.ePackageWeight_Empty); //tnPkgChild = (ReqTreeNode)dictPackage[rpxPkgChild.PackageKey]; ParseRequirements(rpxPkgChild, tnPkgChild); } } }
public void CreateTree(ReqTreeNode reqTreeNode) { int i; TreeNode tn = new TreeNode(reqTreeNode.Text); Set(reqTreeNode, tn); Nodes.Add(tn); for (i = 0; i < reqTreeNode.Count; i++) { CreateTreeNode(ref tn, reqTreeNode[i]); } }
public void CreateTree(ReqTreeNode reqTreeNode) { int i; TreeNode tn = new TreeNode(reqTreeNode.Text); tn.Tag = reqTreeNode.Key; treeView.Nodes.Add(tn); for (i = 0; i < reqTreeNode.Count; i++) { CreateTreeNode(ref tn, reqTreeNode[i]); } }
public ReqTreeNode ReadReqTree(out int nPackageCount, int nStartKey) { ReqPro40.Package___v1 rpxPkg; // root is just a dummy - will not be used at the end ReqTreeNode reqDummy = new ReqTreeNode("", 0, ReqTreeNode.eReqTreeNodeType.eTreeNodeRoot); nPackageCount = 0; rpxPkg = (ReqPro40.Package___v1)rpxProject.GetPackage(nStartKey, ReqPro40.enumPackageWeights.ePackageWeight_Empty); rpxPkg.Refresh(ReqPro40.enumPackageWeights.ePackageWeight_Package, true); ReadReqTreeNode(rpxPkg, ref reqDummy, ref nPackageCount); ParseRequirements(rpxPkg, reqDummy[0]); return(reqDummy[0]); }
private TreeNode CreateTreeNode(ref TreeNode tnParent, ReqTreeNode reqTreeNode) { int i; TreeNode tn; tn = new TreeNode(reqTreeNode.Text); Set(reqTreeNode, tn); tnParent.Nodes.Add(tn); for (i = 0; i < reqTreeNode.Count; i++) { CreateTreeNode(ref tn, reqTreeNode[i]); } return(tn); }
public void ReplaceActualTree(ReqTreeNode reqTreeNode) { Set(reqTreeNode, ActiveNode); ActiveNode.Text = reqTreeNode.Text; foreach (TreeNode tn in ActiveNode.Nodes) { tn.Remove(); } ActiveNode.Nodes.Clear(); for (int i = 0; i < reqTreeNode.Count; i++) { CreateTreeNode(ref ActiveNode, reqTreeNode[i]); } }
private void ReadReqTreeNode(ReqPro40.Package___v1 rpxPackage, ref ReqTreeNode reqParentTreeNode, ref int nPackageRead) { ReqPro40.Package___v1 rpxChildPackage; ReqTreeNode reqMyTreeNode; reqMyTreeNode = new ReqTreeNode(rpxPackage.Name, rpxPackage.key, ReqTreeNode.eReqTreeNodeType.eTreeNodePkg); reqParentTreeNode.Add(ref reqMyTreeNode); dictPackage.Add(rpxPackage.key, reqMyTreeNode); cb.ShowProgressReqPkgTree(0, ++nPackageRead, 0, 0, null); rpxPackage.MoveFirst(); while (!rpxPackage.IsEOF) { rpxChildPackage = (ReqPro40.Package___v1)rpxPackage.GetCurrentElement(); ReadReqTreeNode(rpxChildPackage, ref reqMyTreeNode, ref nPackageRead); rpxPackage.MoveNext(); } }
public void Set(ReqTreeNode reqTreeNode, TreeNode tn) { tn.Tag = reqTreeNode.Key; if (reqTreeNode.IsReq()) { tn.ImageIndex = 3; tn.SelectedImageIndex = 3; tn.ContextMenuStrip = mnuCtxReq; } else if (reqTreeNode.IsRoot()) { tn.ImageIndex = 0; tn.SelectedImageIndex = 0; } else { tn.ContextMenuStrip = mnuCtxPkg; } }
private void ParseReqChildren(ReqPro40.Requirement___v6 rpxReq, ReqTreeNode tn) { ReqPro40.Relationships rpxReqChildrenRelation; ReqPro40.Requirement___v6 rpxReqChild; ReqTreeNode tnReqNew; int nChildCount; rpxReqChildrenRelation = rpxReq.Children; nChildCount = rpxReqChildrenRelation.Count; rpxReqChildrenRelation.MoveFirst(); for (int i = 0; i < nChildCount; i++) { rpxReqChild = GetRequirement(rpxReqChildrenRelation.ItemCurrent.DestinationKey); tnReqNew = new ReqTreeNode (rpxReqChild.get_Tag(ReqPro40.enumTagFormat.eTagFormat_Tag) + ": " + rpxReqChild.Name, rpxReqChild.key, ReqTreeNode.eReqTreeNodeType.eTreeNodeReq); ParseReqChildren(rpxReqChild, tnReqNew); tn.Add(ref tnReqNew); rpxReqChildrenRelation.MoveNext(); } }
public ReqTreeNode ReadReqTree(out int nPackageCount) { ReqPro40.Package___v1 rpxPackage; ReqPro40.RootPackage___v1 rpxRootPackage; ReqTreeNode reqRootTreeNode; int nPackageRead = 0; cb.ShowProgressReqPkgTree(0, 0, 0, 0, "Identifying Packages"); rpxRootPackage = (ReqPro40.RootPackage___v1)rpxProject.GetRootPackage(true); object[,] o = (object[, ])rpxRootPackage. FindPackageElements(ReqPro40.enumElementTypes.eElemType_Package, "*", 0, ReqPro40.enumElementTypes.eElemType_Package, false); nPackageCount = o.GetLength(1); o = null; cb.ShowProgressReqPkgTree(nPackageCount, 0, 0, 0, nPackageCount + " Packages identified"); reqRootTreeNode = new ReqTreeNode (rpxRootPackage.Name, rpxRootPackage.key, ReqTreeNode.eReqTreeNodeType.eTreeNodeRoot); dictPackage = new Dictionary <int, object>(); rpxRootPackage.Refresh(ReqPro40.enumPackageWeights.ePackageWeight_Package, true); rpxRootPackage.MoveFirst(); while (!rpxRootPackage.IsEOF) { rpxPackage = (ReqPro40.Package___v1)rpxRootPackage.GetCurrentElement(); ReadReqTreeNode(rpxPackage, ref reqRootTreeNode, ref nPackageRead); rpxRootPackage.MoveNext(); } cb.ShowProgressReqPkgTree(0, 0, 0, 0, nPackageRead + " Packages read"); ParseRequirements(); state = eState.stParsed; return(reqRootTreeNode); }
public void Add(ref ReqTreeNode child) { aReqTreeNodeChilds.Add(child); }
private void ParseRequirements() { ReqPro40.Requirements rpxReqColl; ReqPro40.Requirement___v6 rpxReq; ReqPro40.Relationship reqRelParent; int nReqCount; ReqTreeNode tnPackage; ReqTreeNode reqMyTreeNode; List <ReqTreeNode> reqUnassigned; Dictionary <int, ReqTreeNode> dictReq; int i = 0; reqUnassigned = new List <ReqTreeNode>(); dictReq = new Dictionary <int, ReqTreeNode>(); cb.ShowProgressReqPkgTree(0, 0, 0, 0, "Identifying Requirements"); rpxReqColl = rpxProject.GetRequirements("*", ReqPro40.enumRequirementsLookups.eReqsLookup_All, ReqPro40.enumRequirementsWeights.eReqWeight_Medium, ReqPro40.enumRequirementFlags.eReqFlag_Empty, 1000, 8); ReqProRequirementPrx.RPXReqColl = rpxReqColl; nReqCount = rpxReqColl.Count; cb.ShowProgressReqPkgTree(0, 0, nReqCount, 0, nReqCount + " Requirements identified"); foreach (object o in rpxReqColl) { Tracer tracer = new Tracer("Req (Key: " + o + ") from Req Coll"); rpxReq = (ReqPro40.Requirement___v6)rpxReqColl[o, ReqPro40.enumRequirementLookups.eReqLookup_Key]; tracer.Stop("Req " + rpxReq.get_Tag(ReqPro40.enumTagFormat.eTagFormat_Tag) + " got via eReqLookup_Key from Requirements Collection"); try { i++; cb.ShowProgressReqPkgTree(0, 0, 0, i, null); tnPackage = (ReqTreeNode)dictPackage[rpxReq.PackageKey]; reqMyTreeNode = new ReqTreeNode (rpxReq.get_Tag(ReqPro40.enumTagFormat.eTagFormat_Tag) + ": " + rpxReq.Name, rpxReq.key, ReqTreeNode.eReqTreeNodeType.eTreeNodeReq); if (rpxReq.IsRoot) { if (tnPackage != null) { tnPackage.Add(ref reqMyTreeNode); } dictReq.Add(rpxReq.key, reqMyTreeNode); } else { //Tracer tr = new Tracer("Parent of " + reqMyTreeNode.Text + " discovering"); // performance is too low for that step :-( //reqRelParent = rpxReq.get_Parent(ReqPro40.enumRequirementsWeights.eReqWeight_Medium); //reqMyTreeNode.Parent = reqRelParent.SourceKey; //reqUnassigned.Add(reqMyTreeNode); //tr.Stop("Parent of " + reqMyTreeNode.Text + " discovered"); if (tnPackage != null) { tnPackage.Add(ref reqMyTreeNode); } dictReq.Add(rpxReq.key, reqMyTreeNode); } } catch (Exception) { } } Tracer trCleanup = new Tracer("Cleanup Children Requirements"); while (reqUnassigned.Count > 0) { for (int j = 0; j < reqUnassigned.Count; j++) { reqMyTreeNode = reqUnassigned[j]; if (dictReq.ContainsKey(reqMyTreeNode.Parent)) { tnPackage = dictReq[reqMyTreeNode.Parent]; tnPackage.Add(ref reqMyTreeNode); dictReq.Add(reqMyTreeNode.Key, reqMyTreeNode); reqUnassigned.Remove(reqMyTreeNode); j--; } } } trCleanup.Stop("Cleanup Children Requirements"); cb.ShowProgressReqPkgTree(0, 0, 0, 0, i + " Requirements inserted"); cb.ShowProgressReqPkgTree(0, 0, 0, 0, null); }