There are two types of selections in GoalStream:
- The primary selection (a single task)
- Secondary selections (multiple tasks)
The selections determine how various commands behave.
The Primary Selection
The primary selection, if there is one, consists of a single task.
A thick blue border around a task indicates that the task is the primary selection. All of the arrows connected to the primary selection will also be blue.
Many commands are only available when there is a primary selection. These commands generally either modify the selected task, or use the selected task as a frame of reference.
Examples of commands that modify the primary selection:
- Delete Task
- Next Status
- Adjust Target Date
- Update Estimate
- Log Hours Worked
Examples of commands that use the primary selection as a frame of reference:
- Align Left
- Zoom In (Out)
- Move Up (Down, Left, Right)
Unlike the primary selection, the secondary selection can consist of more than one task.
A thick pink border indicates that a task is included in the secondary selection.
See the dotted pick border in the image above? That means that the task is the primary selection and is included in the secondary selection.
So what's the point of this secondary selection thing?
When there is a secondary selection, certain commands operate on all tasks in the selection (primary + secondary).
Examples of these commands include:
- Delete Task
- Detach Task
- Add Dependency To Selected
The commands for adding dependencies are particularly useful and deserve special mention.
When in Add Dependency Mode, pending connections are drawn from each task in the secondary selection to the primary selection. After you press Enter, the new dependencies are added to the project.
When combined with the commands for manipulating the secondary selection, this is a powerful mechanism for adding dependencies.
Manipulating the Secondary Selection
The Toggle Secondary Selection command lets you select or deselect a single task at a time.
The Select Upstream command adds all tasks that are direct dependencies of the primary selection to the secondary selection. If the direct dependencies are already selected, it selects the indirect dependencies as well.
The Select Downstream command works in the same way, only in the opposite direction. That is, it selects the tasks for which the primary selection is a prerequisite.