/** 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(); } }