示例#1
0
        public ClassGroupsTreeStore(List <ClassDefinition> classes, StoredDiagramDetails storedDetails) : base(typeof(string), typeof(string))
        {
            this.storedDetails = storedDetails;
            AddClassGroups();

            foreach (var c in classes)
            {
                StoredNode node;
                if (storedDetails.nodes.TryGetValue(c.Id, out node))
                {
                    if (node.classGroups == null || node.classGroups.Count == 0)
                    {
                        AppendValues(noGroupIter, c.DisplayName);
                        continue;
                    }

                    foreach (var g in node.classGroups)
                    {
                        TreeIter groupNode;
                        if (ClassGroups.TryGetValue(g, out groupNode))
                        {
                            AppendValues(groupNode, c.DisplayName);
                        }
                    }
                }
                else
                {
                    AppendValues(noGroupIter, c.DisplayName);
                }
            }
        }
示例#2
0
        async Task RedrawAsync()
        {
            var progress = new Progress <TreeBuilderProgress>();

            progressBar.Progress = progress;

            var classes = await ClassTreeBuilder.Instance.ProcessAsync(selectedProject, progress);

            diagramDetails = DiagramStorage.Instance.GetProjectDetails(selectedProject);
            drawingArea.Draw(classes, diagramDetails);
            groupsTree.Model = new ClassGroupsTreeStore(classes, diagramDetails);
            EnableUi();
        }