code: @Override
    public void updateFromUIDL(UIDL uidl, ApplicationConnection client)
    {
  
      // This call should be made first.
      // It handles sizes, captions, tooltips, etc. automatically.
      if (client.updateComponent(this, uidl, true))
      {
        // If client.updateComponent returns true there has been no changes and we
        // do not need to update anything.
        return;
      }
  
      // Save reference to server connection object to be able to send
      // user interaction later
      this.gClient = client;
  
      // Save the client side identifier (paintable id) for the widget
      paintableId = uidl.getId();
  
      try
      {
        if (uidl.hasAttribute("escapeHTML")){
          this.escapeHTML = uidl.getBooleanAttribute("escapeHTML");
        }
  
        UIDL rows = uidl.getChildByTagName("rows");
        if (rows != null)
        {
          // clear all old table cells
          table.removeAllRows();
          highlighted.clear();
          position2id.clear();
  
          for (int i = 0; i < rows.getChildCount(); i++)
          {
            UIDL row = rows.getChildUIDL(i);
            if ("row".equals(row.getTag()))
            {
              addRow(row, i);
            }
          }
        }// end if rows not null
  
        // add end events if necessary to have a nicely aligned regular grid
        int maxCellCount = 0;
        for (int row = 0; row < table.getRowCount(); row++)
        {
          maxCellCount = Math.max(maxCellCount, getRealColumnCount(row));
        }
  
        for (int row = 0; row < table.getRowCount(); row++)
        {
          int isValue = getRealColumnCount(row);
  
          if (isValue < maxCellCount)
          {
            int diff = maxCellCount - isValue;
            table.setHTML(row, table.getCellCount(row) + diff - 1, "");
          }
        }
  
      }
      catch (Exception ex)
      {
        Logger.getLogger(VAnnotationGrid.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
      }
    }
docs: Called whenever an update is received from the server