mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-08 02:06:01 +02:00
Bug 82264: Enhance the Shared Libraries view. Removed the Shared Libraries view.
This commit is contained in:
parent
fac0ffa530
commit
c67d109f69
12 changed files with 17 additions and 863 deletions
|
@ -1,3 +1,18 @@
|
||||||
|
2005-02-17 Mikhail Khodjaiants
|
||||||
|
Bug 82264: Enhance the Shared Libraries view.
|
||||||
|
Removed the Shared Libraries view.
|
||||||
|
* CDebugModelPresentation.java
|
||||||
|
* LoadSymbolsActionDelegate.java
|
||||||
|
* LoadSymbolsForAllActionDelegate.java
|
||||||
|
* SharedLibrariesMessages.java
|
||||||
|
* SharedLibrariesMessages.properties
|
||||||
|
* SharedLibrariesView.java
|
||||||
|
* SharedLibrariesViewContentProvider.java
|
||||||
|
* SharedLibrariesViewEventHandler.java
|
||||||
|
* ICDebugUIConstants.java
|
||||||
|
* plugin.properties
|
||||||
|
* plugin.xml
|
||||||
|
|
||||||
2005-02-17 Mikhail Khodjaiants
|
2005-02-17 Mikhail Khodjaiants
|
||||||
Bug 82264: Enhance the Shared Libraries view.
|
Bug 82264: Enhance the Shared Libraries view.
|
||||||
No need to compute the module's labels in background.
|
No need to compute the module's labels in background.
|
||||||
|
|
|
@ -13,14 +13,12 @@ pluginName=C/C++ Development Tools Debugger UI
|
||||||
providerName=Eclipse.org
|
providerName=Eclipse.org
|
||||||
|
|
||||||
MemoryView.name=Memory
|
MemoryView.name=Memory
|
||||||
SharedLibrariesView.name=Shared Libraries
|
|
||||||
ModulesView.name=Modules
|
ModulesView.name=Modules
|
||||||
SignalsView.name=Signals
|
SignalsView.name=Signals
|
||||||
|
|
||||||
CDebuggerPage.name=C Debugger UI Page
|
CDebuggerPage.name=C Debugger UI Page
|
||||||
MemoryPreferencePage.name=Memory View
|
MemoryPreferencePage.name=Memory View
|
||||||
CDebugPreferencePage.name=Debug
|
CDebugPreferencePage.name=Debug
|
||||||
SharedLibrariesPreferencePage.name=Shared Libraries View
|
|
||||||
SourcePreferencePage.name=Source Code Locations
|
SourcePreferencePage.name=Source Code Locations
|
||||||
|
|
||||||
RunMenu.label=&Run
|
RunMenu.label=&Run
|
||||||
|
|
|
@ -40,13 +40,6 @@
|
||||||
</extension>
|
</extension>
|
||||||
<extension
|
<extension
|
||||||
point="org.eclipse.ui.views">
|
point="org.eclipse.ui.views">
|
||||||
<view
|
|
||||||
name="%SharedLibrariesView.name"
|
|
||||||
icon="icons/full/cview16/sharedlibraries_view.gif"
|
|
||||||
category="org.eclipse.debug.ui"
|
|
||||||
class="org.eclipse.cdt.debug.internal.ui.views.sharedlibs.SharedLibrariesView"
|
|
||||||
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
|
|
||||||
</view>
|
|
||||||
<view
|
<view
|
||||||
name="%SignalsView.name"
|
name="%SignalsView.name"
|
||||||
icon="icons/full/cview16/signals_view.gif"
|
icon="icons/full/cview16/signals_view.gif"
|
||||||
|
@ -72,15 +65,6 @@
|
||||||
point="org.eclipse.ui.perspectiveExtensions">
|
point="org.eclipse.ui.perspectiveExtensions">
|
||||||
<perspectiveExtension
|
<perspectiveExtension
|
||||||
targetID="org.eclipse.debug.ui.DebugPerspective">
|
targetID="org.eclipse.debug.ui.DebugPerspective">
|
||||||
<view
|
|
||||||
relative="org.eclipse.debug.ui.VariableView"
|
|
||||||
visible="false"
|
|
||||||
relationship="stack"
|
|
||||||
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
|
|
||||||
</view>
|
|
||||||
<viewShortcut
|
|
||||||
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
|
|
||||||
</viewShortcut>
|
|
||||||
<view
|
<view
|
||||||
relative="org.eclipse.debug.ui.VariableView"
|
relative="org.eclipse.debug.ui.VariableView"
|
||||||
visible="false"
|
visible="false"
|
||||||
|
@ -429,45 +413,6 @@
|
||||||
id="org.eclipse.cdt.debug.internal.ui.actions.NaturalVariableFormatActionDelegate">
|
id="org.eclipse.cdt.debug.internal.ui.actions.NaturalVariableFormatActionDelegate">
|
||||||
</action>
|
</action>
|
||||||
</objectContribution>
|
</objectContribution>
|
||||||
<viewerContribution
|
|
||||||
targetID="org.eclipse.cdt.debug.ui.SharedLibrariesView"
|
|
||||||
id="org.eclipse.cdt.debug.ui.SharedLibrariesViewPopupActions">
|
|
||||||
<action
|
|
||||||
helpContextId="load_symbols_for_all_context"
|
|
||||||
label="%LoadSymbolsForAllAction.label"
|
|
||||||
tooltip="%LoadSymbolsForAllAction.tooltip"
|
|
||||||
icon="icons/full/elcl16/load_all_symbols_co.gif"
|
|
||||||
class="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsForAllActionDelegate"
|
|
||||||
style="push"
|
|
||||||
menubarPath="sharedLibrariesGroup"
|
|
||||||
id="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsForAllActionDelegate">
|
|
||||||
<enablement>
|
|
||||||
<pluginState
|
|
||||||
value="activated"
|
|
||||||
id="org.eclipse.cdt.debug.ui"/>
|
|
||||||
</enablement>
|
|
||||||
</action>
|
|
||||||
</viewerContribution>
|
|
||||||
<objectContribution
|
|
||||||
objectClass="org.eclipse.cdt.debug.core.model.ICSharedLibrary"
|
|
||||||
id="org.eclipse.cdt.debug.ui.SharedLibraryActions">
|
|
||||||
<action
|
|
||||||
label="%LoadSymbolsAction.label"
|
|
||||||
icon="icons/full/clcl16/load_symbols_co.gif"
|
|
||||||
helpContextId="load_symbols_action_context"
|
|
||||||
class="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsActionDelegate"
|
|
||||||
tooltip="%LoadSymbolsAction.tooltip"
|
|
||||||
menubarPath="sharedLibrariesGroup"
|
|
||||||
enablesFor="1"
|
|
||||||
id="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsActionDelegate">
|
|
||||||
<enablement>
|
|
||||||
<pluginState
|
|
||||||
value="activated"
|
|
||||||
id="org.eclipse.cdt.debug.ui">
|
|
||||||
</pluginState>
|
|
||||||
</enablement>
|
|
||||||
</action>
|
|
||||||
</objectContribution>
|
|
||||||
<objectContribution
|
<objectContribution
|
||||||
objectClass="org.eclipse.cdt.debug.core.model.ICSignal"
|
objectClass="org.eclipse.cdt.debug.core.model.ICSignal"
|
||||||
id="org.eclipse.cdt.debug.ui.SignalActions">
|
id="org.eclipse.cdt.debug.ui.SignalActions">
|
||||||
|
@ -897,41 +842,6 @@
|
||||||
</enablement>
|
</enablement>
|
||||||
</action>
|
</action>
|
||||||
</viewContribution>
|
</viewContribution>
|
||||||
<viewContribution
|
|
||||||
targetID="org.eclipse.cdt.debug.ui.SharedLibrariesView"
|
|
||||||
id="org.eclipse.debug.ui.sharedLibrariesView.menu">
|
|
||||||
<action
|
|
||||||
label="%ShowFullPathsAction.label"
|
|
||||||
style="toggle"
|
|
||||||
icon="icons/full/clcl16/show_paths.gif"
|
|
||||||
helpContextId="show_full_paths_context"
|
|
||||||
class="org.eclipse.cdt.debug.internal.ui.actions.ShowFullPathsAction"
|
|
||||||
tooltip="%ShowFullPathsAction.tooltip"
|
|
||||||
menubarPath="cDebugActions"
|
|
||||||
id="org.eclipse.cdt.debug.internal.ui.actions.ShowFullPathsAction">
|
|
||||||
</action>
|
|
||||||
</viewContribution>
|
|
||||||
<viewContribution
|
|
||||||
targetID="org.eclipse.cdt.debug.ui.SharedLibrariesView"
|
|
||||||
id="org.eclipse.debug.ui.sharedLibrariesView.toolbar">
|
|
||||||
<action
|
|
||||||
helpContextId="load_symbols_for_all_context"
|
|
||||||
disabledIcon="icons/full/dlcl16/load_all_symbols_co.gif"
|
|
||||||
hoverIcon="icons/full/clcl16/load_all_symbols_co.gif"
|
|
||||||
toolbarPath="sharedLibrariesGroupLoadSymbolsForAllAction.label"
|
|
||||||
label="%LoadSymbolsForAllAction.label"
|
|
||||||
tooltip="%LoadSymbolsForAllAction.tooltip"
|
|
||||||
icon="icons/full/elcl16/load_all_symbols_co.gif"
|
|
||||||
class="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsForAllActionDelegate"
|
|
||||||
style="push"
|
|
||||||
id="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsForAllActionDelegate">
|
|
||||||
<enablement>
|
|
||||||
<pluginState
|
|
||||||
value="activated"
|
|
||||||
id="org.eclipse.cdt.debug.ui"/>
|
|
||||||
</enablement>
|
|
||||||
</action>
|
|
||||||
</viewContribution>
|
|
||||||
<viewContribution
|
<viewContribution
|
||||||
targetID="org.eclipse.debug.ui.RegisterView"
|
targetID="org.eclipse.debug.ui.RegisterView"
|
||||||
id="org.eclipse.debug.ui.registersView.toolbar">
|
id="org.eclipse.debug.ui.registersView.toolbar">
|
||||||
|
@ -1116,10 +1026,6 @@
|
||||||
viewId="org.eclipse.debug.ui.MemoryView"
|
viewId="org.eclipse.debug.ui.MemoryView"
|
||||||
contextId="org.eclipse.cdt.debug.ui.debugging">
|
contextId="org.eclipse.cdt.debug.ui.debugging">
|
||||||
</contextViewBinding>
|
</contextViewBinding>
|
||||||
<contextViewBinding
|
|
||||||
viewId="org.eclipse.cdt.debug.ui.SharedLibrariesView"
|
|
||||||
contextId="org.eclipse.cdt.debug.ui.debugging">
|
|
||||||
</contextViewBinding>
|
|
||||||
<contextViewBinding
|
<contextViewBinding
|
||||||
viewId="org.eclipse.cdt.debug.ui.SignalsView"
|
viewId="org.eclipse.cdt.debug.ui.SignalsView"
|
||||||
contextId="org.eclipse.cdt.debug.ui.debugging">
|
contextId="org.eclipse.cdt.debug.ui.debugging">
|
||||||
|
|
|
@ -12,7 +12,6 @@ package org.eclipse.cdt.debug.internal.ui;
|
||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.resources.FileStorage;
|
import org.eclipse.cdt.core.resources.FileStorage;
|
||||||
import org.eclipse.cdt.debug.core.CDebugUtils;
|
import org.eclipse.cdt.debug.core.CDebugUtils;
|
||||||
import org.eclipse.cdt.debug.core.cdi.ICDIBreakpointHit;
|
import org.eclipse.cdt.debug.core.cdi.ICDIBreakpointHit;
|
||||||
|
@ -33,7 +32,6 @@ import org.eclipse.cdt.debug.core.model.ICFunctionBreakpoint;
|
||||||
import org.eclipse.cdt.debug.core.model.ICGlobalVariable;
|
import org.eclipse.cdt.debug.core.model.ICGlobalVariable;
|
||||||
import org.eclipse.cdt.debug.core.model.ICLineBreakpoint;
|
import org.eclipse.cdt.debug.core.model.ICLineBreakpoint;
|
||||||
import org.eclipse.cdt.debug.core.model.ICModule;
|
import org.eclipse.cdt.debug.core.model.ICModule;
|
||||||
import org.eclipse.cdt.debug.core.model.ICSharedLibrary;
|
|
||||||
import org.eclipse.cdt.debug.core.model.ICSignal;
|
import org.eclipse.cdt.debug.core.model.ICSignal;
|
||||||
import org.eclipse.cdt.debug.core.model.ICStackFrame;
|
import org.eclipse.cdt.debug.core.model.ICStackFrame;
|
||||||
import org.eclipse.cdt.debug.core.model.ICThread;
|
import org.eclipse.cdt.debug.core.model.ICThread;
|
||||||
|
@ -244,9 +242,6 @@ public class CDebugModelPresentation extends LabelProvider implements IDebugMode
|
||||||
if ( element instanceof IVariable ) {
|
if ( element instanceof IVariable ) {
|
||||||
return getVariableImage( (IVariable)element );
|
return getVariableImage( (IVariable)element );
|
||||||
}
|
}
|
||||||
if ( element instanceof ICSharedLibrary ) {
|
|
||||||
return getSharedLibraryImage( (ICSharedLibrary)element );
|
|
||||||
}
|
|
||||||
if ( element instanceof ICModule ) {
|
if ( element instanceof ICModule ) {
|
||||||
return getModuleImage( (ICModule)element );
|
return getModuleImage( (ICModule)element );
|
||||||
}
|
}
|
||||||
|
@ -334,10 +329,6 @@ public class CDebugModelPresentation extends LabelProvider implements IDebugMode
|
||||||
boolean showQualified = isShowQualifiedNames();
|
boolean showQualified = isShowQualifiedNames();
|
||||||
StringBuffer label = new StringBuffer();
|
StringBuffer label = new StringBuffer();
|
||||||
try {
|
try {
|
||||||
if ( element instanceof ICSharedLibrary ) {
|
|
||||||
label.append( getSharedLibraryText( (ICSharedLibrary)element, showQualified ) );
|
|
||||||
return label.toString();
|
|
||||||
}
|
|
||||||
if ( element instanceof ICModule ) {
|
if ( element instanceof ICModule ) {
|
||||||
label.append( getModuleText( (ICModule)element, showQualified ) );
|
label.append( getModuleText( (ICModule)element, showQualified ) );
|
||||||
return label.toString();
|
return label.toString();
|
||||||
|
@ -404,20 +395,6 @@ public class CDebugModelPresentation extends LabelProvider implements IDebugMode
|
||||||
return getDefaultText( element );
|
return getDefaultText( element );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getSharedLibraryText( ICSharedLibrary library, boolean qualified ) {
|
|
||||||
String label = new String();
|
|
||||||
String name = library.getFileName();
|
|
||||||
if ( !isEmpty( name ) ) {
|
|
||||||
IPath path = new Path( library.getFileName() );
|
|
||||||
if ( !path.isEmpty() )
|
|
||||||
label += ( qualified ? path.toOSString() : path.lastSegment() );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
label += CDebugUIMessages.getString( "CDebugModelPresentation.unknown_1" ); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String getModuleText( ICModule module, boolean qualified ) {
|
protected String getModuleText( ICModule module, boolean qualified ) {
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
IPath path = module.getImageName();
|
IPath path = module.getImageName();
|
||||||
|
@ -455,10 +432,6 @@ public class CDebugModelPresentation extends LabelProvider implements IDebugMode
|
||||||
return this.fImageCache;
|
return this.fImageCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CDebugImageDescriptorRegistry getDebugImageRegistry() {
|
|
||||||
return this.fDebugImageRegistry;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isEmpty( String string ) {
|
private boolean isEmpty( String string ) {
|
||||||
return ( string == null || string.trim().length() == 0 );
|
return ( string == null || string.trim().length() == 0 );
|
||||||
}
|
}
|
||||||
|
@ -653,16 +626,6 @@ public class CDebugModelPresentation extends LabelProvider implements IDebugMode
|
||||||
return fDebugImageRegistry.get( DebugUITools.getImageDescriptor( IDebugUIConstants.IMG_OBJS_EXPRESSION ) );
|
return fDebugImageRegistry.get( DebugUITools.getImageDescriptor( IDebugUIConstants.IMG_OBJS_EXPRESSION ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Image getSharedLibraryImage( ICSharedLibrary element ) {
|
|
||||||
if ( element.areSymbolsLoaded() ) {
|
|
||||||
return getImageCache().getImageFor(
|
|
||||||
new OverlayImageDescriptor( getDebugImageRegistry().get( CDebugImages.DESC_OBJS_SHARED_LIBRARY_WITH_SYMBOLS ),
|
|
||||||
new ImageDescriptor[] { null, CDebugImages.DESC_OVRS_SYMBOLS, null, null } ) );
|
|
||||||
}
|
|
||||||
return CDebugUIPlugin.getImageDescriptorRegistry().get( CDebugImages.DESC_OBJS_SHARED_LIBRARY );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected Image getModuleImage( ICModule element ) {
|
protected Image getModuleImage( ICModule element ) {
|
||||||
switch( element.getType() ) {
|
switch( element.getType() ) {
|
||||||
case ICModule.EXECUTABLE:
|
case ICModule.EXECUTABLE:
|
||||||
|
|
|
@ -1,110 +0,0 @@
|
||||||
/*******************************************************************************
|
|
||||||
* Copyright (c) 2000, 2004 QNX Software Systems and others.
|
|
||||||
* All rights reserved. This program and the accompanying materials
|
|
||||||
* are made available under the terms of the Common Public License v1.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/cpl-v10.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* QNX Software Systems - Initial API and implementation
|
|
||||||
*******************************************************************************/
|
|
||||||
package org.eclipse.cdt.debug.internal.ui.actions;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.CDIDebugModel;
|
|
||||||
import org.eclipse.cdt.debug.core.CDebugUtils;
|
|
||||||
import org.eclipse.cdt.debug.core.model.ICSharedLibrary;
|
|
||||||
import org.eclipse.cdt.debug.internal.core.ICDebugInternalConstants;
|
|
||||||
import org.eclipse.core.runtime.IStatus;
|
|
||||||
import org.eclipse.core.runtime.MultiStatus;
|
|
||||||
import org.eclipse.core.runtime.Status;
|
|
||||||
import org.eclipse.debug.core.DebugException;
|
|
||||||
import org.eclipse.debug.core.DebugPlugin;
|
|
||||||
import org.eclipse.jface.action.IAction;
|
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
|
||||||
import org.eclipse.ui.IObjectActionDelegate;
|
|
||||||
import org.eclipse.ui.IWorkbenchPart;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enter type comment.
|
|
||||||
*
|
|
||||||
* @since: Jan 17, 2003
|
|
||||||
*/
|
|
||||||
public class LoadSymbolsActionDelegate implements IObjectActionDelegate {
|
|
||||||
|
|
||||||
private ICSharedLibrary fLibrary;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for LoadSymbolsActionDelegate.
|
|
||||||
*/
|
|
||||||
public LoadSymbolsActionDelegate() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
|
|
||||||
*/
|
|
||||||
public void setActivePart( IAction action, IWorkbenchPart targetPart ) {
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
|
|
||||||
*/
|
|
||||||
public void run( IAction action ) {
|
|
||||||
final ICSharedLibrary library = getSharedLibrary();
|
|
||||||
if ( library != null ) {
|
|
||||||
|
|
||||||
DebugPlugin.getDefault().asyncExec(
|
|
||||||
new Runnable() {
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
doAction( getSharedLibrary() );
|
|
||||||
}
|
|
||||||
catch( DebugException e ) {
|
|
||||||
failed( e );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
|
|
||||||
*/
|
|
||||||
public void selectionChanged( IAction action, ISelection selection ) {
|
|
||||||
if ( selection instanceof IStructuredSelection ) {
|
|
||||||
Object element = ((IStructuredSelection)selection).getFirstElement();
|
|
||||||
if ( element instanceof ICSharedLibrary ) {
|
|
||||||
boolean enabled = enablesFor( (ICSharedLibrary)element );
|
|
||||||
action.setEnabled( enabled );
|
|
||||||
if ( enabled ) {
|
|
||||||
setSharedLibrary( (ICSharedLibrary)element );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
action.setEnabled( false );
|
|
||||||
setSharedLibrary( null );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void doAction( ICSharedLibrary library ) throws DebugException {
|
|
||||||
library.loadSymbols();
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean enablesFor(ICSharedLibrary library) {
|
|
||||||
return ( library != null && !library.areSymbolsLoaded() );
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setSharedLibrary( ICSharedLibrary library ) {
|
|
||||||
fLibrary = library;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ICSharedLibrary getSharedLibrary() {
|
|
||||||
return fLibrary;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void failed( Throwable e ) {
|
|
||||||
MultiStatus ms = new MultiStatus( CDIDebugModel.getPluginIdentifier(), ICDebugInternalConstants.STATUS_CODE_ERROR, ActionMessages.getString( "LoadSymbolsActionDelegate.Operation_failed_1" ), null ); //$NON-NLS-1$
|
|
||||||
ms.add( new Status( IStatus.ERROR, CDIDebugModel.getPluginIdentifier(), ICDebugInternalConstants.STATUS_CODE_ERROR, e.getMessage(), e ) );
|
|
||||||
CDebugUtils.error( ms, this );
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -24,7 +24,7 @@ import org.eclipse.debug.core.model.IDebugElement;
|
||||||
import org.eclipse.jface.action.IAction;
|
import org.eclipse.jface.action.IAction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The delegate for the "Load Symbols For All" action of the Shared Libraries view.
|
* The delegate for the "Load Symbols For All" action of the Modules view.
|
||||||
*/
|
*/
|
||||||
public class LoadSymbolsForAllActionDelegate extends AbstractViewActionDelegate {
|
public class LoadSymbolsForAllActionDelegate extends AbstractViewActionDelegate {
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ public class LoadSymbolsForAllActionDelegate extends AbstractViewActionDelegate
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
target.loadSymbols();
|
target.loadSymbolsForAllModules();
|
||||||
}
|
}
|
||||||
catch( DebugException e ) {
|
catch( DebugException e ) {
|
||||||
failed( e );
|
failed( e );
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
/**********************************************************************
|
|
||||||
* 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 Common Public License v1.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/cpl-v10.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* QNX Software Systems - Initial API and implementation
|
|
||||||
***********************************************************************/
|
|
||||||
|
|
||||||
package org.eclipse.cdt.debug.internal.ui.views.sharedlibs;
|
|
||||||
|
|
||||||
import java.util.MissingResourceException;
|
|
||||||
import java.util.ResourceBundle;
|
|
||||||
|
|
||||||
public class SharedLibrariesMessages {
|
|
||||||
|
|
||||||
private static final String BUNDLE_NAME = "org.eclipse.cdt.debug.internal.ui.views.sharedlibs.SharedLibrariesMessages"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
|
|
||||||
|
|
||||||
private SharedLibrariesMessages() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getString( String key ) {
|
|
||||||
try {
|
|
||||||
return RESOURCE_BUNDLE.getString( key );
|
|
||||||
}
|
|
||||||
catch (MissingResourceException e) {
|
|
||||||
return '!' + key + '!';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
###############################################################################
|
|
||||||
# Copyright (c) 2003, 2004 QNX Software Systems and others.
|
|
||||||
# All rights reserved. This program and the accompanying materials
|
|
||||||
# are made available under the terms of the Common Public License v1.0
|
|
||||||
# which accompanies this distribution, and is available at
|
|
||||||
# http://www.eclipse.org/legal/cpl-v10.html
|
|
||||||
#
|
|
||||||
# Contributors:
|
|
||||||
# QNX Software Systems - initial API and implementation
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
SharedLibrariesView.Name_1=Name
|
|
||||||
SharedLibrariesView.Start_Address_1=Start Address
|
|
||||||
SharedLibrariesView.End_Address_1=End Address
|
|
||||||
SharedLibrariesView.Loaded_1=Loaded
|
|
||||||
SharedLibrariesView.Not_loaded_1=Not loaded
|
|
||||||
SharedLibrariesView.Symbols_1=Symbols
|
|
|
@ -1,281 +0,0 @@
|
||||||
/**********************************************************************
|
|
||||||
* 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 Common Public License v1.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/cpl-v10.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* QNX Software Systems - Initial API and implementation
|
|
||||||
***********************************************************************/
|
|
||||||
package org.eclipse.cdt.debug.internal.ui.views.sharedlibs;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.model.ICDebugTarget;
|
|
||||||
import org.eclipse.cdt.debug.core.model.ICSharedLibrary;
|
|
||||||
import org.eclipse.cdt.debug.internal.ui.CDebugModelPresentation;
|
|
||||||
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
|
||||||
import org.eclipse.cdt.debug.internal.ui.PixelConverter;
|
|
||||||
import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler;
|
|
||||||
import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandlerView;
|
|
||||||
import org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler;
|
|
||||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
|
||||||
import org.eclipse.cdt.debug.ui.ICDebugUIConstants;
|
|
||||||
import org.eclipse.debug.core.DebugException;
|
|
||||||
import org.eclipse.debug.core.model.IDebugElement;
|
|
||||||
import org.eclipse.debug.ui.IDebugModelPresentation;
|
|
||||||
import org.eclipse.debug.ui.IDebugUIConstants;
|
|
||||||
import org.eclipse.jface.action.IMenuManager;
|
|
||||||
import org.eclipse.jface.action.IToolBarManager;
|
|
||||||
import org.eclipse.jface.action.Separator;
|
|
||||||
import org.eclipse.jface.util.IPropertyChangeListener;
|
|
||||||
import org.eclipse.jface.util.PropertyChangeEvent;
|
|
||||||
import org.eclipse.jface.viewers.IBaseLabelProvider;
|
|
||||||
import org.eclipse.jface.viewers.IContentProvider;
|
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
|
||||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
|
||||||
import org.eclipse.jface.viewers.ITableLabelProvider;
|
|
||||||
import org.eclipse.jface.viewers.StructuredSelection;
|
|
||||||
import org.eclipse.jface.viewers.StructuredViewer;
|
|
||||||
import org.eclipse.jface.viewers.TableTreeViewer;
|
|
||||||
import org.eclipse.jface.viewers.Viewer;
|
|
||||||
import org.eclipse.swt.SWT;
|
|
||||||
import org.eclipse.swt.graphics.Image;
|
|
||||||
import org.eclipse.swt.widgets.Composite;
|
|
||||||
import org.eclipse.swt.widgets.Table;
|
|
||||||
import org.eclipse.swt.widgets.TableColumn;
|
|
||||||
import org.eclipse.ui.INullSelectionListener;
|
|
||||||
import org.eclipse.ui.ISelectionListener;
|
|
||||||
import org.eclipse.ui.IViewPart;
|
|
||||||
import org.eclipse.ui.IWorkbenchActionConstants;
|
|
||||||
import org.eclipse.ui.IWorkbenchPart;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Displays shared libraries.
|
|
||||||
*/
|
|
||||||
public class SharedLibrariesView extends AbstractDebugEventHandlerView
|
|
||||||
implements ISelectionListener,
|
|
||||||
INullSelectionListener,
|
|
||||||
IPropertyChangeListener,
|
|
||||||
IDebugExceptionHandler {
|
|
||||||
|
|
||||||
public class SharedLibrariesLabelProvider extends CDebugModelPresentation implements ITableLabelProvider {
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
|
|
||||||
*/
|
|
||||||
public Image getColumnImage( Object element, int columnIndex ) {
|
|
||||||
if ( element instanceof ICSharedLibrary && columnIndex == 1 )
|
|
||||||
return getImage( element );
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
|
|
||||||
*/
|
|
||||||
public String getColumnText( Object element, int columnIndex ) {
|
|
||||||
if ( element instanceof ICSharedLibrary ) {
|
|
||||||
ICSharedLibrary library = (ICSharedLibrary)element;
|
|
||||||
switch( columnIndex ) {
|
|
||||||
case 0:
|
|
||||||
return ""; //$NON-NLS-1$
|
|
||||||
case 1:
|
|
||||||
return getText( element );
|
|
||||||
case 2:
|
|
||||||
return ( library.areSymbolsLoaded() ) ? SharedLibrariesMessages.getString( "SharedLibrariesView.Loaded_1" ) : SharedLibrariesMessages.getString( "SharedLibrariesView.Not_loaded_1" ); //$NON-NLS-1$ //$NON-NLS-2$
|
|
||||||
case 3:
|
|
||||||
return library.getStartAddress().toHexAddressString(); //$NON-NLS-1$
|
|
||||||
case 4:
|
|
||||||
return library.getEndAddress().toHexAddressString(); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
|
|
||||||
*/
|
|
||||||
protected Viewer createViewer( Composite parent ) {
|
|
||||||
TableTreeViewer viewer = new TableTreeViewer( parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL );
|
|
||||||
Table table = viewer.getTableTree().getTable();
|
|
||||||
table.setLinesVisible( true );
|
|
||||||
table.setHeaderVisible( true );
|
|
||||||
|
|
||||||
// Create the table columns
|
|
||||||
new TableColumn( table, SWT.NULL );
|
|
||||||
new TableColumn( table, SWT.NULL );
|
|
||||||
new TableColumn( table, SWT.NULL );
|
|
||||||
new TableColumn( table, SWT.NULL );
|
|
||||||
new TableColumn( table, SWT.NULL );
|
|
||||||
TableColumn[] columns = table.getColumns();
|
|
||||||
columns[1].setResizable( true );
|
|
||||||
columns[2].setResizable( true );
|
|
||||||
columns[3].setResizable( true );
|
|
||||||
columns[4].setResizable( true );
|
|
||||||
|
|
||||||
columns[0].setText( "" ); //$NON-NLS-1$
|
|
||||||
columns[1].setText( SharedLibrariesMessages.getString( "SharedLibrariesView.Name_1" ) ); //$NON-NLS-1$
|
|
||||||
columns[2].setText( SharedLibrariesMessages.getString( "SharedLibrariesView.Symbols_1" ) ); //$NON-NLS-1$
|
|
||||||
columns[3].setText( SharedLibrariesMessages.getString( "SharedLibrariesView.Start_Address_1" ) ); //$NON-NLS-1$
|
|
||||||
columns[4].setText( SharedLibrariesMessages.getString( "SharedLibrariesView.End_Address_1" ) ); //$NON-NLS-1$
|
|
||||||
|
|
||||||
PixelConverter pc = new PixelConverter( parent );
|
|
||||||
columns[0].setWidth( pc.convertWidthInCharsToPixels( 3 ) );
|
|
||||||
columns[1].setWidth( pc.convertWidthInCharsToPixels( 50 ) );
|
|
||||||
columns[2].setWidth( pc.convertWidthInCharsToPixels( 20 ) );
|
|
||||||
columns[3].setWidth( pc.convertWidthInCharsToPixels( 20 ) );
|
|
||||||
columns[4].setWidth( pc.convertWidthInCharsToPixels( 20 ) );
|
|
||||||
|
|
||||||
viewer.setContentProvider( createContentProvider() );
|
|
||||||
viewer.setLabelProvider( new SharedLibrariesLabelProvider() );
|
|
||||||
|
|
||||||
CDebugUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener( this );
|
|
||||||
|
|
||||||
// listen to selection in debug view
|
|
||||||
getSite().getPage().addSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
|
|
||||||
setEventHandler( createEventHandler( viewer ) );
|
|
||||||
|
|
||||||
return viewer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.debug.ui.AbstractDebugView#createActions()
|
|
||||||
*/
|
|
||||||
protected void createActions() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.debug.ui.AbstractDebugView#getHelpContextId()
|
|
||||||
*/
|
|
||||||
protected String getHelpContextId() {
|
|
||||||
return ICDebugHelpContextIds.SHARED_LIBRARIES_VIEW;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.debug.ui.AbstractDebugView#fillContextMenu(IMenuManager)
|
|
||||||
*/
|
|
||||||
protected void fillContextMenu( IMenuManager menu ) {
|
|
||||||
menu.add( new Separator( ICDebugUIConstants.EMPTY_SHARED_LIBRARIES_GROUP ) );
|
|
||||||
menu.add( new Separator( ICDebugUIConstants.SHARED_LIBRARIES_GROUP ) );
|
|
||||||
menu.add( new Separator( ICDebugUIConstants.EMPTY_REFRESH_GROUP ) );
|
|
||||||
menu.add( new Separator( ICDebugUIConstants.REFRESH_GROUP ) );
|
|
||||||
menu.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) );
|
|
||||||
updateObjects();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.debug.ui.AbstractDebugView#configureToolBar(IToolBarManager)
|
|
||||||
*/
|
|
||||||
protected void configureToolBar( IToolBarManager tbm ) {
|
|
||||||
tbm.add( new Separator( ICDebugUIConstants.SHARED_LIBRARIES_GROUP ) );
|
|
||||||
tbm.add( new Separator( ICDebugUIConstants.REFRESH_GROUP ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.ui.ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
|
|
||||||
*/
|
|
||||||
public void selectionChanged( IWorkbenchPart part, ISelection selection ) {
|
|
||||||
if ( !isAvailable() || !isVisible() )
|
|
||||||
return;
|
|
||||||
if ( selection == null )
|
|
||||||
setViewerInput( new StructuredSelection() );
|
|
||||||
else if ( selection instanceof IStructuredSelection )
|
|
||||||
setViewerInput( (IStructuredSelection)selection );
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(PropertyChangeEvent)
|
|
||||||
*/
|
|
||||||
public void propertyChange( PropertyChangeEvent event ) {
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler#handleException(DebugException)
|
|
||||||
*/
|
|
||||||
public void handleException( DebugException e ) {
|
|
||||||
showMessage( e.getMessage() );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setViewerInput( IStructuredSelection ssel ) {
|
|
||||||
ICDebugTarget target = null;
|
|
||||||
if ( ssel != null && ssel.size() == 1 ) {
|
|
||||||
Object input = ssel.getFirstElement();
|
|
||||||
if ( input instanceof IDebugElement && ((IDebugElement)input).getDebugTarget() instanceof ICDebugTarget )
|
|
||||||
target = (ICDebugTarget)((IDebugElement)input).getDebugTarget();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( getViewer() == null )
|
|
||||||
return;
|
|
||||||
|
|
||||||
Object current = getViewer().getInput();
|
|
||||||
if ( current != null && current.equals( target ) ) {
|
|
||||||
updateObjects();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
showViewer();
|
|
||||||
getViewer().setInput( target );
|
|
||||||
updateObjects();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates this view's event handler.
|
|
||||||
*
|
|
||||||
* @param viewer the viewer associated with this view
|
|
||||||
* @return an event handler
|
|
||||||
*/
|
|
||||||
protected AbstractDebugEventHandler createEventHandler( Viewer viewer ) {
|
|
||||||
return new SharedLibrariesViewEventHandler( this );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates this view's content provider.
|
|
||||||
*
|
|
||||||
* @return a content provider
|
|
||||||
*/
|
|
||||||
protected IContentProvider createContentProvider() {
|
|
||||||
SharedLibrariesViewContentProvider cp = new SharedLibrariesViewContentProvider();
|
|
||||||
cp.setExceptionHandler( this );
|
|
||||||
return cp;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.debug.ui.AbstractDebugView#becomesHidden()
|
|
||||||
*/
|
|
||||||
protected void becomesHidden() {
|
|
||||||
setViewerInput( new StructuredSelection() );
|
|
||||||
super.becomesHidden();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.debug.ui.AbstractDebugView#becomesVisible()
|
|
||||||
*/
|
|
||||||
protected void becomesVisible() {
|
|
||||||
super.becomesVisible();
|
|
||||||
IViewPart part = getSite().getPage().findView( IDebugUIConstants.ID_DEBUG_VIEW );
|
|
||||||
if ( part != null ) {
|
|
||||||
ISelection selection = getSite().getPage().getSelection( IDebugUIConstants.ID_DEBUG_VIEW );
|
|
||||||
selectionChanged( part, selection );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.ui.IWorkbenchPart#dispose()
|
|
||||||
*/
|
|
||||||
public void dispose() {
|
|
||||||
getSite().getPage().removeSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
|
|
||||||
CDebugUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener( this );
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.eclipse.debug.ui.IDebugView#getPresentation(java.lang.String)
|
|
||||||
*/
|
|
||||||
public IDebugModelPresentation getPresentation( String id ) {
|
|
||||||
StructuredViewer viewer = getStructuredViewer();
|
|
||||||
if ( viewer != null ) {
|
|
||||||
IBaseLabelProvider lp = viewer.getLabelProvider();
|
|
||||||
return ( lp instanceof SharedLibrariesLabelProvider ) ? (SharedLibrariesLabelProvider)lp : null;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,191 +0,0 @@
|
||||||
/**********************************************************************
|
|
||||||
* 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 Common Public License v1.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/cpl-v10.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* QNX Software Systems - Initial API and implementation
|
|
||||||
***********************************************************************/
|
|
||||||
package org.eclipse.cdt.debug.internal.ui.views.sharedlibs;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.model.ICDebugTarget;
|
|
||||||
import org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler;
|
|
||||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
|
||||||
import org.eclipse.debug.core.DebugException;
|
|
||||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
|
||||||
import org.eclipse.jface.viewers.Viewer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides content for the shared libraries view.
|
|
||||||
*
|
|
||||||
* @since: Jan 21, 2003
|
|
||||||
*/
|
|
||||||
public class SharedLibrariesViewContentProvider implements ITreeContentProvider {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A table that maps children to their parent element such that this
|
|
||||||
* content provider can walk back up the parent chain (since values do not
|
|
||||||
* know their parent). Map of <code>IVariable</code> (child) -><code>IVariable</code>
|
|
||||||
* (parent).
|
|
||||||
*/
|
|
||||||
private HashMap fParentCache;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handler for exceptions as content is retrieved
|
|
||||||
*/
|
|
||||||
private IDebugExceptionHandler fExceptionHandler;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for SharedLibrariesViewContentProvider.
|
|
||||||
*/
|
|
||||||
public SharedLibrariesViewContentProvider() {
|
|
||||||
setParentCache( new HashMap( 10 ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(Object)
|
|
||||||
*/
|
|
||||||
public Object[] getChildren( Object parent ) {
|
|
||||||
if ( parent instanceof ICDebugTarget ) {
|
|
||||||
Object[] children = null;
|
|
||||||
ICDebugTarget target = (ICDebugTarget)parent;
|
|
||||||
try {
|
|
||||||
if ( target != null )
|
|
||||||
children = target.getSharedLibraries();
|
|
||||||
if ( children != null ) {
|
|
||||||
cache( parent, children );
|
|
||||||
return children;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch( DebugException e ) {
|
|
||||||
if ( getExceptionHandler() != null )
|
|
||||||
getExceptionHandler().handleException( e );
|
|
||||||
else
|
|
||||||
CDebugUIPlugin.log( e );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return new Object[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Caches the given elememts as children of the given parent.
|
|
||||||
*
|
|
||||||
* @param parent
|
|
||||||
* parent element
|
|
||||||
* @param children
|
|
||||||
* children elements
|
|
||||||
*/
|
|
||||||
protected void cache( Object parent, Object[] children ) {
|
|
||||||
for ( int i = 0; i < children.length; i++ ) {
|
|
||||||
getParentCache().put( children[i], parent );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(Object)
|
|
||||||
*/
|
|
||||||
public Object getParent( Object element ) {
|
|
||||||
return getParentCache().get( element );
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(Object)
|
|
||||||
*/
|
|
||||||
public boolean hasChildren( Object parent ) {
|
|
||||||
if ( parent instanceof ICDebugTarget ) {
|
|
||||||
try {
|
|
||||||
ICDebugTarget target = (ICDebugTarget)parent;
|
|
||||||
return target.hasSharedLibraries();
|
|
||||||
}
|
|
||||||
catch( DebugException e ) {
|
|
||||||
CDebugUIPlugin.log( e );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
|
|
||||||
*/
|
|
||||||
public Object[] getElements( Object inputElement ) {
|
|
||||||
return getChildren( inputElement );
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
|
|
||||||
*/
|
|
||||||
public void dispose() {
|
|
||||||
setParentCache( null );
|
|
||||||
setExceptionHandler( null );
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer,
|
|
||||||
* Object, Object)
|
|
||||||
*/
|
|
||||||
public void inputChanged( Viewer viewer, Object oldInput, Object newInput ) {
|
|
||||||
clearCache();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void clearCache() {
|
|
||||||
if ( getParentCache() != null ) {
|
|
||||||
getParentCache().clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the cached parent for the given children
|
|
||||||
*
|
|
||||||
* @param children
|
|
||||||
* for which to remove cached parents
|
|
||||||
*/
|
|
||||||
public void removeCache( Object[] children ) {
|
|
||||||
if ( getParentCache() != null ) {
|
|
||||||
for ( int i = 0; i < children.length; i++ ) {
|
|
||||||
getParentCache().remove( children[i] );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets an exception handler for this content provider.
|
|
||||||
*
|
|
||||||
* @param handler debug exception handler or <code>null</code>
|
|
||||||
*/
|
|
||||||
protected void setExceptionHandler( IDebugExceptionHandler handler ) {
|
|
||||||
this.fExceptionHandler = handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the exception handler for this content provider.
|
|
||||||
*
|
|
||||||
* @return debug exception handler or <code>null</code>
|
|
||||||
*/
|
|
||||||
protected IDebugExceptionHandler getExceptionHandler() {
|
|
||||||
return this.fExceptionHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
private HashMap getParentCache() {
|
|
||||||
return this.fParentCache;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setParentCache( HashMap parentCache ) {
|
|
||||||
this.fParentCache = parentCache;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,80 +0,0 @@
|
||||||
/**********************************************************************
|
|
||||||
* 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 Common Public License v1.0
|
|
||||||
* which accompanies this distribution, and is available at
|
|
||||||
* http://www.eclipse.org/legal/cpl-v10.html
|
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* QNX Software Systems - Initial API and implementation
|
|
||||||
***********************************************************************/
|
|
||||||
package org.eclipse.cdt.debug.internal.ui.views.sharedlibs;
|
|
||||||
|
|
||||||
import org.eclipse.cdt.debug.core.model.ICSharedLibrary;
|
|
||||||
import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler;
|
|
||||||
import org.eclipse.debug.core.DebugEvent;
|
|
||||||
import org.eclipse.debug.core.model.IDebugTarget;
|
|
||||||
import org.eclipse.debug.ui.AbstractDebugView;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Updates the shared libraries view.
|
|
||||||
*
|
|
||||||
* @since: Jan 21, 2003
|
|
||||||
*/
|
|
||||||
public class SharedLibrariesViewEventHandler extends AbstractDebugEventHandler {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a new event handler on the given view
|
|
||||||
*
|
|
||||||
* @param view shared libraries view
|
|
||||||
*/
|
|
||||||
public SharedLibrariesViewEventHandler( 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.CREATE:
|
|
||||||
case DebugEvent.TERMINATE:
|
|
||||||
if ( event.getSource() instanceof IDebugTarget || event.getSource() instanceof ICSharedLibrary )
|
|
||||||
refresh();
|
|
||||||
break;
|
|
||||||
case DebugEvent.CHANGE :
|
|
||||||
if ( event.getSource() instanceof ICSharedLibrary )
|
|
||||||
refresh( event.getSource() );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#refresh()
|
|
||||||
*/
|
|
||||||
public void refresh() {
|
|
||||||
if ( isAvailable() ) {
|
|
||||||
getView().showViewer();
|
|
||||||
getTableTreeViewer().refresh();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#refresh(java.lang.Object)
|
|
||||||
*/
|
|
||||||
protected void refresh( Object element ) {
|
|
||||||
if ( isAvailable() ) {
|
|
||||||
getView().showViewer();
|
|
||||||
getTableTreeViewer().refresh( element );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -59,21 +59,6 @@ public interface ICDebugUIConstants {
|
||||||
*/
|
*/
|
||||||
public static final String REFRESH_GROUP = "refreshGroup"; //$NON-NLS-1$
|
public static final String REFRESH_GROUP = "refreshGroup"; //$NON-NLS-1$
|
||||||
|
|
||||||
/**
|
|
||||||
* Identifier for an empty group preceeding a
|
|
||||||
* shared libraries group in a menu (value <code>"
|
|
||||||
* emptySharedLibrariesGroup"
|
|
||||||
* </code>).
|
|
||||||
*/
|
|
||||||
public static final String EMPTY_SHARED_LIBRARIES_GROUP = "emptySharedLibrariesGroup"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Identifier for a shared libraries group in a menu (value <code>"
|
|
||||||
* sharedLibrariesGroup"
|
|
||||||
* </code>).
|
|
||||||
*/
|
|
||||||
public static final String SHARED_LIBRARIES_GROUP = "sharedLibrariesGroup"; //$NON-NLS-1$
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Identifier for an empty group preceeding a
|
* Identifier for an empty group preceeding a
|
||||||
* modules group in a menu (value <code>"emptyModulesGroup"</code>).
|
* modules group in a menu (value <code>"emptyModulesGroup"</code>).
|
||||||
|
|
Loading…
Add table
Reference in a new issue