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.

LinkConnector.java 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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.user.client.DOM;
  7. import com.google.gwt.user.client.ui.Widget;
  8. import com.vaadin.terminal.gwt.client.ApplicationConnection;
  9. import com.vaadin.terminal.gwt.client.Paintable;
  10. import com.vaadin.terminal.gwt.client.UIDL;
  11. import com.vaadin.ui.Link;
  12. @Component(Link.class)
  13. public class LinkConnector extends AbstractComponentConnector implements
  14. Paintable {
  15. @Override
  16. public boolean delegateCaptionHandling() {
  17. return false;
  18. }
  19. public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
  20. if (!isRealUpdate(uidl)) {
  21. return;
  22. }
  23. getWidget().client = client;
  24. getWidget().enabled = isEnabled();
  25. if (uidl.hasAttribute("name")) {
  26. getWidget().target = uidl.getStringAttribute("name");
  27. getWidget().anchor.setAttribute("target", getWidget().target);
  28. }
  29. if (uidl.hasAttribute("src")) {
  30. getWidget().src = client.translateVaadinUri(uidl
  31. .getStringAttribute("src"));
  32. getWidget().anchor.setAttribute("href", getWidget().src);
  33. }
  34. if (uidl.hasAttribute("border")) {
  35. if ("none".equals(uidl.getStringAttribute("border"))) {
  36. getWidget().borderStyle = VLink.BORDER_STYLE_NONE;
  37. } else {
  38. getWidget().borderStyle = VLink.BORDER_STYLE_MINIMAL;
  39. }
  40. } else {
  41. getWidget().borderStyle = VLink.BORDER_STYLE_DEFAULT;
  42. }
  43. getWidget().targetHeight = uidl.hasAttribute("targetHeight") ? uidl
  44. .getIntAttribute("targetHeight") : -1;
  45. getWidget().targetWidth = uidl.hasAttribute("targetWidth") ? uidl
  46. .getIntAttribute("targetWidth") : -1;
  47. // Set link caption
  48. getWidget().captionElement.setInnerText(getState().getCaption());
  49. // handle error
  50. if (null != getState().getErrorMessage()) {
  51. if (getWidget().errorIndicatorElement == null) {
  52. getWidget().errorIndicatorElement = DOM.createDiv();
  53. DOM.setElementProperty(getWidget().errorIndicatorElement,
  54. "className", "v-errorindicator");
  55. }
  56. DOM.insertChild(getWidget().getElement(),
  57. getWidget().errorIndicatorElement, 0);
  58. } else if (getWidget().errorIndicatorElement != null) {
  59. DOM.setStyleAttribute(getWidget().errorIndicatorElement, "display",
  60. "none");
  61. }
  62. if (getState().getIcon() != null) {
  63. if (getWidget().icon == null) {
  64. getWidget().icon = new Icon(client);
  65. getWidget().anchor.insertBefore(getWidget().icon.getElement(),
  66. getWidget().captionElement);
  67. }
  68. getWidget().icon.setUri(getState().getIcon().getURL());
  69. }
  70. }
  71. @Override
  72. protected Widget createWidget() {
  73. return GWT.create(VLink.class);
  74. }
  75. @Override
  76. public VLink getWidget() {
  77. return (VLink) super.getWidget();
  78. }
  79. }