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.5KB

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