docs: public void updateModel(int iMessageType, int iStartIndex, int iEndIndex)
      {
          FieldTable table = null;
          if (m_model instanceof AbstractThinTableModel)
          {
              if (((AbstractThinTableModel)m_model).getCurrentRow() == iStartIndex)
                  ((AbstractThinTableModel)m_model).makeRowCurrent(-1, false);    // Invalidate the current row (and any changes)
              table = ((AbstractThinTableModel)m_model).getFieldTable();
              if (table instanceof RemoteFieldTable)
              {
                  CachedRemoteTable remoteTable = (CachedRemoteTable)((RemoteFieldTable)table).getRemoteTableType(CachedRemoteTable.class);
                  SyncRemoteTable syncRemoteTable = (SyncRemoteTable)((RemoteFieldTable)table).getRemoteTableType(SyncRemoteTable.class);
                  if ((remoteTable != null) && (syncRemoteTable != null))
                  {
                      Object objStartIndex = new Integer(iStartIndex);
                      synchronized (syncRemoteTable.getSyncObject())
                      {
                          remoteTable.setCache(objStartIndex, null);   // Clear this cache entry
                      }
                  }
              }
              if (Constants.AFTER_ADD_TYPE == iMessageType)
              {
                  if (((AbstractThinTableModel)m_model).getRowCount() == iStartIndex) // It is possible for this to be called twice (timing issue since in swing thread)
                      ((AbstractThinTableModel)m_model).bumpTableSize(+1, false); // I call row inserted in a few lines
                  else
                      iMessageType = Constants.AFTER_UPDATE_TYPE;
              }
          }
          if (Constants.AFTER_UPDATE_TYPE == iMessageType)
              m_model.fireTableRowsUpdated(iStartIndex, iEndIndex);
          else if (Constants.AFTER_DELETE_TYPE == iMessageType)
              m_model.fireTableRowsUpdated(iStartIndex, iEndIndex); // Do not delete - leave a blank row in the table
          else if (Constants.AFTER_ADD_TYPE == iMessageType)
              m_model.fireTableRowsInserted(iStartIndex, iEndIndex);
      }