code: public void update(List<CmsAliasTableRow> data) {
  
          Map<String, CmsAliasTableRow> currentRowsByKey = new HashMap<String, CmsAliasTableRow>();
          for (CmsAliasTableRow row : m_table.getLiveDataList()) {
              currentRowsByKey.put(row.getKey(), row);
          }
          List<CmsAliasTableRow> rowsToAdd = new ArrayList<CmsAliasTableRow>();
          for (CmsAliasTableRow updateRow : data) {
              String key = updateRow.getKey();
              CmsAliasTableRow existingRow = currentRowsByKey.get(key);
              if (existingRow != null) {
                  existingRow.update(updateRow);
              } else {
                  rowsToAdd.add(updateRow);
              }
          }
          m_table.getLiveDataList().addAll(rowsToAdd);
          m_table.redraw();
      }
docs: Updates the table data with a new list of rows.<p>
  
  Rows in the table for which a row with the same key is also contained in the 'data' parameter
  will be updated, the other rows from the 'data' list will be added.<p>
  
  @param data the list of rows to update