+ if(metaData.type == "primitive"){
+ var cellEditor = new qx.ui.form.TextField;
+ cellEditor.setAppearance("table-editor-textfield");
+ cellEditor.originalValue = cellInfo.value;
+ if (cellInfo.value === null) {
+ cellInfo.value = "";
+ }
+ cellEditor.setValue("" + cellInfo.value);
+
+ cellEditor.addListener("appear", function() {
+ cellEditor.selectAllText();
+ });
+
+ var validationFunc;
+ if (metaData.subType == "integer") {
+ validationFunc = function(newValue, oldValue){
+ var isNum = !isNaN(newValue * 1);
+ if (!isNum) {
+ alert("Warning, this field only accepts Integers!");
+ return oldValue;
+ }
+ return newValue;
+ };
+ }
+ cellEditor.setUserData("validationFunc", validationFunc);
+ }else if(metaData.type == "ref"){
+ var cellEditor = new qx.ui.form.SelectBox().set({
+ appearance: "table-editor-selectbox"
+ });
+ cellEditor.setUserData("validationFunc", function(value, oldValue){
+ if(value == "__empty__"){
+ alert("Warning, value cannot be empty! You must select at least one option below.");
+ return oldValue;
+ }
+ return value;
+ });
+
+ var value = cellInfo.value;
+ cellEditor.originalValue = value;
+ // replace null values
+ if ( value === null ) {
+ value = "";
+ }
+ if(value == ""){
+ cellEditor.add(new qx.ui.form.ListItem("", null, "__empty__"));
+ }
+ var list = metaData.refList;
+ if (list)
+ {
+ var item;