Base Class with universal logic for 'Shepherd Framework' (design and start of implementation): Difference between revisions
No edit summary |
No edit summary |
||
Line 13: | Line 13: | ||
==Desired Outcome== | ==Desired Outcome== | ||
===Key Requirements=== | |||
* Navigation Buttons and Navigation Panel need to be able to be change states dynamically at runtime | |||
* Finish Page | |||
* Ability to start off at an arbitrary page, which will become the 'first page' | |||
** This implies that when the user clicks 'Back' he can't go further back than this 'first page'! | |||
* Pop-up Dialogs from within the UserControls which form the indiv. pages need to be possible. | |||
** Data from those Dialogs needs to flow back to the UserControl, not to the DB directly as things are only committed at the end when the user presses 'Finish'! | |||
** These Dialogs could be any Dialog Form within openPETRA, but it would need to implement a certain Interface (needs to be created) | |||
*** to be able to communicate with the Shepherd (especially the data entered or the user's choice on something); | |||
*** so it knows it must not save data when pressing OK and to only hide itself and not close itself. | |||
* Navigation Panel on the left, collapsible | |||
** Show all available Shepherd Pages as a Collapsible Panel which hosts a Task List in 'vsShepherd' Visual Style. | |||
*** Some Shepherd Page Task Items might be disabled | |||
*** Some Page Task Items might be hidden - initially, or at run time, or shown at run time. | |||
* Show 'Page x of y' in the Title of the Shepherd Form. | |||
** Note: 'y' can change dynamically at run time as Shepherd Pages can be hidden/shown at run time! | |||
* Some Shepherds will not only be used to enter new data, but also will need to be able to load existing data into the Shepherd. | |||
Revision as of 12:14, 14 January 2011
Shepherds Framework Introduction
The Shepherds Framework will be a support in creating individual instances of 'Shepherds' for openPETRA. 'Shepherds' are Installer-like Dialogs with Next-Back-Finish buttons. They have several steps/pages and through that offer a 'guided walk' to the openPETRA user on what key data to enter (or review) for a specific purpose.
Example Screenshots of an existing PETRA (not openPETRA) Shepherd can be found here.
Base Class Purpose
TODO
Note: The corresponding Bug (=Feature Request) is Bug #206 (shared with the related Project Base Form for 'Shepherd Framework' (design and start of implementation)).
Desired Outcome
Key Requirements
- Navigation Buttons and Navigation Panel need to be able to be change states dynamically at runtime
- Finish Page
- Ability to start off at an arbitrary page, which will become the 'first page'
- This implies that when the user clicks 'Back' he can't go further back than this 'first page'!
- Pop-up Dialogs from within the UserControls which form the indiv. pages need to be possible.
- Data from those Dialogs needs to flow back to the UserControl, not to the DB directly as things are only committed at the end when the user presses 'Finish'!
- These Dialogs could be any Dialog Form within openPETRA, but it would need to implement a certain Interface (needs to be created)
- to be able to communicate with the Shepherd (especially the data entered or the user's choice on something);
- so it knows it must not save data when pressing OK and to only hide itself and not close itself.
- Navigation Panel on the left, collapsible
- Show all available Shepherd Pages as a Collapsible Panel which hosts a Task List in 'vsShepherd' Visual Style.
- Some Shepherd Page Task Items might be disabled
- Some Page Task Items might be hidden - initially, or at run time, or shown at run time.
- Show all available Shepherd Pages as a Collapsible Panel which hosts a Task List in 'vsShepherd' Visual Style.
- Show 'Page x of y' in the Title of the Shepherd Form.
- Note: 'y' can change dynamically at run time as Shepherd Pages can be hidden/shown at run time!
- Some Shepherds will not only be used to enter new data, but also will need to be able to load existing data into the Shepherd.
Outline of the Solution
Step 1
Create a new Class in Project 'Ict.Petra.Client.CommonForms.Logic' (found in \csharp\ICT\Petra\Client\CommonForms\logic). Name of the Form Class File: 'PetraShepherdForm.cs' Name of the Form Class: 'TPetraShepherdFormLogic'
TODO
To Be Continued in Class...
TODO
Approval of Functionality and Program Code
TODO