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)));
            }
        }
Exemplo n.º 2
0
        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)));
            }
        }