@qooxdoo/framework
Version:
The JS Framework for Coders
82 lines (63 loc) • 2.4 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2011 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Adrian Olaru (adrianolaru)
************************************************************************ */
/* ************************************************************************
************************************************************************ */
/**
*
* @asset(qxl/demobrowser/demo/webworker/webworker.js)
* @tag noPlayground
*/
qx.Class.define("qxl.demobrowser.demo.bom.WebWorker",
{
extend : qx.application.Standalone,
members :
{
main : function()
{
this.base(arguments);
var doc = this.getRoot();
var url = qx.util.ResourceManager.getInstance().toUri("demobrowser/demo/webworker/webworker.js");
var worker = new qx.bom.WebWorker(url);
var label1 = new qx.ui.basic.Label("Calculate Fibonacci Numbers in a Web Worker");
var info = new qx.ui.basic.Label("");
var calculate = new qx.ui.form.Button("Calculate").set({width: 100});
var what = new qx.ui.form.TextField("30");
var result = new qx.ui.form.List().set({width: 200});
if (qx.core.Environment.get("html.webworker")) {
info.setValue("Your browser supports Web Workers");
} else {
info.setValue("Your browser doesn't support Web Workers");
}
doc.add(info, {left:20, top:10});
doc.add(label1, {left:20, top:40});
doc.add(what, {left:20, top:60});
doc.add(calculate, {left:120, top:58});
doc.add(result, {left:20, top:90});
worker.addListener("message", function(e) {
var data = e.getData();
result.addAt(new qx.ui.form.ListItem(""+data.result), 0);
if (data.done) {
calculate.setEnabled(true);
what.setEnabled(true);
calculate.setLabel("Calculate");
}
});
calculate.addListener("execute", function(e) {
result.removeAll();
worker.postMessage(parseInt(what.getValue() || 0, 10));
calculate.setEnabled(false);
what.setEnabled(false);
calculate.setLabel("Calculating...");
}, this);
}
}
});