Overview
The Infusion Preferences Framework provides a reusable set of schemas, programming APIs, and UI building blocks specific to the creation, persistence, and integration of preference editors into a variety of web-based applications, content management systems, and delivery environments. There are three aspects that the preference framework addresses: editing/creation, enacting/applying, and persistence/storage of preferences. An instance of the Preference Framework may include one or more of these aspects, and they are all intended to be modular, extensible, and reusable.
UI Options, also called Learner Options, is an example instance that contains a default set of preference that can be set, enacted and stored all through the same top level component.
Preference Editing
Provides a User Interface (UI) for setting preferences. This will communicate with the store to save the preferences for use in enacting, and retrieve previously saved preferences to display current values through the interface. There may also be a need to connect with the enactors to preview the preference settings and/or apply those preference adjustments to its own interface.
Enacting
The setting/application of preferences. The preferences are read in from the store and applied to the UI or applications features. Different systems/applications may require different types of adjustments be applied based on their own implementations. For example, in an instance of UI Options embedded on a web page, font-size adjustments are performed by changing the font-size of the root element. In the UIO+ browser extensions, font-size adjustments are replaced with adjustments to the browser zoom. Preference application need not be limited to UI elements, and may encompass other features of the application that are modified to the meet the users needs.
Store
The store provides a place to persist preferences. By default, the Preferences Framework defines a temp store, in memory, mostly used for testing, and a cookie store for persistence into browser cookies. However, a data source can be written for other persistence models. Internally preferences are transferred as pure data in JSON Objects. A particular storage model may need to convert the format as required.