Jim said:
>
Well, the user can be half-way a wizard and then set the state in such a way that the wizard is not valid anymore. For example if someone is in the > "create a class wizard" and then deletes the underlying project.
Although that's true, it's not a justification for blocking the user's access to the app. Such problems throw checked exceptions which we already handle. If the user were to delete a project while in the middle of creating a class, they would see an error message describing the problem. They would know what went wrong and be able to recover from it. We're basically faced with two choices here:
1. Prevent the user from ever requesting two operations at once since they might ask for something contradictory.
2. Allow the user to have multiple operations going on at once and if they ask for something contradictory, tell them about the problem and give them the tools to fix it.
Provided we tell the user why the operation failed, I don't think that the possibility of the user requesting two contradictory things is itself a serious enough problem to warrant restricting the user's freedom.
- Stefan