選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

SelectExample.java 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*
  2. @ITMillApache2LicenseForJavaFiles@
  3. */
  4. package com.itmill.toolkit.demo.featurebrowser;
  5. import com.itmill.toolkit.data.Property.ValueChangeEvent;
  6. import com.itmill.toolkit.ui.AbstractSelect;
  7. import com.itmill.toolkit.ui.ComboBox;
  8. import com.itmill.toolkit.ui.CustomComponent;
  9. import com.itmill.toolkit.ui.Field;
  10. import com.itmill.toolkit.ui.ListSelect;
  11. import com.itmill.toolkit.ui.NativeSelect;
  12. import com.itmill.toolkit.ui.OptionGroup;
  13. import com.itmill.toolkit.ui.OrderedLayout;
  14. import com.itmill.toolkit.ui.Panel;
  15. import com.itmill.toolkit.ui.TwinColSelect;
  16. /**
  17. * Shows some basic fields for value input; TextField, DateField, Slider...
  18. *
  19. * @author IT Mill Ltd.
  20. */
  21. public class SelectExample extends CustomComponent {
  22. // listener that shows a value change notification
  23. private final Field.ValueChangeListener listener = new Field.ValueChangeListener() {
  24. public void valueChange(ValueChangeEvent event) {
  25. getWindow().showNotification("" + event.getProperty().getValue());
  26. }
  27. };
  28. public SelectExample() {
  29. final OrderedLayout main = new OrderedLayout();
  30. main.setMargin(true);
  31. setCompositionRoot(main);
  32. final OrderedLayout horiz = new OrderedLayout(
  33. OrderedLayout.ORIENTATION_HORIZONTAL);
  34. main.addComponent(horiz);
  35. final Panel single = new Panel("Single selects");
  36. single.setStyleName(Panel.STYLE_LIGHT);
  37. horiz.addComponent(single);
  38. final Panel multi = new Panel("Multi selects");
  39. multi.setStyleName(Panel.STYLE_LIGHT);
  40. horiz.addComponent(multi);
  41. // radio button group
  42. AbstractSelect sel = new OptionGroup("OptionGroup");
  43. initSelect(sel);
  44. single.addComponent(sel);
  45. // checkbox group
  46. sel = new OptionGroup("OptionGroup");
  47. sel.setMultiSelect(true); // TODO: throws if set after listener - why?
  48. initSelect(sel);
  49. multi.addComponent(sel);
  50. // single-select list
  51. sel = new ListSelect("ListSelect");
  52. ((ListSelect) sel).setColumns(15);
  53. initSelect(sel);
  54. single.addComponent(sel);
  55. // multi-select list
  56. sel = new ListSelect("ListSelect");
  57. ((ListSelect) sel).setColumns(15);
  58. sel.setMultiSelect(true);
  59. initSelect(sel);
  60. multi.addComponent(sel);
  61. // native-style dropdows
  62. sel = new NativeSelect("NativeSelect");
  63. ((NativeSelect) sel).setColumns(15);
  64. initSelect(sel);
  65. single.addComponent(sel);
  66. // combobox
  67. sel = new ComboBox("ComboBox");
  68. ((ComboBox) sel).setColumns(15);
  69. initSelect(sel);
  70. single.addComponent(sel);
  71. // "twin column" select
  72. sel = new TwinColSelect("TwinColSelect");
  73. ((TwinColSelect) sel).setColumns(15);
  74. initSelect(sel);
  75. multi.addComponent(sel);
  76. }
  77. /*
  78. * Initialize select with some values, make immediate and add listener.
  79. */
  80. private void initSelect(AbstractSelect sel) {
  81. for (int i = 1; i <= 5; i++) {
  82. sel.addItem("Item " + i);
  83. }
  84. // select one item
  85. sel.select("Item 1");
  86. // make immediate, add listener
  87. sel.setImmediate(true);
  88. sel.addListener(listener);
  89. }
  90. }