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.

VSliderPaintable.java 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui;
  5. import com.google.gwt.core.client.GWT;
  6. import com.google.gwt.core.client.Scheduler;
  7. import com.google.gwt.user.client.Command;
  8. import com.google.gwt.user.client.ui.Widget;
  9. import com.vaadin.terminal.gwt.client.ApplicationConnection;
  10. import com.vaadin.terminal.gwt.client.UIDL;
  11. public class VSliderPaintable extends AbstractComponentConnector {
  12. @Override
  13. public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
  14. getWidget().client = client;
  15. getWidget().id = uidl.getId();
  16. // Ensure correct implementation
  17. super.updateFromUIDL(uidl, client);
  18. if (!isRealUpdate(uidl)) {
  19. return;
  20. }
  21. getWidget().immediate = getState().isImmediate();
  22. getWidget().disabled = getState().isDisabled();
  23. getWidget().readonly = getState().isReadOnly();
  24. getWidget().vertical = uidl.hasAttribute("vertical");
  25. // TODO should these style names be used?
  26. String style = getState().getStyle();
  27. if (getWidget().vertical) {
  28. getWidget().addStyleName(
  29. VSlider.CLASSNAME + "-vertical");
  30. } else {
  31. getWidget().removeStyleName(
  32. VSlider.CLASSNAME + "-vertical");
  33. }
  34. getWidget().min = uidl.getDoubleAttribute("min");
  35. getWidget().max = uidl.getDoubleAttribute("max");
  36. getWidget().resolution = uidl.getIntAttribute("resolution");
  37. getWidget().value = new Double(
  38. uidl.getDoubleVariable("value"));
  39. getWidget().setFeedbackValue(getWidget().value);
  40. getWidget().buildBase();
  41. if (!getWidget().vertical) {
  42. // Draw handle with a delay to allow base to gain maximum width
  43. Scheduler.get().scheduleDeferred(new Command() {
  44. public void execute() {
  45. getWidget().buildHandle();
  46. getWidget().setValue(
  47. getWidget().value, false);
  48. }
  49. });
  50. } else {
  51. getWidget().buildHandle();
  52. getWidget().setValue(getWidget().value,
  53. false);
  54. }
  55. }
  56. @Override
  57. public VSlider getWidget() {
  58. return (VSlider) super.getWidget();
  59. }
  60. @Override
  61. protected Widget createWidget() {
  62. return GWT.create(VSlider.class);
  63. }
  64. }