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.

VLabelPaintable.java 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui.label;
  5. import com.google.gwt.core.client.GWT;
  6. import com.google.gwt.dom.client.Document;
  7. import com.google.gwt.dom.client.PreElement;
  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. import com.vaadin.terminal.gwt.client.Util;
  12. import com.vaadin.terminal.gwt.client.ui.AbstractComponentConnector;
  13. public class VLabelPaintable extends AbstractComponentConnector {
  14. public VLabelPaintable() {
  15. }
  16. @Override
  17. public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
  18. super.updateFromUIDL(uidl, client);
  19. getWidget().setConnection(client);
  20. if (!isRealUpdate(uidl)) {
  21. return;
  22. }
  23. boolean sinkOnloads = false;
  24. final String mode = uidl.getStringAttribute("mode");
  25. if (mode == null || "text".equals(mode)) {
  26. getWidget().setText(uidl.getChildString(0));
  27. } else if ("pre".equals(mode)) {
  28. PreElement preElement = Document.get().createPreElement();
  29. preElement.setInnerText(uidl.getChildUIDL(0).getChildString(0));
  30. // clear existing content
  31. getWidget().setHTML("");
  32. // add preformatted text to dom
  33. getWidget().getElement().appendChild(preElement);
  34. } else if ("uidl".equals(mode)) {
  35. getWidget().setHTML(uidl.getChildrenAsXML());
  36. } else if ("xhtml".equals(mode)) {
  37. UIDL content = uidl.getChildUIDL(0).getChildUIDL(0);
  38. if (content.getChildCount() > 0) {
  39. getWidget().setHTML(content.getChildString(0));
  40. } else {
  41. getWidget().setHTML("");
  42. }
  43. sinkOnloads = true;
  44. } else if ("xml".equals(mode)) {
  45. getWidget().setHTML(
  46. uidl.getChildUIDL(0).getChildString(0));
  47. } else if ("raw".equals(mode)) {
  48. getWidget().setHTML(
  49. uidl.getChildUIDL(0).getChildString(0));
  50. sinkOnloads = true;
  51. } else {
  52. getWidget().setText("");
  53. }
  54. if (sinkOnloads) {
  55. Util.sinkOnloadForImages(getWidget().getElement());
  56. }
  57. }
  58. @Override
  59. protected Widget createWidget() {
  60. return GWT.create(VLabel.class);
  61. }
  62. @Override
  63. public VLabel getWidget() {
  64. return (VLabel) super.getWidget();
  65. }
  66. }