Adroit.Gui.PlanningView.ProjectDb_Appended C# (CSharp) Method

ProjectDb_Appended() private method

private ProjectDb_Appended ( object sender, BdbArgs args ) : void
sender object
args Adroit.Data.BdbArgs
return void
        void ProjectDb_Appended(object sender, BdbArgs args)
        {
            Project project = args.Value as Project;

            if (project == null)
                return;

            if (project.ParentId == 0) {
                var iter = m_projectStore.AppendValues (project);
                var path = m_projectStore.GetPath (iter);
                m_projectsTreeView.SetCursor (path, m_projectsTreeView.Columns [0], true);
            }
            else {
                m_projectStore.Foreach (delegate (TreeModel model, TreePath path, TreeIter iter) {
                    var item = (Project)model.GetValue (iter, 0);
                    if (item == null || item.Id < 0)
                        return false;;

                    if (item.Id == project.ParentId) {
                        var child = m_projectStore.AppendValues (iter, project);
                        var cpath = m_projectStore.GetPath (child);
                        Gtk.Application.Invoke (delegate {
                            m_projectsTreeView.Selection.SelectPath (cpath);
                            m_projectsTreeView.SetCursor (cpath, m_projectsTreeView.Columns [0], true);
                        });
                        return true;
                    }
                    return false;
                });
            }
        }