public interface CreatorPresentation<T>
CreatorPresentation
is a way for a pattern to offer different variations
to built itself. For the most part, presentations can be safely ignored by the framework,
in which case the default settings for the pattern will be used.
Presentations are useful when the pattern wishes to allow the user to make a few small
choices in regards to how the pattern is built. Simple examples for instance, may be to
decide where the legend of a graph is placed (to it's side, or on top), etc.
The way presentations should be handled by the framework is as follows:
PresentationVariation
s. These are
essentially the bundle of properties that offer the customization their selection
affords. In addition, they may have children that further allow customizations. In
general, the framework should make sure that only leaf nodes in the variation tree
may be selected by the user.
Note that the contract for the GUI and how it is launched is determined by the
platform and is thus platform specific. The suggested behavior is for the platform
to subclass this class, and override supportsEnvironment to accept contexts that
implement that platform's context.
That subclass can then stipulate what object getGui() returns, and thus be able to
launch that in a dialog, or as part of another window, etc.
Since patterns always have a default set of options, the GUI from the presentation
is responsible for updating the selected properties, which can be retrieved after the
user is queried via the getSelectedProperties() method.
Finally, the pattern is never aware of how the GUI will look like. Instead, they
must only fulfill the data requirements of the presentation. That is, if they know
that a presentation displays a one level master detail relationship, the only
responsibility of the pattern is to provide the data (via variations) that map
to that.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
HELP_TOPIC_ID_KEY
Common metadata keys:
|
Modifier and Type | Method and Description |
---|---|
T |
getGui()
Returns an object representation of the gui for the given environment.
|
java.lang.Object |
getMetadata(java.lang.Object key)
Returns metadata if the given key is supported, and null otherwise.
|
java.util.Map<java.lang.String,? extends java.lang.Object> |
getSelectedProperties()
Called usually when a commit will occur.
|
boolean |
supportsEnvironment(ADFDesignTimeContext dtContext)
True if this presentation may be used in this environment.
|
static final java.lang.String HELP_TOPIC_ID_KEY
boolean supportsEnvironment(ADFDesignTimeContext dtContext)
dtContext
- design time contextT getGui()
java.lang.Object getMetadata(java.lang.Object key)
key
- metadata keyjava.util.Map<java.lang.String,? extends java.lang.Object> getSelectedProperties()