Skip to content

Instantly share code, notes, and snippets.

@voger
Last active September 22, 2015 21:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save voger/8595dd76bbc6c5753922 to your computer and use it in GitHub Desktop.
Save voger/8595dd76bbc6c5753922 to your computer and use it in GitHub Desktop.
qx.Class.define('qssite.ui.window.STOSDisplay', {
extend: qssite.ui.window.SWindow,
construct: function(caption, icon) {
this.base(arguments, caption, icon);
this._initLayout()
},
events: {
"closedWithAccept": "qx.event.type.Event"
},
members: {
__tos: null,
__tosWidget: null,
_initLayout: function() {
this.setLayout(new qx.ui.layout.VBox().set({spacing: 10}));
this.__tosWidget = new qx.ui.embed.Html();
this.__tosWidget.set({
overflowX: "auto",
overflowY: "auto",
decorator: "main",
backgroundColor: "white"
});
var topContainer = new qx.ui.container.Composite(new qx.ui.layout.HBox().set({spacing: 10}));
this.__tos = new qx.io.rest.Resource();
var store = new qx.data.store.Rest(this.__tos, "get");
var languagesStore = new qx.data.store.Json("site/tos/");
var langSelect = new qx.ui.form.SelectBox();
var spacer = new qx.ui.core.Spacer();
var languagesController = new qx.data.controller.List(null, langSelect);
this.__tos.map("get", "GET", "site/tos/{lang}");
topContainer.add(langSelect);
topContainer.add(spacer, {flex: 1});
this.add(topContainer);
this.add(this.__tosWidget, {flex: 1});
store.bind("model", this.__tosWidget, "html");
languagesStore.bind("model", languagesController, "model");
languagesController.setDelegate({
bindItem: function(controller, item, index) {
controller.bindProperty("name", "label", null, item, index);
controller.bindProperty("id", "model", null, item, index);
}
});
langSelect.addListener("changeSelection", function() {
this.__onChangeSelectedLanguage(languagesController.getSelection().getItem(0));
}, this);
this.addListener("appear", function() {
this.__onDisplay(languagesController);
}, this);
},
__onDisplay: function(controller) {
// TODO: Stuff to set default language according to preferences
controller.getSelection().setItem(0, "en");
},
__onChangeSelectedLanguage: function(lang) {
this.__tos.get({lang: lang});
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment