title |
category |
User Interface Options API |
Components |
The User Interface Options (UI Options) component allows users to transform the presentation of the user interface
and content resources so that they are personalized to the individual user's needs.
UI Options does three things:
- places a preferences editor dialog with a set of panels in a collapsible panel at the top of the page, accessible
through a button in the upper right corner of the page;
- instantiates a cookie-based Settings Store for storing the user's preferences; and
- acts upon the user's preferences.
UI Options is a convenient way to add a simple separated-panel preferences editor to any page. The interface will
automatically support the set of "starter" preferences provided by the Preferences Framework,
in their default configuration.
Use the following function to create a UI Options component:
Method |
fluid.uiOptions(container, options);
|
Description |
Instantiate a separated panel version of the UI Options component, which displays the controls in a
sliding panel at the top of the page.
|
Parameters |
- container
-
A CSS-based selectors, single-element jQuery object, or DOM element that identifies the root DOM
node where the UI Options interface should be placed.
- options
-
An optional data structure that configures the UI Options component, as described below.
|
Returns |
The UI Options component |
Examples |
var myUIO = fluid.uiOptions("#myContainer", {
auxiliarySchema: {
terms: {
"templatePrefix": "lib/infusion/src/framework/preferences/html"",
"messagePrefix": "lib/infusion/src/framework/preferences/messages""
},
"fluid.prefs.tableOfContents": {
enactor: {
"tocTemplate": "lib/infusion/src/components/tableOfContents/html/TableOfContents.html"",
"tocMessage": "lib/infusion/src/framework/preferences/messages/tableOfContents-enactor.json""
}
}
}
});
|
Notes |
UI Options uses the page itself as a live "preview:" As users adjust controls, the page is modified
accordingly.
|
The second argument to the creator function is the options argument. This is a JavaScript object containing name/value
pairs: The name is the name of the option and the value is the desired setting. Components define their own default
values for options, but integrators can override these defaults by providing new values using the options argument. For
technical information about how options are merged with defaults, see Options Merging.
var uio = fluid.uiOptions(".myContainer", {
option1Name: option1value,
option2Name: option2value
// ...
});
Some top level options supported by UI Options are described below.
Description |
The auxiliarySchema option allows you to configure the individual individual preferences
as well as the paths to the templates and message bundles.
|
Default |
{
"loaderGrades": ["fluid.prefs.separatedPanel"],
"generatePanelContainers": true,
"template": "%templatePrefix/SeparatedPanelPrefsEditor.html",
"message": "%messagePrefix/prefsEditor.json",
"terms": {
"templatePrefix": "../../framework/preferences/html",
"messagePrefix": "../../framework/preferences/messages"
}
}
|
Example |
fluid.uiOptions("#myContainer", {
auxiliarySchema: {
terms: {
"templatePrefix": "lib/infusion/src/framework/preferences/html"",
"messagePrefix": "lib/infusion/src/framework/preferences/messages""
},
"fluid.prefs.tableOfContents": {
enactor: {
"tocTemplate": "lib/infusion/src/components/tableOfContents/html/TableOfContents.html"",
"tocMessage": "lib/infusion/src/framework/preferences/messages/tableOfContents-enactor.json""
}
}
}
});
|
Description |
A typical instance of UI Options includes the preference editor, enhancer, and store. The
buildType option allows you to instantiate a subset. For example, if you will be
implementing the user interface independently. Due to dependencies, each option
(store , enhancer , prefsEditor ) will include its predecessors.
|
Default |
|
Example |
fluid.uiOptions("#myContainer", {
buildType: "enhancer"
});
|
Description |
The enhancer option allows you to specify a data structure to config the
enhancer component.
|
Default |
null |
Example |
fluid.uiOptions.prefsEditor("#myContainer", {
enhancer: {
invokers: {
updateModel: "my.update.function"
}
}
});
|
Description |
The enhancerType option allows you to specify a custom enhancer grade component.
|
Default |
|
Example |
fluid.uiOptions("#myContainer", {
enhancerType: "my.enhancer"
});
|
Description |
The preferences takes an array of preference names, indicating the preferences to include.
|
Default |
[
"fluid.prefs.textSize",
"fluid.prefs.lineSpace",
"fluid.prefs.textFont",
"fluid.prefs.contrast",
"fluid.prefs.tableOfContents",
"fluid.prefs.enhanceInputs"
]
|
Example |
fluid.uiOptions.prefsEditor("#myContainer", {
preferences: [
"fluid.prefs.letterSpace",
"fluid.prefs.wordSpace",
]
});
|
Description |
The prefsEditor option allows you to specify a data structure to config the
prefsEditor component.
|
Default |
null |
Example |
fluid.uiOptions.prefsEditor("#myContainer", {
prefsEditor: {
listeners: {
onReady: function (internalEditor) {...}
onReset: function (internalEditor) {...}
}
}
});
|
Description |
The prefsEditorLoader option allows you to specify a data structure to config the
prefsEditorLoader component.
|
Default |
null |
Example |
fluid.uiOptions.prefsEditor("#myContainer", {
prefsEditorLoader: {
lazyLoad: true
}
});
|
Description |
The storeType option allows you to specify a custom store grade component.
|
Default |
"fluid.prefs.globalSettingsStore" |
Example |
fluid.uiOptions.prefsEditor("#myContainer", {
storeType: "myNamespace.mySettingsStore"
});
|
See also |
Cookie Settings Store
|
Listeners can be attached to any supported events through a component's listeners
option. Values can be a function
reference (not a string function name) or an anonymous function definition, as illustrated below:
var myComponent = component.name("#myContainerID", {
listeners: {
eventName1: functionName,
eventName2: function (params) {
// ...
}
}
});
For information on the different types of events, see Infusion Event System.
Description |
This event fires when the UI Options component is fully instantiated, rendered and ready to use.
|
Type |
default |
Parameters |
- uio
- The instantiated UI Options component.
|
Description |
This event fires when the UI Options interface has been rendered.
Note: use onReady if the listener needs UI Options to be both rendered
and ready to use.
|
Type |
default |
Parameters |
- prefsEditorLoader
-
The instantiated preference editor loader component.
|