This documentation is currently being moved to our new documentation site.

Please view or edit the documentation there, instead.

If you're looking for Fluid Project coordination, design, communication, etc, try the Fluid Project Wiki.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

This article describes how to use the Infusion Preferences Framework to use the Builder, a tool that creates a preferences editor from schema documents. This is part of the Tutorial - Creating a Preferences Editor Using the Preferences Framework.


 

On This Page

In cases where you are adding a full-page editor to your site, you likely want the user's settings to be applied to every other page on your site as well. On these pages, you don't want to instantiate the preferences editor, but you do need to instantiate the page enhancer and the settings store; without these, the preferences will have no effect.

Adding the settings store and enhancer requires a two-step process:

  1. Use the Builder to build the tools, then
  2. Instantiate the tools built by the builder.

Build the Settings Store and Enhancer

Build the settings store and enhancer with a call to the Preferences Framework Builder (this call also builds a preferences editor, but you aren't required to instantiate it). The Builder can be used with either the auxiliarySchema property or with an auxiliary schema grade.

NOTE: Your auxiliary schema MUST specify a namespace. You'll need this namespace to access the components created by the builder.

Example: Using the builder with the auxiliarySchema property
vary myAuxiliarySchema = {
    namespace: "my.prefs",
    ...
};
fluid.prefs.builder({
    primarySchema: myPrimarySchema,
    auxiliaryScham: myAuxiliarySchema
});
Example: Using the builder with an auxiliary schema grade
fluid.defaults("my.auxSchemaGrade", {
    gradeNames: ["fluid.prefs.auxSchema", "autoInit"],
    auxiliarySchema: {
        namespace: "my.prefs",
        ....
    }
});
fluid.prefs.builder({
    gradeNames: ["my.auxSchemaGrade"],
    primarySchema: myPrimarySchema
});

Instantiate the Enhancer

Once you've run the builder, you can access the enhancer through the namespace you specified in your auxiliary schema

 

Instantiating the default separated-panel editor
var enhancer = my.prefs.uie(".prefs-editor-container");

The uie method will automatically instantiate both the settings store and the page enhancer, so you only need to make the one call.

 

 

 

 

 

The Builder takes as its input the primary and auxiliary schemas and constructs all the components necessary to render the preferences editor, store preferences, and respond to changes in preferences.

The Builder is invoked using the fluid.prefs.builder() function, and accepts a JavaScript object as its argument. The JavaScript object contains the configuration information, using various keys:

Key

Description

gradeNames

the name of a grade defining an auxiliary schema

schema

the primary schema

auxiliarySchema

the auxiliary schema

The Builder will only include any panels defined by the auxiliary schema. The 'starter set' of panels provided by the Preferences Framework can be added by using the fluid.prefs.auxSchema.starter grade. The content of whatever auxiliary schema grade you provide can be overriden by specifics in the auxiliarySchema option.

Example: Using the builder with the 'starter set' of panels and enactors

Directly

var prefsBuilder = fluid.prefs.builder({
    gradeNames: ["fluid.prefs.auxSchema.starter"]
});

Through a custom grade

fluid.defaults("fluid.videoPlayer.myBuilder", {
    gradeNames: ["fluid.prefs.builder", "fluid.prefs.auxSchema.starter"]
});
var prefsBuilder = fluid.videoPlayer.myBuilder();

Example: Using the builder to add Video Player panels to the 'starter set'

Directly

var prefsBuilder = fluid.prefs.builder({
    gradeNames: ["fluid.prefs.auxSchema.starter"],
    auxiliarySchema: fluid.videoPlayer.auxSchema
});

Through a custom grade

fluid.defaults("fluid.videoPlayer.myBuilder", {
    gradeNames: ["fluid.prefs.builder", "fluid.prefs.auxSchema.starter", "autoInit"],
    schema: fluid.videoPlayer.primarySchema,
    auxiliarySchema: fluid.videoPlayer.auxSchema
});
var prefsBuilder = fluid.videoPlayer.myBuilder();

Example: Using the builder for a set of custom preferences and panels

Directly

var prefsBuilder = fluid.prefs.builder({
    auxiliarySchema: fluid.myApplication.auxSchema
});

Through a custom grade

fluid.defaults("fluid.myApplication.myBuilder", {
    gradeNames: ["fluid.prefs.builder", "autoInit"],
    schema: fluid.myApplication.primarySchema,
    auxiliarySchema: fluid.myApplication.auxSchema
});
var prefsBuilder = fluid.videoPlayer.myBuilder();

Back to Tutorial - Creating a Preferences Editor Using the Preferences Framework

 

  • No labels