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

BuildProjectColumns() private method

private BuildProjectColumns ( ) : void
return void
        void BuildProjectColumns()
        {
            m_projectsTreeView.RowSeparatorFunc = delegate (TreeModel model, TreeIter iter) {
                var project = (Project)model.GetValue (iter, 0);
                return (project == null);
            };

            var column = new TreeViewColumn ();
            column.Title = Catalog.GetString ("Projects");
            column.Alignment = 0.5f;

            var cpix = new CellRendererPixbuf ();
            column.PackStart (cpix, false);
            column.SetCellDataFunc (cpix, (TreeCellDataFunc) ProjectIconCellDataFunc);

            var ctext = new CellRendererText ();
            ctext.Ellipsize = Pango.EllipsizeMode.End;
            ctext.Editable = true;
            ctext.Edited += OnProjectTitleEdited;
            ctext.EditingStarted += delegate {
                this.OnEditingStarted (ctext);
            };
            ctext.EditingCanceled += delegate {
                this.OnEditingStopped ();
            };
            column.PackStart (ctext, true);
            column.SetCellDataFunc (ctext, (TreeCellDataFunc) ProjectTitleCellDataFunc);

            m_projectsTreeView.RowSeparatorFunc = ProjectRowSeparatorFunc;
            m_projectsTreeView.AppendColumn (column);

            var targetEntries = new TargetEntry[] {
                new TargetEntry ("application/adroit-task", TargetFlags.App, 0),
            };

            this.m_projectsTreeView.EnableModelDragDest (targetEntries, Gdk.DragAction.Default | Gdk.DragAction.Move);
            this.m_projectsTreeView.DragDataReceived += delegate(object o, DragDataReceivedArgs args) {
                var tree = o as Gtk.TreeView;

                TreeViewDropPosition pos;
                TreePath path;

                if (tree.GetDestRowAtPos (args.X, args.Y, out path, out pos)) {
                    TreeIter iter;
                    tree.Model.GetIter (out iter, path);
                    var project = tree.Model.GetValue (iter, 0) as Project;
                    if (project == null)
                        return;

                    var model = m_tasksTreeView.Model;
                    var taskId = BitConverter.ToInt32 (args.SelectionData.Data, 0);

                    model.Foreach (delegate (TreeModel m, TreePath p, TreeIter i) {
                        var task = m.GetValue (i, 0) as Task;

                        if (task != null && task.Id == taskId) {
                            var command = new EditTaskCommand () {
                                Task = task,
                                Property = "ProjectId",
                                Value = project.Id,
                                Storage = m_storage
                            };
                            var commands = ServiceManager.Get<CommandService> ().Commands;
                            commands.Do (command);
                            return true;
                        }
                        return false;
                    });
                }
            };
        }