private void PopulateTreeItems(ItemCollection items, TableDrivedEntityDTO entity, string relationshipPath, string entityPath) { foreach (var column in entity.Columns) { var treeItem = new TreeColumnItem(); treeItem.ColumnID = column.ID; treeItem.ColumnName = column.Name; treeItem.Alias = column.Alias; treeItem.RelationshipPath = relationshipPath; treeItem.EntityPath = entityPath; AddColumnNode(items, treeItem, column.Alias); } foreach (var relationship in entity.Relationships) { var newrelationshipPath = (relationshipPath == "" ? "" : relationshipPath + ",") + relationship.ID; var newEntityPath = (entityPath == "" ? "" : entityPath + ",") + relationship.Entity2; TreeRelationshipItem relItem = new TreeRelationshipItem(); relItem.Relationship = relationship; relItem.RelationshipPath = newrelationshipPath; relItem.EntityPath = newEntityPath; var node = AddRelationshipNode(items, relItem); node.Expanded += Node_Expanded; node.Items.Add("Loading..."); } }
private void Node_Expanded(object sender, RoutedEventArgs e) { var treeItem = e.Source as RadTreeViewItem; if (treeItem != null) { bool firstTime = false; if (treeItem.Items.Count > 0) { var firstItem = treeItem.Items[0]; if (firstItem is string && firstItem.ToString() == "Loading...") { firstTime = true; } } if (firstTime) { treeItem.Items.Clear(); BizRelationship bizRelationship = new BizRelationship(); var objectDTO = treeItem.DataContext as TreeRelationshipItem; var entityID = objectDTO.Relationship.EntityID2; var cEntity = bizEntity.GetTableDrivedEntity(MyProjectManager.GetMyProjectManager.GetRequester(), entityID, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithRelationships); TreeRelationshipItem relItem = new TreeRelationshipItem(); PopulateTreeItems(treeItem.Items, cEntity, objectDTO.RelationshipPath, objectDTO.EntityPath); } } }
private RadTreeViewItem AddRelationshipNode(ItemCollection collection, TreeRelationshipItem relationship) { var node = new RadTreeViewItem(); node.DataContext = relationship; node.Header = GetNodeHeader(relationship.Relationship.Entity2, DatabaseObjectCategory.Relationship); node.ToolTip = relationship.Relationship.ID + "_" + (string.IsNullOrEmpty(relationship.Relationship.Alias) ? relationship.Relationship.Name : relationship.Relationship.Alias); collection.Add(node); return(node); }