1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-09 09:15:38 +02:00

Bug 135118: Modules view is not updated.

This commit is contained in:
Mikhail Khodjaiants 2006-04-05 19:27:15 +00:00
parent 69f829d455
commit ab7dcca459
4 changed files with 50 additions and 7 deletions

View file

@ -1,3 +1,15 @@
2006-04-05 Mikhail Khodjaiants
Bug 135118: Modules view is not updated.
* ModuleProxyFactory.java
* ModulesViewEventHandler.java
* ModulesViewModelProxy.java
2006-04-05 Mikhail Khodjaiants
Corrected the shared library image selection.
* CDebugImages.java
* CDebugModelPresentation.java
- icons/ovr16/symbols_ovr.gif
2006-04-04 Mikhail Khodjaiants 2006-04-04 Mikhail Khodjaiants
See bug 134871: StackOverflowError using AsynchronousViewer. See bug 134871: StackOverflowError using AsynchronousViewer.
* ModulesView.java * ModulesView.java

View file

@ -28,7 +28,7 @@ public class ModuleProxyFactory implements IModelProxyFactoryAdapter {
String id = part.getSite().getId(); String id = part.getSite().getId();
if ( ICDebugUIConstants.ID_MODULES_VIEW.equals( id ) ) { if ( ICDebugUIConstants.ID_MODULES_VIEW.equals( id ) ) {
if ( element instanceof IModuleRetrieval ) { if ( element instanceof IModuleRetrieval ) {
return new ModulesViewModelProxy(); return new ModulesViewModelProxy( (IModuleRetrieval)element );
} }
} }
} }

View file

@ -11,7 +11,9 @@
package org.eclipse.cdt.debug.internal.ui.views.modules; package org.eclipse.cdt.debug.internal.ui.views.modules;
import org.eclipse.cdt.debug.core.model.ICModule; import org.eclipse.cdt.debug.core.model.ICModule;
import org.eclipse.cdt.debug.core.model.IModuleRetrieval;
import org.eclipse.debug.core.DebugEvent; import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.debug.internal.ui.viewers.provisional.AbstractModelProxy; import org.eclipse.debug.internal.ui.viewers.provisional.AbstractModelProxy;
import org.eclipse.debug.internal.ui.viewers.provisional.IModelDelta; import org.eclipse.debug.internal.ui.viewers.provisional.IModelDelta;
@ -23,11 +25,14 @@ import org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler;
*/ */
public class ModulesViewEventHandler extends DebugEventHandler { public class ModulesViewEventHandler extends DebugEventHandler {
private IModuleRetrieval fModuleRetrieval;
/** /**
* Constructor for ModulesViewEventHandler. * Constructor for ModulesViewEventHandler.
*/ */
public ModulesViewEventHandler( AbstractModelProxy proxy ) { public ModulesViewEventHandler( AbstractModelProxy proxy, IModuleRetrieval moduleRetrieval ) {
super( proxy ); super( proxy );
fModuleRetrieval = moduleRetrieval;
} }
/* (non-Javadoc) /* (non-Javadoc)
@ -46,7 +51,7 @@ public class ModulesViewEventHandler extends DebugEventHandler {
*/ */
protected void handleChange( DebugEvent event ) { protected void handleChange( DebugEvent event ) {
if ( event.getSource() instanceof ICModule ) if ( event.getSource() instanceof ICModule )
fireDelta( new ModelDelta( event.getSource(), IModelDelta.STATE ) ); fireDelta( (ICModule)event.getSource(), IModelDelta.STATE );
} }
/* (non-Javadoc) /* (non-Javadoc)
@ -57,7 +62,7 @@ public class ModulesViewEventHandler extends DebugEventHandler {
refreshRoot( event ); refreshRoot( event );
} }
else if ( event.getSource() instanceof ICModule ) { else if ( event.getSource() instanceof ICModule ) {
fireDelta( new ModelDelta( event.getSource(), IModelDelta.ADDED ) ); fireDelta( (ICModule)event.getSource(), IModelDelta.ADDED );
} }
} }
@ -69,7 +74,21 @@ public class ModulesViewEventHandler extends DebugEventHandler {
refreshRoot( event ); refreshRoot( event );
} }
else if ( event.getSource() instanceof ICModule ) { else if ( event.getSource() instanceof ICModule ) {
fireDelta( new ModelDelta( event.getSource(), IModelDelta.REMOVED ) ); fireDelta( (ICModule)event.getSource(), IModelDelta.REMOVED );
} }
} }
private void fireDelta( ICModule module, int flags ) {
ModelDelta root = new ModelDelta( fModuleRetrieval, IModelDelta.NO_CHANGE );
root.addNode( module, flags );
fireDelta( root );
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler#dispose()
*/
public synchronized void dispose() {
super.dispose();
fModuleRetrieval = null;
}
} }

View file

@ -10,6 +10,7 @@
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.debug.internal.ui.views.modules; package org.eclipse.cdt.debug.internal.ui.views.modules;
import org.eclipse.cdt.debug.core.model.IModuleRetrieval;
import org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler; import org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler;
import org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy; import org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy;
@ -18,17 +19,28 @@ import org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy;
*/ */
public class ModulesViewModelProxy extends EventHandlerModelProxy { public class ModulesViewModelProxy extends EventHandlerModelProxy {
private IModuleRetrieval fModuleRetrieval;
/** /**
* Constructor for ModulesViewModelProxy. * Constructor for ModulesViewModelProxy.
*/ */
public ModulesViewModelProxy() { public ModulesViewModelProxy( IModuleRetrieval moduleRetrieval ) {
super(); super();
fModuleRetrieval = moduleRetrieval;
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy#createEventHandlers() * @see org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy#createEventHandlers()
*/ */
protected DebugEventHandler[] createEventHandlers() { protected DebugEventHandler[] createEventHandlers() {
return new DebugEventHandler[] { new ModulesViewEventHandler( this ) }; return new DebugEventHandler[] { new ModulesViewEventHandler( this, fModuleRetrieval ) };
}
/* (non-Javadoc)
* @see org.eclipse.debug.internal.ui.viewers.update.EventHandlerModelProxy#dispose()
*/
public synchronized void dispose() {
super.dispose();
fModuleRetrieval = null;
} }
} }