QWizard

QWizard is a Perl module that can display a series of questions, get the answers, and act on the answers.
Download

QWizard Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Wes Hardaker
  • Publisher web site:
  • http://search.cpan.org/~hardaker/

QWizard Tags


QWizard Description

QWizard is a Perl module that can display a series of questions, get the answers, and act on the answers. QWizard is a Perl module that can display a series of questions, get the answers, and act on the answers.SYNOPSIS # # The following code works as a application *or* as a CGI script both: # use QWizard; my %primaries = ( starting_node => { title => "starting here", introduction => "foo bar", questions => , name => 'mycheck'} ], actions => ;}] } ); my $qw = new QWizard(primaries => %primaries, title => "window title"); $qw->magic('starting_node'); # # PLEASE see the examples in the examples directory. #QWizard displays a list of grouped questions, and retrieves and processes user-specified answers to the questions. Multiple question/answer sets may be displayed before the answers are dealt with. Once a "commit" action is taken (instigated by the user), a series of actions is performed to handle the answers. The actions are executed in the order required by the QWizard programmer.QWizard's real power lies in its inherent ability to keep track of all state information between one wizard screen and the next, even in normally stateless transaction environments like HTTP and HTML. This allows a QWizard programmer to collect a large body of data with a number of simple displays. After all the data has been gathered and verified, then it can be handled as appropriate (e.g., written to a database, used for system configuration, or used to generate a graph.)Current user interfaces that exist are HTML, Gtk2, Tk, and (minimally) ReadLine. A single QWizard script implementation can make use of any of the output formats without code modification. Thus it is extremely easy to write portable wizard scripts that can be used without modification by both graphical window environments (Gtk2 and Tk) and HTML-based web environments (e.g., CGI scripts.), as well with intercative command line enviornments (ReadLine).Back-end interfaces (child classes of the QWizard::Generator module) are responsible for displaying the information to the user. Currently HTML, Gtk2, Tk and ReadLine, are the output mechanisms that work the best (in that order). Some others are planned (namely a curses version), but are not far along in development. Developing new generator back-ends is fairly simple and doesn't take a lot of code (assuming the graphic interface is fairly powerful and contains a widget library.)QWizard operates by displaying a series of "screens" to the user. Each screen is defined in a QWizard construct called a primary that describes the attributes of a given screen, including the list of questions to be presented to the user. Primaries can contain questions, things to do immediately after the questions are answered (post_answers), and things to do once the entire series of screens have been answered (actions). Other information, such as a title and an introduction, can also be attached to a primary.An example very minimal primary definition containing one question: my %primaries = ( myprimary => { title => "my screen title", introduction => "optional introduction to the screen", questions => , }After defining a set of primaries, a new QWizard object must be created. The QWizard new() constructor is given a set of options, such as window title and a reference to a hash table containing the primaries. (The complete set of options may be found in the "QWizard new() Options" section.) The question display and data collection is started by calling the magic() routine of the new QWizard object. my $qw = new QWizard(primaries => %primaries, title => 'my title'); $qw->magic('myprimary');There are examples distributed with the QWizard module sources that may help to understand the whole system and what it is capable of. See the examples directory of the QWizard source code tree for details. Also, QWizard was written mostly due to requirements of the Net-Policy project. Net-Policy makes very extensive use of QWizard and is another good place to look for examples. In fact, the QWizard CVS code is located inside the Net-Policy CVS tree. See for details on the Net-Policy project. There are a number of screen shots showing all the interfaces as well on the main net-policy web site. Requirements: · Perl


QWizard Related Software