Skip to content

Instantly share code, notes, and snippets.

@zaucker
Created April 20, 2011 18:28
Show Gist options
  • Save zaucker/932227 to your computer and use it in GitHub Desktop.
Save zaucker/932227 to your computer and use it in GitHub Desktop.
[qx] ListController
var root = this.getRoot();
// create some dummy data
var data = {
firstname: "Martin",
lastname: "Wittemann",
gender: [
{glabel: "male", gdata: "M"},
{glabel: "female", gdata: "F"},
{glabel: "dont know!", gdata: "?"},
{glabel: "Alien", gdata: "A"}
]
};
var model = qx.data.marshal.Json.createModel(data);
// create the form
var form = new qx.ui.form.Form();
// firstname
var firstname = new qx.ui.form.TextField();
form.add(firstname, "Firstname");
// lastname
var lastname = new qx.ui.form.TextField();
form.add(lastname, "Lastname");
var bindFunction = function(controller, item, index) {
controller.bindProperty("glabel", "label", null, item, index);
controller.bindProperty("gdata", "model", null, item, index);
controller.bindPropertyReverse("gdata", "model", null, item, index);
};
// gender
var genderSelect = new qx.ui.form.SelectBox();
var genderController = new qx.data.controller.List(null, genderSelect);
genderController.setDelegate({bindItem: bindFunction});
genderController.setModel(model.getGender());
form.add(genderSelect, "Gender");
//genderSelect.setSelection()
// create the form and add it to the root
root.add(new qx.ui.form.renderer.Single(form),
{left: 30, top: 20});
// create a form controller!
new qx.data.controller.Form(model, form);
var setButton = new qx.ui.form.Button("Set alien");
setButton.addListener("execute",
function() {
// model.setGender({glabel: "Alien", gdata: "A"});
model.setGender("A");
this.debug(qx.dev.Debug.debugProperties(model.getGender()));
}, this);
// A button to log the models content
var logButton = new qx.ui.form.Button("Show model data in the log");
root.add(logButton, {left: 240, top: 20});
root.add(setButton, {left: 240, top: 50});
logButton.addListener("execute",
function() {
this.debug(qx.dev.Debug.debugProperties(model));
}, this);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment