A class which provides the data necessary to generate a widget. This class should be extended and used to hold whatever information is needed to generate or update the widgets that make up the tool, and implement the virtual widget methods