Created
January 19, 2012 12:59
-
-
Save w495/1639956 to your computer and use it in GitHub Desktop.
bsk.view.Form.ACVW2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* ************************************************************************ | |
https://gist.github.com/1639956 | |
************************************************************************ */ | |
qx.Class.define("bsk.view.Form.ACVW2", | |
{ | |
extend : Object, | |
construct : function(uReq) { | |
this.uReq = uReq; | |
this.buildForm(); | |
}, | |
members : { | |
/* Upload request берется из конструктора */ | |
uReq : null, | |
/* Download request делаем сами*/ | |
dReq : null, | |
/** | |
* Download request config | |
* | |
* Предполагается, что загружать данные каждая страница | |
* мастера будет самостоятельно, а вот выгружаться на сервер они будут | |
* одним запросом. | |
* | |
**/ | |
drc : { | |
url: "", // | |
method: "", // POST \ GET | |
mimetype: "" // application/json | |
}, | |
getComposite : function(){ | |
return this.composite; | |
}, | |
/** | |
* Поля формы. | |
* Вообще, учитывая, богатсво форм они могут не понадобиться. | |
**/ | |
inp : null, | |
fake_inp: null, | |
// ------------------- | |
textfield1 : null, | |
textfield2 : null, | |
buildForm : function(){ | |
this.composite = new qx.ui.container.Composite (); | |
var vbox = new qx.ui.layout.VBox(1); | |
this.composite.setLayout(vbox); | |
/** | |
* В идеале, если мы хотим гибкость, | |
* тут нужно ввести, еще один Сomposite, | |
* положить его в this.composite, и уже поля раскладывать в него. | |
* | |
* Для чего-то простого сойдет и так. | |
**/ | |
this.textfield1 = new qx.ui.form.TextField("text field #1"); | |
this.composite.add(this.textfield1); | |
return this.composite; | |
}, | |
/** | |
Получает данные с сервера. | |
**/ | |
loadFormData : function(id, paramName) { | |
this.dReq = new qx.io.remote.Request | |
(this.drc.url, this.drc.method, this.drc.mimetype); | |
this.dReq.setTimeout(60000); | |
this.dReq.setParameter(paramName, id); | |
this.dReq.addListener("completed", this._onLoadFormDataCompl, this); | |
this.dReq.send(); | |
}, | |
_onLoadFormDataCompl : function(response) { | |
var result = response.getContent(); | |
if (false == bsk.util.errors.process(this, result)) | |
return false; | |
this.fillForm(result); | |
return true; | |
}, | |
/** | |
Заполняет форму полученными данными. | |
**/ | |
fillForm : function(data) { | |
for(var fieldName in this.inp){ | |
var item = fieldName.toLowerCase(); | |
this.inp[fieldName].setValue(data.value[item]) | |
} | |
}, | |
/** | |
Проверяет коректность данных | |
**/ | |
validateForm : function() { | |
var flag = true; | |
return flag; | |
}, | |
/** | |
Применив некоторые преобразования <<загружает>> данные на сервер | |
**/ | |
saveData : function(e) { | |
var formIsValid = this.validateForm(); | |
if(formIsValid){ | |
this.uReq.setParameter("name-name", this.textfield1.getValue(), true); | |
} | |
return formIsValid; | |
} | |
} | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment