...
def honor_constraints(PL):forEach i in 0..n-1if not choices_i(PL) contains p[i], thenp[i]:= default_i(PL)// detect infinite loops and stop with message 'Action parameter negotiation cannot yield a fixed point.'
1) Fill in defaults in two passes:
Code Block | ||
---|---|---|
| ||
//TODO we need to find a fixed point forEachfor i in 0..n-1 p[i]:= default_i() # no arg, init PL for i in 0..n-1 p[i]:= default_i(PL) honor_constraints(PL) |
2) Prozess Process visibility and usablility usability (disable/hide)
Code Block |
---|
forEachfor i in 0..n-1 v[i]:= not hide_i(PL) u[i]:= not disable_i(PL) |
3) Prozess Process individual parameter validity
Code Block |
---|
// skip this step until (5) has been reached at least once! if step_5 was reached, then forEachfor i in 0..n-1 invalid[i]:= validate_i(PL) |
4) Wait for user interaction,
- let reset_i be a user initiated reset request for the i-th parameter
- let update_i be a user initiated update for the i-th parameter, either triggered by direct entering of a value or using autoComplete or choices
Code Block |
---|
on reset_i: p[i]:= default_i(PL) on update_i: p[i]:= the proposed new value as given by the update event on user initiates the action invocation goto (5) //# process parameter-list validity goto (2) //# start over |
5) Process parameter-list validity
Code Block |
---|
if validate(PL) is not empty, then render invocation veto message goto (4) //# wait for user interaction |
...