/// <summary> /// Loads the next depth for node. /// </summary> /// <param name="node">The node.</param> protected override void LoadNextDepthForNode(UPMCoINode node) { this.currentNodeLoader = new CoINodeLoader(node, this.ViewReference, 0, 0, this.vistedNodes); this.currentNodeLoader.TheDelegate = this; this.currentNodeLoader.Mode = CoINodeLoaderMode.Reload; this.currentNodeLoader.LoadNodeSubNodes(); }
/// <summary> /// Nodeses the loaded succesfull. /// </summary> /// <param name="nodeloader">The nodeloader.</param> public override void NodesLoadedSuccesfull(CoIBaseNodeLoader nodeloader) { if (nodeloader.Mode == CoINodeLoaderMode.InitialLoad) { UPMCircleOfInfluencePage newPage = this.CreatePageInstance(); newPage.RootNode = this.currentNodeLoader.RootNode; newPage.Invalid = false; newPage.ConfigProvider = ((UPMCircleOfInfluencePage)this.Page).ConfigProvider; UPMCircleOfInfluencePage oldPage = (UPMCircleOfInfluencePage)this.Page; this.TopLevelElement = newPage; if (!oldPage.Invalid && oldPage.RootNode.Invalid) { // return from edit newPage.RefreshedNode = newPage.RootNode; this.InformAboutDidChangeTopLevelElement(oldPage, newPage, new List <IIdentifier> { oldPage.RootNode.Identifier }, null); } else { this.InformAboutDidChangeTopLevelElement(oldPage, newPage, null, null); } } else if (this.currentNodeLoader.Mode == CoINodeLoaderMode.Reload) { this.InformAboutDidChangeTopLevelElement(this.Page, this.Page, this.currentNodeLoader.ChangedIdentifiers, null); } this.currentNodeLoader = null; }
private void FillPageWithResult(UPCRMResult result) { this.vistedNodes = new Dictionary <IIdentifier, UPMCoINode>(); if (result.RowCount == 1) { UPCRMResultRow row = (UPCRMResultRow)result.ResultRowAtIndex(0); UPMCoINode rootNode = CoINodeLoader.CreateRootNodeFromResultRow(row, this.RootRecordIdentification, 0, this.expandChecker); this.vistedNodes[rootNode.Identifier] = rootNode; if (this.MaxDepth > 0) { this.currentNodeLoader = new CoINodeLoader(rootNode, this.ViewReference, 0, this.MaxDepth, this.vistedNodes); this.currentNodeLoader.TheDelegate = this; this.currentNodeLoader.Mode = CoINodeLoaderMode.InitialLoad; this.currentNodeLoader.LoadNodeSubNodes(); } else { // Finished loading UPMCircleOfInfluencePage newPage = this.CreatePageInstance(); newPage.RootNode = rootNode; newPage.Invalid = false; newPage.ConfigProvider = ((UPMCircleOfInfluencePage)this.Page).ConfigProvider; UPMCircleOfInfluencePage oldPage = (UPMCircleOfInfluencePage)this.Page; this.TopLevelElement = newPage; if (!oldPage.Invalid && oldPage.RootNode.Invalid) { // return from edir newPage.RefreshedNode = newPage.RootNode; this.InformAboutDidChangeTopLevelElement(oldPage, newPage, new List <IIdentifier> { oldPage.RootNode.Identifier }, null); } else { this.InformAboutDidChangeTopLevelElement(oldPage, newPage, null, null); } } } else { // Request Mode Offline and jump To Online Node if (result.RowCount == 0 && this.RequestOption == UPRequestOption.Offline) { // Offline Configured and Online Record UPMCircleOfInfluencePage newPage = this.CreatePageInstance(); newPage.Status = UPMMessageStatus.MessageStatusWithMessageDetails(string.Empty, LocalizedString.TextOfflineNotAvailable); UPMCircleOfInfluencePage oldPage = (UPMCircleOfInfluencePage)this.Page; this.TopLevelElement = newPage; this.InformAboutDidChangeTopLevelElement(oldPage, newPage, null, null); } } }
protected override void CreateSubNodeLoadForNodeEdgeRow(UPMCoINode node, UPMCoIEdge edge, UPCRMResultRow row) { this.vistedNodes.SetObjectForKey(node, node.Identifier); this.RootNode.AddChildNodeChildRelation(node, edge); this.ChangedIdentifiers.Add(node.Identifier); if (this.depth < this.maxDepth) { this.pendingCount++; CoINodeLoader loader = new CoINodeLoader(node, this.viewReference, this.depth + 1, -1, this.vistedNodes); loader.Mode = CoINodeLoaderMode.SubNodeLoader; loader.fiResultColumnIndex = this.fiResultColumnIndex; loader.kpResultColumnIndex = this.kpResultColumnIndex; this.subNodeLoader.Add(loader); loader.TheDelegate = this; } }