FillOutAttributes Incorrect Task State
I have reproduced some incorrect/unexpected task system behavior reported by an outside user: a FillOutAttributes task is being set to the completable state when its dependency task is marked completed.
1. Load Test Project
To reproduce the issue, first load this project into modelbuilder: task-dependency.tgz
As shown in the first screenshot, the project has 3 tasks
- Plain Task -- an
smtk::task::Task
instance. Its initial task state iscompletable
. - Assign Attribute Resource -- an
smtk::task::GatherResources
instance that is used to connect the project's attribute resource to the third task. Its initial task state iscompletable
. - Edit Attributes -- an
smtk::task::FillOutAttributes
instance for editing an "Elasticity" attribute in the project's attribute resource. Its initial state isunavailable
because (i) its attribute resource has not been set via the Assign Attribute Resource task and (ii) there is a strict dependency on the Plain Task which is not completed.
2. Reproduce Incorrect Behavior.
In the Tasks View:
- Change the "Assign Attribute Resource" task to the
completed
state. - Change the "Plain Task" to the
completed
state. - Note that the "Edit Attributes" task has changed to the
completable
state. - In the "Edit Attributes" controls, select
Work on this
to update the Attribute Editor. - Note that there is an invalid entry (Young's Modulus) in the attribute editor, which is inconsistent with the
completable
task state. The expected behavior is for the task to beincomplete
when its attribute(s) is/are invalid.