Disclaimer: on this question page, page, dialog actually means the same thing, sorry. My excuse: I'm not sure what the final product should look like - a bunch of separate windows or all in one.
I am looking to improve an existing, inaccessible Wizard baked with WinForms. I need to try to keep the same thing about myself, but I need to clear the internal logic. There are only 5 dialogs, all of which are displayed one after another (after clicking the "Next" button) inside one giant method. The way to jump back and forth is ... 5 or 6 shortcuts and GOTO!
Now this master is linear, not a tree. From any dialog box / page you should be able to no more than two others. It reminds somehow of a duplicate list. There are 5 * 4 = 20potential state transitions right now , while only one 2*1 + 3*2 = 8of them is valid. I do not need to use gotos. They are usually evil, and in this case they are already difficult to maintain ... and I'm going to add another, 6th page. The reason it gotois there is most likely due to the fact that A) temporary pressure, when v. 1.0 was done, B) It was 5 years ago, so the best examples / tutorials on Wizards available at the time might not be great.
Now most wizard pages request user input. Subsequent pages are displayed depending on what the user has entered. If the user speaks on page 3 and decides to fully press the "Back" button to 1 and has not changed anything, and double-click "Next", then the state should not change. However, changing things on page x usually results in invalid material on pages x + 1 onwards. However, there are exceptions to this, since some or all of the settings on page x may depend on pages x-1, x-2, etc., but pages x + 1, x + 2, etc. Independent of this x for some x.
, . , . , , . /, / / . "", . , x , , , -.
(/) . () , "create & fillulate". , ( , , , . , , , , , , , . , , , , .
:
- , , D.L.L. 1 1 ( ).
- / ( "", "", "" ).
- // ( , ) , "". ( ), . "" , . ( "" ). , . , . , - . , Pythonic, , . , , . , . .
- . , , "p1_" "p5_" , . , . - , , , . ... . . , , : 2, , ( , ) , 3,4,5 . , , , goto. , , , , , , , ( , ), - .
, . , , - , , , . , #/mono, , , . , , Java/Swing, , , . WPF , 2 1.
, . gotos, , ? . ,
-hg