Software Lab
Pinball
Pinball Wizard Framework

Pinball is free software that allows developers using Adobe's Flex and AIR platforms to quickly and easily create custom Wizard applications.
The Wizard is one of the most ubiquitous software concepts, and one that most users are instantly comfortable with. Employing simple navigation, a Wizard guides the user through some multi-step process. They can be particularly effective when the user may take several possible paths through a branching process structure.
Over the web, a Wizard could simply be a handy way to break a long and tedious form into logical sections. It could configure a product for purchase; control an online checkout process; conduct a survey; present a portfolio of work; guide troubleshooting efforts, etc. The possibilities are literally endless.
To implement a Wizard using Pinball, you will need:
- Some rudimentary Flex and Actionscript 3 skills; you should understand CSS styling, data binding, event dispatching and handling, and how to create custom components.
- The Flex SDK and either use Adobe Flex Builder or the command line compiler that comes with the SDK to compile your final swf file.
- The Pinball Framework API, a very small .swc library.
Key Concepts
Inversion of Control
Another reason Pinball is not a drop-in component is that, architecturally speaking, it is based on the Inversion Of Control (IOC) design pattern.
In a normal application, the developer supplies the code that controls the structure and flow of the application. Frameworks used by such an application typically provide only components that are instantiated and used by it.
With IOC, the developer supplies only components and configuration, relinquishing the control structure (and happily, the related effort to implement it) to the framework. Thus, control is said to be 'inverted'.
CSS Styling

Most of the look and feel of your Wizard is managed with a CSS style sheet.
Custom Pages

You provide your own custom wizard pages; one for each step of the Wizard. You also supply a data model value object which is shared by all the pages.
Simple Config

Those aspects not controlled in the style sheet are handled in a simple configuration value object.
Coming Soon
Pinball was battle-tested in 2007 with two Wizards used by over 600 courseware beta testers to sign up and subsequently report detailed feedback about each chapter of the material as they progressed.

Pinball is currently being tidied up a bit and a demo is being created. For now, you can see a functional example when you...

