If you're looking for Fluid Project coordination, design, communication, etc, try the Fluid Project Wiki.
A component "grade" is a form of type definition: a name for a particular collection of default configuration options. Developers can identify a grade for their component: this will add the default configuration options to those defined by the developer, as well as automate some things like the creation of event firers.
Grades essentially build upon each other, and can be composed as needed. The following table describes the available grades and how they relate to each other.
Grade Name |
Description |
---|---|
|
A "little" component is the most basic component: it supports options merging. |
|
A "model" component is a little component that additionally provides supports for any model defined in the components options. |
|
An "evented" component is a little component that additionally instantiates event firers based on events declared in the options. |
|
A "view" component is an evented model component that supports a view. |
|
A "renderer" component is a vew component that bears a renderer. |
|
An "IoC renderer" component is .... |
To Do
Need to specify what defaults each grade defines
A component's grade should be specified using the gradeNames
option in the components defaults block, as shown in the examples below. The gradeNames
option is a string or array of strings.
fluid.defaults("fluid.uploader.demoRemote", { gradeNames: "fluid.eventedComponent", ... });
fluid.defaults("cspace.messageBarImpl", { gradeNames: ["fluid.rendererComponent"], ... });
In the example below, the autoInit
flag is not actually a grade, but is added to the gradeNames
array to control how the component is create. See #Initializing Graded Components below for more information about the autoInit
flag.
fluid.defaults("cspace.util.relationResolver", { gradeNames: ["fluid.modelComponent", "autoInit"], ... });
Developers may choose to write their own component creator function for their graded component. If they do, the first thing their creator function should do is call the appropriate initialization function, assigning the returned object and continuing to configure it as desired (for example, to add methods to it).
Grade |
Initalization function to use |
---|---|
|
|
|
|
|
|
|
|
|
|
|
The following example shows the use of fluid.initView
to initialize a view component:
fluid.defaults("cspace.tabs", { gradeNames: ["fluid.viewComponent"], ... }); cspace.tabs = function (container, options) { var that = fluid.initView("cspace.tabs", container, options); that.refreshView = function () { ... }; ... };
The Framework offers support for automatic initialization of graded component through autoInit
. If the autoInit
flag is added to the gradeNames
array, the Framework will create the graded function automatically – the developer does not need to write a creator function.
To use the autoInit
flag, add it to the array of gradeNames
, as shown below:
fluid.defaults("fluid.uploader.fileQueueView", { gradeNames: ["fluid.viewComponent", "autoInit"], ... });
To Do
Add information about default initialization functions, etc.