You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ICheckBox.java 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package com.itmill.toolkit.terminal.gwt.client.ui;
  2. import com.google.gwt.user.client.ui.ClickListener;
  3. import com.google.gwt.user.client.ui.Widget;
  4. import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
  5. import com.itmill.toolkit.terminal.gwt.client.Paintable;
  6. import com.itmill.toolkit.terminal.gwt.client.UIDL;
  7. public class ICheckBox extends com.google.gwt.user.client.ui.CheckBox implements
  8. Paintable {
  9. public static final String CLASSNAME = "i-checkbox";
  10. String id;
  11. boolean immediate;
  12. ApplicationConnection client;
  13. public ICheckBox() {
  14. setStyleName(CLASSNAME);
  15. addClickListener(new ClickListener() {
  16. public void onClick(Widget sender) {
  17. if (id == null || client == null)
  18. return;
  19. client.updateVariable(id, "state", isChecked(), immediate);
  20. }
  21. });
  22. }
  23. public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
  24. // Ensure correct implementation
  25. if (client.updateComponent(this, uidl, false))
  26. return;
  27. // Save details
  28. this.client = client;
  29. id = uidl.getId();
  30. // Set text
  31. setText(uidl.getStringAttribute("caption"));
  32. setChecked(uidl.getBooleanVariable("state"));
  33. immediate = uidl.getBooleanAttribute("immediate");
  34. }
  35. }