Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

ISelect.java 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.itmill.toolkit.terminal.gwt.client.ui;
  2. import java.util.Iterator;
  3. import java.util.Vector;
  4. import com.google.gwt.user.client.ui.ListBox;
  5. import com.google.gwt.user.client.ui.Widget;
  6. import com.itmill.toolkit.terminal.gwt.client.UIDL;
  7. public class ISelect extends IOptionGroupBase {
  8. public static final String CLASSNAME = "i-select";
  9. private static final int VISIBLE_COUNT = 10;
  10. private ListBox select;
  11. public ISelect() {
  12. super(new ListBox(), CLASSNAME);
  13. select = (ListBox) optionsContainer;
  14. select.addChangeListener(this);
  15. select.setStyleName(CLASSNAME + "-select");
  16. }
  17. protected void buildOptions(UIDL uidl) {
  18. select.setMultipleSelect(multiselect);
  19. if (multiselect)
  20. select.setVisibleItemCount(VISIBLE_COUNT);
  21. else
  22. select.setVisibleItemCount(1);
  23. select.setEnabled(!disabled && !readonly);
  24. select.clear();
  25. for (Iterator i = uidl.getChildIterator(); i.hasNext();) {
  26. UIDL optionUidl = (UIDL) i.next();
  27. select.addItem(optionUidl.getStringAttribute("caption"), optionUidl
  28. .getStringAttribute("key"));
  29. if (optionUidl.hasAttribute("selected"))
  30. select.setItemSelected(select.getItemCount() - 1, true);
  31. }
  32. }
  33. protected Object[] getSelectedItems() {
  34. Vector selectedItemKeys = new Vector();
  35. for (int i = 0; i < select.getItemCount(); i++) {
  36. if (select.isItemSelected(i))
  37. selectedItemKeys.add(select.getValue(i));
  38. }
  39. return selectedItemKeys.toArray();
  40. }
  41. public void onChange(Widget sender) {
  42. if (select.isMultipleSelect())
  43. client
  44. .updateVariable(id, "selected", getSelectedItems(),
  45. immediate);
  46. else
  47. client.updateVariable(id, "selected", new String[] { ""
  48. + getSelectedItem() }, immediate);
  49. }
  50. }