diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog index a555cea5695..58f7edf9a25 100644 --- a/debug/org.eclipse.cdt.debug.ui/ChangeLog +++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog @@ -1,3 +1,18 @@ +2006-02-21 Mikhail Khodjaiants + Bug 122336: Use the asynchronous tree viewer in the Modules view. + Adjustments to the platform changes in M5. + + src/org/eclipse/cdt/debug/internal/ui/elements/adapters (new package) + + CDebugElementAdapterFactory.java + * AbstractViewerState.java + + ModuleContentAdapter.java + + ModuleProxyFactory.java + * ModulesView.java + * ModulesViewer.java + * ModulesViewerState.java + * ModulesViewEventHandler.java + - ModuleTreeContentAdapter.java + * CDebugUIPlugin.java + 2006-02-03 Mikhail Khodjaiants The "ICDebuggerPage" interface and "AbstractCDebuggerPage" class are added. All extensions of the "CDebuggerPage" extension point must implement "ICDebuggerPage". diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/elements/adapters/CDebugElementAdapterFactory.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/elements/adapters/CDebugElementAdapterFactory.java new file mode 100644 index 00000000000..6ee369617f4 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/elements/adapters/CDebugElementAdapterFactory.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * Copyright (c) 2004 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.debug.internal.ui.elements.adapters; + +import org.eclipse.cdt.debug.core.model.ICModule; +import org.eclipse.cdt.debug.core.model.IModuleRetrieval; +import org.eclipse.cdt.debug.internal.ui.views.modules.ModuleContentAdapter; +import org.eclipse.cdt.debug.internal.ui.views.modules.ModuleProxyFactory; +import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousContentAdapter; +import org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousLabelAdapter; +import org.eclipse.debug.internal.ui.viewers.provisional.IModelProxyFactoryAdapter; + +/** + * Comment for . + */ +public class CDebugElementAdapterFactory implements IAdapterFactory { + +// private static IAsynchronousLabelAdapter fgModuleLabelAdapter = new AsynchronousDebugLabelAdapter(); + private static IAsynchronousContentAdapter fgModuleContentAdapter = new ModuleContentAdapter(); + private static IModelProxyFactoryAdapter fgModuleProxyFactory = new ModuleProxyFactory(); + + + /* (non-Javadoc) + * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class) + */ + public Object getAdapter( Object adaptableObject, Class adapterType ) { + if ( adapterType.isInstance( adaptableObject ) ) { + return adaptableObject; + } + if ( adapterType.equals( IAsynchronousContentAdapter.class ) ) { + if ( adaptableObject instanceof IModuleRetrieval ) { + return fgModuleContentAdapter; + } + if ( adaptableObject instanceof ICModule ) { + return fgModuleContentAdapter; + } + } + if ( adapterType.equals( IModelProxyFactoryAdapter.class ) ) { + if ( adaptableObject instanceof IModuleRetrieval ) { + return fgModuleProxyFactory; + } + } + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList() + */ + public Class[] getAdapterList() { + return new Class[] { + IAsynchronousContentAdapter.class, + IAsynchronousLabelAdapter.class, + IModelProxyFactoryAdapter.class + }; + } +} diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractViewerState.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractViewerState.java index 0c14c8d471b..2d195badf8b 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractViewerState.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractViewerState.java @@ -12,10 +12,9 @@ package org.eclipse.cdt.debug.internal.ui.views; import java.util.ArrayList; import java.util.List; - import org.eclipse.core.runtime.IPath; import org.eclipse.debug.core.DebugException; -import org.eclipse.debug.internal.ui.viewers.AsynchronousTreeViewer; +import org.eclipse.debug.internal.ui.model.viewers.AsynchronousTreeModelViewer; import org.eclipse.debug.internal.ui.viewers.TreePath; import org.eclipse.debug.internal.ui.viewers.TreeSelection; import org.eclipse.swt.widgets.TreeItem; @@ -33,7 +32,7 @@ public abstract class AbstractViewerState { /** * Constructs a memento for the given viewer. */ - public AbstractViewerState(AsynchronousTreeViewer viewer) { + public AbstractViewerState(AsynchronousTreeModelViewer viewer) { saveState(viewer); } @@ -43,7 +42,7 @@ public abstract class AbstractViewerState { * * @param viewer viewer of which to save the state */ - public void saveState(AsynchronousTreeViewer viewer) { + public void saveState(AsynchronousTreeModelViewer viewer) { List expanded = new ArrayList(); fSavedExpansion = null; TreeItem[] items = viewer.getTree().getItems(); @@ -115,7 +114,7 @@ public abstract class AbstractViewerState { * * @param viewer viewer to which state is restored */ - public void restoreState(AsynchronousTreeViewer viewer) { + public void restoreState(AsynchronousTreeModelViewer viewer) { boolean expansionComplete = true; if (fSavedExpansion != null && fSavedExpansion.size() > 0) { for (int i = 0; i < fSavedExpansion.size(); i++) { @@ -176,6 +175,6 @@ public abstract class AbstractViewerState { * @return element represented by the path, or null if none * @throws DebugException if unable to locate a variable */ - protected abstract TreePath decodePath(IPath path, AsynchronousTreeViewer viewer) throws DebugException; + protected abstract TreePath decodePath(IPath path, AsynchronousTreeModelViewer viewer) throws DebugException; } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleTreeContentAdapter.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleContentAdapter.java similarity index 85% rename from debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleTreeContentAdapter.java rename to debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleContentAdapter.java index 79290b60c8e..a8683c28847 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleTreeContentAdapter.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleContentAdapter.java @@ -17,16 +17,16 @@ import org.eclipse.cdt.debug.core.model.ICModule; import org.eclipse.cdt.debug.core.model.IModuleRetrieval; import org.eclipse.cdt.debug.ui.ICDebugUIConstants; import org.eclipse.core.runtime.CoreException; -import org.eclipse.debug.internal.ui.viewers.AsynchronousTreeContentAdapter; -import org.eclipse.debug.internal.ui.viewers.IPresentationContext; +import org.eclipse.debug.internal.ui.viewers.provisional.AsynchronousContentAdapter; +import org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext; /** * Comment for . */ -public class ModuleTreeContentAdapter extends AsynchronousTreeContentAdapter { +public class ModuleContentAdapter extends AsynchronousContentAdapter { /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.viewers.AsynchronousTreeContentAdapter#getChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.IPresentationContext) + * @see org.eclipse.debug.internal.ui.viewers.provisional.AsynchronousContentAdapter#getChildren(java.lang.Object, org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext) */ protected Object[] getChildren( Object parent, IPresentationContext context ) throws CoreException { if ( parent instanceof IModuleRetrieval ) { diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleProxyFactory.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleProxyFactory.java new file mode 100644 index 00000000000..eb519af6cba --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModuleProxyFactory.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2004 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.debug.internal.ui.views.modules; + +import org.eclipse.cdt.debug.core.model.IModuleRetrieval; +import org.eclipse.cdt.debug.ui.ICDebugUIConstants; +import org.eclipse.debug.internal.ui.viewers.provisional.IModelProxy; +import org.eclipse.debug.internal.ui.viewers.provisional.IModelProxyFactoryAdapter; +import org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext; +import org.eclipse.ui.IWorkbenchPart; + +public class ModuleProxyFactory implements IModelProxyFactoryAdapter { + + /* (non-Javadoc) + * @see org.eclipse.debug.internal.ui.viewers.provisional.IModelProxyFactoryAdapter#createModelProxy(java.lang.Object, org.eclipse.debug.internal.ui.viewers.provisional.IPresentationContext) + */ + public IModelProxy createModelProxy( Object element, IPresentationContext context ) { + IWorkbenchPart part = context.getPart(); + if ( part != null ) { + String id = part.getSite().getId(); + if ( ICDebugUIConstants.ID_MODULES_VIEW.equals( id ) ) { + if ( element instanceof IModuleRetrieval ) { + return new ModulesViewModelProxy(); + } + } + } + return null; + } +} diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesView.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesView.java index 3664c5527e0..4058e256104 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesView.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesView.java @@ -30,7 +30,7 @@ import org.eclipse.core.runtime.ListenerList; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.internal.ui.contexts.DebugContextManager; -import org.eclipse.debug.internal.ui.contexts.IDebugContextListener; +import org.eclipse.debug.internal.ui.contexts.provisional.IDebugContextListener; import org.eclipse.debug.internal.ui.viewers.PresentationContext; import org.eclipse.debug.ui.AbstractDebugView; import org.eclipse.debug.ui.IDebugUIConstants; @@ -374,7 +374,7 @@ public class ModulesView extends AbstractDebugView implements IDebugContextListe // create the sash form that will contain the tree viewer & text viewer setSashForm( new SashForm( parent, SWT.NONE ) ); // add tree viewer - final ModulesViewer modulesViewer = new ModulesViewer( getSashForm(), SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, this ); + final ModulesViewer modulesViewer = new ModulesViewer( getSashForm(), this ); modulesViewer.setUseHashlookup( false ); modulesViewer.getControl().addFocusListener( new FocusAdapter() { @@ -391,7 +391,7 @@ public class ModulesView extends AbstractDebugView implements IDebugContextListe getSite().setSelectionProvider( getModulesViewSelectionProvider() ); // listen to debug context - DebugContextManager.getDefault().addDebugContextListener(this, getSite().getWorkbenchWindow()); + DebugContextManager.getDefault().addDebugContextListener( this, getSite().getWorkbenchWindow() ); return modulesViewer; } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewEventHandler.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewEventHandler.java index e678dde63f2..6e456b5f344 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewEventHandler.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewEventHandler.java @@ -13,10 +13,10 @@ package org.eclipse.cdt.debug.internal.ui.views.modules; import org.eclipse.cdt.debug.core.model.ICModule; import org.eclipse.debug.core.DebugEvent; import org.eclipse.debug.core.model.IDebugTarget; -import org.eclipse.debug.internal.ui.viewers.AbstractModelProxy; -import org.eclipse.debug.internal.ui.viewers.IModelDelta; +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.ModelDelta; import org.eclipse.debug.internal.ui.viewers.update.DebugEventHandler; -import org.eclipse.debug.internal.ui.viewers.update.ModelDelta; /** * Comment for . @@ -46,7 +46,7 @@ public class ModulesViewEventHandler extends DebugEventHandler { */ protected void handleChange( DebugEvent event ) { if ( event.getSource() instanceof ICModule ) - fireDelta( new ModelDelta( event.getSource(), IModelDelta.CHANGED | IModelDelta.STATE ) ); + fireDelta( new ModelDelta( event.getSource(), IModelDelta.STATE ) ); } /* (non-Javadoc) diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewer.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewer.java index 70c021f3431..103769a6cf6 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewer.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewer.java @@ -10,54 +10,19 @@ *******************************************************************************/ package org.eclipse.cdt.debug.internal.ui.views.modules; -import org.eclipse.cdt.debug.core.model.ICDebugTarget; -import org.eclipse.cdt.debug.ui.ICDebugUIConstants; -import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; -import org.eclipse.debug.internal.ui.elements.adapters.AsynchronousDebugLabelAdapter; -import org.eclipse.debug.internal.ui.viewers.AsynchronousTreeViewer; -import org.eclipse.debug.internal.ui.viewers.IAsynchronousLabelAdapter; -import org.eclipse.debug.internal.ui.viewers.IAsynchronousRequestMonitor; -import org.eclipse.debug.internal.ui.viewers.IAsynchronousTreeContentAdapter; -import org.eclipse.debug.internal.ui.viewers.IModelProxy; -import org.eclipse.debug.internal.ui.viewers.IModelProxyFactory; -import org.eclipse.debug.internal.ui.viewers.IPresentationContext; +import org.eclipse.debug.internal.ui.model.viewers.AsynchronousTreeModelViewer; +import org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousRequestMonitor; import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.progress.UIJob; /** * Asynchronous viewer used by the Modules view. */ -public class ModulesViewer extends AsynchronousTreeViewer { +public class ModulesViewer extends AsynchronousTreeModelViewer { - static class ModuleProxyFactory implements IModelProxyFactory { - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.viewers.IModelProxyFactory#createModelProxy(java.lang.Object, org.eclipse.debug.internal.ui.viewers.IPresentationContext) - */ - public IModelProxy createModelProxy( Object element, IPresentationContext context ) { - IWorkbenchPart part = context.getPart(); - if ( part != null ) { - String id = part.getSite().getId(); - if ( ICDebugUIConstants.ID_MODULES_VIEW.equals( id ) ) { - if ( element instanceof IAdaptable ) { - ICDebugTarget target = (ICDebugTarget)((IAdaptable)element).getAdapter( ICDebugTarget.class ); - if ( target != null ) - return new ModulesViewModelProxy(); - } - } - } - return null; - } - } - - private static IAsynchronousLabelAdapter fgModuleLabelAdapter = new AsynchronousDebugLabelAdapter(); - private static IAsynchronousTreeContentAdapter fgModuleTreeContentAdapter = new ModuleTreeContentAdapter(); - private static IModelProxyFactory fgModuleProxyFactory = new ModuleProxyFactory(); - protected ModulesView fView; private UIJob fRestoreJob = new UIJob( "restore viewer state" ) { //$NON-NLS-1$ @@ -71,14 +36,14 @@ public class ModulesViewer extends AsynchronousTreeViewer { /** * Constructor for ModulesViewer. */ - public ModulesViewer( Composite parent, int style, ModulesView view ) { - super( parent, style ); + public ModulesViewer( Composite parent, ModulesView view ) { + super( parent ); fView = view; fRestoreJob.setSystem( true ); } /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.viewers.AsynchronousViewer#updateComplete(org.eclipse.debug.internal.ui.viewers.IAsynchronousRequestMonitor) + * @see org.eclipse.debug.internal.ui.model.viewers.AsynchronousModelViewer#updateComplete(org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousRequestMonitor) */ protected void updateComplete( IAsynchronousRequestMonitor update ) { super.updateComplete( update ); @@ -88,30 +53,9 @@ public class ModulesViewer extends AsynchronousTreeViewer { } /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.viewers.AsynchronousViewer#handlePresentationFailure(org.eclipse.debug.internal.ui.viewers.IAsynchronousRequestMonitor, org.eclipse.core.runtime.IStatus) + * @see org.eclipse.debug.internal.ui.model.viewers.AsynchronousModelViewer#handlePresentationFailure(org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousRequestMonitor, org.eclipse.core.runtime.IStatus) */ protected void handlePresentationFailure( IAsynchronousRequestMonitor update, IStatus status ) { fView.showMessage( status.getMessage() ); } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.viewers.AsynchronousTreeViewer#getTreeContentAdapter(java.lang.Object) - */ - protected IAsynchronousTreeContentAdapter getTreeContentAdapter( Object element ) { - return fgModuleTreeContentAdapter; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.viewers.AsynchronousViewer#getLabelAdapter(java.lang.Object) - */ - protected IAsynchronousLabelAdapter getLabelAdapter( Object element ) { - return fgModuleLabelAdapter; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.viewers.AsynchronousViewer#getModelProxyFactoryAdapter(java.lang.Object) - */ - protected IModelProxyFactory getModelProxyFactoryAdapter( Object element ) { - return fgModuleProxyFactory; - } } diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewerState.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewerState.java index 166921c10af..b071ceacd6f 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewerState.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/modules/ModulesViewerState.java @@ -16,7 +16,7 @@ import org.eclipse.cdt.debug.internal.ui.views.AbstractViewerState; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.debug.core.DebugException; -import org.eclipse.debug.internal.ui.viewers.AsynchronousTreeViewer; +import org.eclipse.debug.internal.ui.model.viewers.AsynchronousTreeModelViewer; import org.eclipse.debug.internal.ui.viewers.TreePath; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; @@ -29,7 +29,7 @@ public class ModulesViewerState extends AbstractViewerState { /** * Constructor for ModulesViewerState. */ - public ModulesViewerState( AsynchronousTreeViewer viewer ) { + public ModulesViewerState( AsynchronousTreeModelViewer viewer ) { super( viewer ); } @@ -47,9 +47,9 @@ public class ModulesViewerState extends AbstractViewerState { } /* (non-Javadoc) - * @see org.eclipse.cdt.debug.internal.ui.views.AbstractViewerState#decodePath(org.eclipse.core.runtime.IPath, org.eclipse.debug.internal.ui.viewers.AsynchronousTreeViewer) + * @see org.eclipse.cdt.debug.internal.ui.views.AbstractViewerState#decodePath(org.eclipse.core.runtime.IPath, org.eclipse.debug.internal.ui.model.viewers.AsynchronousTreeModelViewer) */ - protected TreePath decodePath( IPath path, AsynchronousTreeViewer viewer ) throws DebugException { + protected TreePath decodePath( IPath path, AsynchronousTreeModelViewer viewer ) throws DebugException { String[] names = path.segments(); Tree tree = viewer.getTree(); TreeItem[] items = tree.getItems(); diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CDebugUIPlugin.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CDebugUIPlugin.java index a5964229d09..9fce7f94801 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CDebugUIPlugin.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CDebugUIPlugin.java @@ -13,17 +13,21 @@ package org.eclipse.cdt.debug.ui; import java.util.HashMap; import java.util.Map; import org.eclipse.cdt.debug.core.CDebugCorePlugin; +import org.eclipse.cdt.debug.core.model.ICModule; +import org.eclipse.cdt.debug.core.model.IModuleRetrieval; import org.eclipse.cdt.debug.internal.ui.CBreakpointUpdater; import org.eclipse.cdt.debug.internal.ui.CDebugImageDescriptorRegistry; import org.eclipse.cdt.debug.internal.ui.CDebugModelPresentation; import org.eclipse.cdt.debug.internal.ui.ColorManager; import org.eclipse.cdt.debug.internal.ui.EvaluationContextManager; import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants; +import org.eclipse.cdt.debug.internal.ui.elements.adapters.CDebugElementAdapterFactory; import org.eclipse.cdt.debug.ui.sourcelookup.DefaultSourceLocator; import org.eclipse.cdt.debug.ui.sourcelookup.OldDefaultSourceLocator; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IAdapterManager; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.IStatus; @@ -250,6 +254,11 @@ public class CDebugUIPlugin extends AbstractUIPlugin { super.start( context ); EvaluationContextManager.startup(); CDebugCorePlugin.getDefault().addCBreakpointListener( CBreakpointUpdater.getInstance() ); + + IAdapterManager manager= Platform.getAdapterManager(); + CDebugElementAdapterFactory elementAdapterFactory = new CDebugElementAdapterFactory(); + manager.registerAdapters( elementAdapterFactory, IModuleRetrieval.class ); + manager.registerAdapters( elementAdapterFactory, ICModule.class ); } /*