public PBTTaskTreeControl(GLGui gui, Task <DataType> task, bool extended) : base(gui) { Render += OnRender; HandleMouseEvents = false; AutoSize = true; TaskControl = Add(new PBTTaskControl <DataType>(gui, task, extended)); horizontalFlow = Add(new GLGroupLayout(gui) { AutoSize = true, HandleMouseEvents = false, Location = new Point(0, TaskControl.Height + VSpace) }); if (task is PBT.ParentTask <DataType> ) { foreach (var subtask in ((PBT.ParentTask <DataType>)task).Subtasks) { Subtrees.Add(horizontalFlow.Add(new PBTTaskTreeControl <DataType>(gui, subtask, extended))); } } else if (task is PBT.TaskDecorator <DataType> ) { Subtrees.Add(horizontalFlow.Add(new PBTTaskTreeControl <DataType>(gui, ((PBT.TaskDecorator <DataType>)task).Subtask, extended))); } else if (task is PBT.LeafTasks.Reference <DataType> ) { Subtrees.Add(horizontalFlow.Add(new PBTTaskTreeControl <DataType>(gui, ((PBT.LeafTasks.Reference <DataType>)task).Root, extended))); } }
public PBTTaskTreeControl(GLGui gui, PBTEditorControl editor, PBTTaskTreeControl parentTaskTreeControl, Data.Task task) : base(gui) { Editor = editor; ParentTaskTreeControl = parentTaskTreeControl; Render += OnRender; HandleMouseEvents = false; AutoSize = true; TaskControl = Add(new PBTTaskControl(gui, editor, this, task)); horizontalFlow = Add(new GLGroupLayout(gui) { AutoSize = true, HandleMouseEvents = false, Location = new Point(0, TaskControl.Height + VSpace) }); foreach (var subtask in task.Subtasks) { Subtrees.Add(horizontalFlow.Add(new PBTTaskTreeControl(gui, editor, this, subtask))); } }