The MyUI Runtime Environment implements the concepts of the MyUI system for model-based adaptive user interfaces. It relies on the concept of the Abstract Application Interaction Model (AAIM) that is based on state machine diagrams as described in a public deliverable.
The runtime environment does not contain any adaptive user interface elements or interaction patterns itself. Instead, its modular design allows to integrate components that have been created using the Adaptive Web Components Framework or other client-side user interface frameworks.
The MyUI Runtime is pre-bundled in standalone distributable file located at dist/myui-runtime.js.
By simply loading this script, the public API is exposed in a global myui object.
- Load MyUI runtime
<script src="dist/myui-runtime.js"></script>- Define the AAIM for your application
let aaim = {
initial: <name of initial state>,
states: [
{
name: <name of the state>,
do: {
situation: <situation identifier>,
parameters: [
<parameter value>, ...
]
},
events: [
{
on: <name of event>,
goto: <name of target state>,
do: {
service: <name of registered serivce>,
name: <method name>,
parameters: [
<parameter value>, ...
]
}
}, ...
]
}, ...
]
}- Create your
SituationFactoryimplementation
class MySituationFactory extends myui.SituationFactory {
create(situation, parameters, context) {/*...*/}
refresh(situation, parameters, context) {/*...*/}
}- Create your
AAIMServiceimplementation
class MyService extends myui.AAIMService {
constructor() {
super();
// Add provided functions
this._functions.set('myFunction', this.myFunction);
}
// Implementation of provided function
myFunction(firstParam, lastParam) {/*...*/}
}- Create and configure the
AAIMBehavior
let behavior = new myui.AAIMBehavior(new MySituationFactory(), new MyService());
// Optionally register additional services
behavior.registerService('other', new OtherService());- Create the
AAIMInterpreterand load the AAIM
let interpreter = new myui.AAIMInterpreter(behavior);
interpreter.load(aaim);- Start the interpreter when all application dependencies have been loaded
window.onload = function() {
interpreter.running = true;
};For for more details see the API documentation.
The MyUI Runtime Environment is licensed under the Clear BSD License.
The research leading to these results has received funding from the European Union's Seventh Framework Programme (FP7) under grant agreement no. 248606 (MyUI) and no. 610510 (Prosperity4All).
Visit the GPII DeveloperSpace to find more useful resources.