1 24 package org.riotfamily.forms.element.select; 25 26 import java.io.PrintWriter ; 27 import java.util.Iterator ; 28 import java.util.List ; 29 30 import org.riotfamily.common.markup.Html; 31 import org.riotfamily.common.markup.TagWriter; 32 33 34 37 public class MultiSelectBox extends AbstractMultiSelectElement { 38 39 private int maxSize = 7; 40 41 public MultiSelectBox() { 42 setOptionRenderer(new OptionTagRenderer()); 43 } 44 45 public int getMaxSize() { 46 return this.maxSize; 47 } 48 49 public void setMaxSize(int maxSize) { 50 this.maxSize = maxSize; 51 } 52 53 public void renderInternal(PrintWriter writer) { 54 TagWriter selectTag = new TagWriter(writer); 55 56 List options = getOptions(); 57 selectTag.start(Html.SELECT); 58 selectTag.attribute(Html.INPUT_NAME, getParamName()); 59 selectTag.attribute(Html.COMMON_ID, getId()); 60 selectTag.attribute(Html.SELECT_SIZE, Math.min(options.size(), maxSize)); 61 selectTag.attribute(Html.SELECT_MULTIPLE, true); 62 selectTag.body(); 63 64 Iterator it = options.iterator(); 65 while (it.hasNext()) { 66 ((Option) it.next()).render(); 67 } 68 69 selectTag.end(); 70 } 71 72 } 73 | Popular Tags |