This class is an attribute that creates a tableau to view a specified effigy.
When a model is opened, if the top-level of that model contains this
attribute or a subclass, then that attribute handles constructing a tableau.
Otherwise, the configuration specifies which tableau is used.
A configuration contains an instance of this class, and uses it to create
a tableau for a model represented by an effigy. This base class assumes
that it contains other tableau factories. Its createTableau() method defers
to each contained factory, in the order in which they were added,
until one is capable of creating a tableau for the specified effigy.
Subclasses of this class will usually be inner classes of a Tableau,
and will create the Tableau, or might themselves be aggregates of
instances of TextEditorTableauFactory.
<p>
When there are multiple distinct TableauFactory classes that are capable
of providing views on the same effigy, then instances of these
factories should be aggregated into a single factory contained herein.
Those instances can be presented as alternative views of the data when
any single view is opened.
<p>
There is a significant subtlety with respect to how Ptolemy II classes
are dealt with. Normally, when one looks inside an instance of a class,
what is opened is the class definition, not the instance. However,
if the instance contains an instance of TableauFactory, then what
is opened is the instance, not the class definition. This is used,
for example, when the look inside behavior is customized on a per
instance basis.
Steve Neuendorffer and Edward A. Lee
$Id: TableauFactory.java 70398 2014-10-22 23:44:32Z cxh $
Ptolemy II 1.0
Green (eal)
Yellow (celaine)