Exemplo n.º 1
0
  /** Called whenever an update is received from the server */
  @Override
  public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
    super.updateFromUIDL(uidl, client);
    if (client.updateComponent(this, uidl, false)) {
      hidePopup();
      return;
    }
    addStyleName(CLASSNAME);

    position = uidl.getStringAttribute("position");
    xOffset = uidl.getIntAttribute("xoffset");
    yOffset = uidl.getIntAttribute("yoffset");

    popupVisible = uidl.getBooleanVariable("popupVisible");
    if (popupVisible) {
      if (uidl.hasAttribute("popupPositionPaintable")) {
        popupPositionPaintable = uidl.getPaintableAttribute("popupPositionPaintable", client);
      } else {
        popupPositionPaintable = null;
      }

      if (uidl.hasAttribute("style")) {
        final String[] styles = uidl.getStringAttribute("style").split(" ");
        final StringBuffer styleBuf = new StringBuffer();
        final String primaryName = popup.getStylePrimaryName();
        styleBuf.append(primaryName);
        styleBuf.append(" ");
        styleBuf.append(VPopupView.CLASSNAME + "-popup");
        for (int i = 0; i < styles.length; i++) {
          styleBuf.append(" ");
          styleBuf.append(primaryName);
          styleBuf.append("-");
          styleBuf.append(styles[i]);
        }
        popup.setStyleName(styleBuf.toString());
      } else {
        popup.setStyleName(popup.getStylePrimaryName() + " " + VPopupView.CLASSNAME + "-popup");
      }

      UIDL popupUIDL = uidl.getChildUIDL(0);
      popup.setVisible(false);
      popup.show();
      popup.updateFromUIDL(popupUIDL);
      showPopup();
    } else {
      hidePopup();
    }
  }