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);
    }
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 ) ; 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 ) ; } } } if ( Constants . AFTER_ADD_TYPE == iMessageType ) { if ( ( ( AbstractThinTableModel ) m_model ) . getRowCount ( ) == iStartIndex ) ( ( AbstractThinTableModel ) m_model ) . bumpTableSize ( + 1 , false ) ; 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 ) ; else if ( Constants . AFTER_ADD_TYPE == iMessageType ) m_model . fireTableRowsInserted ( iStartIndex , iEndIndex ) ; }
A message has been received to update the model at this row.
NOTE: DO NOT call this method directly; it is guaranteed to be in the awt thread and IS NOT general thread safe.
This method is public so you can override it and take action when an event arrives.
@param iMessageType
@param iStartIndex
@param iEndIndex