void internalAddChange(String valuePath, String attributeName, int valueIndex, ChangeType changeType) {

        m_changeTimer = null;
        //TODO: keep the IDs, otherwise redo will not work
        CmsEntity currentData = m_entity.cloneEntity();
        if (!currentData.equals(m_current.getEntityData())) {
            m_undo.push(m_current);
            m_current = new Change(currentData, valuePath, attributeName, valueIndex, changeType);
            m_redo.clear();
            fireStateChange();
        }
    }
void internalAddChange ( String valuePath , String attributeName , int valueIndex , ChangeType changeType ) { m_changeTimer = null ; CmsEntity currentData = m_entity . cloneEntity ( ) ; if ( ! currentData . equals ( m_current . getEntityData ( ) ) ) { m_undo . push ( m_current ) ; m_current = new Change ( currentData , valuePath , attributeName , valueIndex , changeType ) ; m_redo . clear ( ) ; fireStateChange ( ) ; } }
Internally adds a change to the undo stack.<p>

@param valuePath the entity value path
@param attributeName the attribute name
@param valueIndex the value index
@param changeType the change type