// Build a basic demo. All config variables are placed in a JS Object.
var myDemo = {};
myDemo.sayHello = function() {
var message = '';
for (var i = 0; i < myDemo.times; i++) {
message += (myDemo.toggle ? 'hello ' : 'good bye ') + myDemo.message + '<br>';
}
document.getElementById('demo').innerHTML = message;
}
myDemo.toggle = true;
myDemo.message = 'world';
myDemo.times = 1;
myDemo.sayHello();
// Now let's create a fancy paper GUI!
document.addEventListener('PaperGUIReady', function(e) {
// Polymer elements are loaded asynchronously, we wait for them to be ready before creating the GUI.
var myGUI = new PaperGUI();
myGUI.add(myDemo, 'toggle').name('Hello').onChange(myDemo.sayHello);
myGUI.add(myDemo, 'message').name('Who are you?');
myGUI.add(myDemo, 'sayHello').name('Update text');
myGUI.add(myDemo, 'times').max(10).min(1).step(0.01).onChange(myDemo.sayHello);
myGUI.add(myDemo, 'nothing', -5, 5).name('Another one that does nothing');
myGUI.add(myDemo, 'message', ['earth', 'world', 'moon', 'system']).name('Yay, menus!')
.onChange(function(val) {
console.log(val);
myDemo.sayHello();
});
myGUI.add(myDemo, 'times', {'Once':1, 'Twice':2, '10X':10})
.name('Yay, menus with labels!').onChange(myDemo.sayHello);
});
Then, at the end of the HTML file, start loading paperGUI:
<script src="dist/paperGUI.js"></script>
This asynchronously loads the webcomponent polyfill then the paperGUI library and elements.
Alternatively, you can use a (blocking) webcomponent import instead of this loader.
<link rel="import" href="dist/paper-gui.html">
Note that the PaperGUIReady
event won't be triggered and the import will only work on webcomponent-ready browsers as this bypasses support detection and polyfill loading.