public static IEnumerable <string> GetCurrentProjectDiagrams(ITree tree) { var selected = tree.GetSelectedItem() as ITreeItem; if (selected == null) { return(null); } switch (TreeEditor.GetTreeItemType(selected.GetUid())) { case TreeItemType.Diagram: { var models = new List <string>(); ModelEditor.GenerateProject(selected.GetParent() as ITreeItem, models, false); return(models); } case TreeItemType.Project: { var models = new List <string>(); ModelEditor.GenerateProject(selected, models, false); return(models); } case TreeItemType.Solution: { var solution = tree.GetItems().FirstOrDefault(); if (solution == null) { return(null); } var project = solution.GetItems().FirstOrDefault(); if (project != null) { return(null); } var models = new List <string>(); ModelEditor.GenerateProject(project, models, false); return(models); } default: return(null); } }