blob: 3af418fd3e9df10a2dfadb86f204fdf08458a269 [file] [log] [blame]
/*
*(c) Copyright QNX Software Systems Ltd. 2002.
* All Rights Reserved.
*
*/
package org.eclipse.cdt.debug.internal.ui.views.memory;
import org.eclipse.cdt.debug.core.model.IFormattedMemoryBlock;
import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.ui.AbstractDebugView;
/**
*
* Enter type comment.
*
* @since Jul 29, 2002
*/
public class MemoryViewEventHandler extends AbstractDebugEventHandler
{
/**
* Constructor for MemoryViewEventHandler.
* @param view
*/
public MemoryViewEventHandler( AbstractDebugView view )
{
super( view );
}
/* (non-Javadoc)
* @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#doHandleDebugEvents(DebugEvent[])
*/
protected void doHandleDebugEvents( DebugEvent[] events )
{
for( int i = 0; i < events.length; i++ )
{
DebugEvent event = events[i];
switch( event.getKind() )
{
case DebugEvent.CHANGE:
if ( event.getSource() instanceof IFormattedMemoryBlock && event.getDetail() == DebugEvent.CONTENT )
{
refresh( event.getSource() );
getView().updateObjects();
return;
}
break;
case DebugEvent.TERMINATE:
if ( event.getSource() instanceof IFormattedMemoryBlock )
{
remove( event.getSource() );
getView().updateObjects();
return;
}
break;
}
}
}
/**
* Refresh the given element in the viewer - must be called in UI thread.
*/
protected void refresh( Object element )
{
if ( isAvailable() )
{
getView().showViewer();
((MemoryViewer)getViewer()).refresh( element );
}
}
/**
* Refresh the viewer - must be called in UI thread.
*/
public void refresh()
{
if ( isAvailable() )
{
getView().showViewer();
getViewer().refresh();
}
}
protected void remove( Object element )
{
((MemoryViewer)getViewer()).remove( element );
}
}