X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fslc%2Fclass%2Forg%2Fargeo%2Fslc%2Fria%2Fexecution%2FCellEditorFactory.js;h=c82705167e2fd8d14086332750ad34fe276bb6ef;hb=9089b25384758c01359acad6ceaf75a24c4d4853;hp=1be48083699f5b34fef07475ade92057e5ae4597;hpb=d8f7abb3102580b01ffbeecc201f7bdfbd082150;p=gpl%2Fargeo-slc.git diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/CellEditorFactory.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/CellEditorFactory.js index 1be480836..c82705167 100644 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/CellEditorFactory.js +++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/CellEditorFactory.js @@ -73,34 +73,83 @@ qx.Class.define("org.argeo.slc.ria.execution.CellEditorFactory", var metaData = rowData[2]; if (metaData.disabled) { return null; // var cellEditor = new - // qx.ui.table.celleditor.TextField(); - } - - 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.selectAll(); - }); - - 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; - }; + // qx.ui.table.celleditor.TextField(); } + 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; - cellEditor.setUserData("validationFunc", validationFunc); + for (var i=0,l=list.length; i