package sugoi.form.elements; import sugoi.form.Form; import sugoi.form.FormElement; import sugoi.form.Formatter; import sugoi.form.ListData; /** * Manage an array of string with a checkbox group */ class CheckboxGroup extends FormElement> { public var data:Array; public var selectMessage:String; public var labelLeft:Bool; public var verticle:Bool; public var labelRight:Bool; public var formatter:Formatter; public var columns:Int; public function new(name:String, label:String,data:FormData, ?selected:Array, ?verticle:Bool=true, ?labelRight:Bool=true) { super(); this.name = name; this.label = label; this.data = data; this.value = selected != null ? selected : new Array(); this.verticle = verticle; this.labelRight = labelRight; columns = 1; } override public function populate() { var v = Web.getParamValues(parentForm.name + "_" + name); if (parentForm.isSubmitted()) { value = (v != null) ? v : []; } else { if (v != null) value = v; } } override public function render():String { var s = ""; var n = parentForm.name + "_" +name; var tagCss = getClasses(); var labelCss = getLabelClasses(); var c = 0; var datas = Lambda.array(data); if (datas != null) { var rowsPerColumn = Math.ceil(datas.length / columns); s = ""; for (i in 0...columns) { s += ""; } s += "
\n"; s += "\n"; for (j in 0...rowsPerColumn) { if (c >= datas.length) break; s += ""; var row:Dynamic = datas[c]; var checkbox = "\n"; var label; if (formatter != null){ label = "\n"; //}else if(Form.translator!=null){ //label = "\n"; }else { label = "\n"; } if (labelRight) { s += "\n"; s += "\n"; } else { s += "\n"; s += "\n"; } s += ""; c++; } s += "
" + checkbox + " " + label + "" + label + " " + checkbox + "
"; s += "
\n"; } return s; } }