mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Changes in the Shared Libraries and the Signals views.
This commit is contained in:
parent
863c45ab6c
commit
129a37e32a
27 changed files with 1144 additions and 869 deletions
|
@ -1,3 +1,32 @@
|
|||
2004-04-01 Mikhail Khodjaiants
|
||||
Changes in the Shared Libraries and the Signals views.
|
||||
* ActionMessages.properties
|
||||
* ActionMessages.java
|
||||
* LoadSymbolsActionDelegate.java
|
||||
* LoadSymbolsForAllAction.java
|
||||
* ShowFullPathsAction.java
|
||||
* SignalActionDelegate.java
|
||||
* SignalPropertiesActionDelegate.java
|
||||
* SignalPropertiesDialog.java
|
||||
* ViewFilterAction.java
|
||||
* AbstractDebugEventHandler.java
|
||||
* AbstractDebugEventHandlerView.java
|
||||
* IDebugExceptionHandler.java
|
||||
* SharedLibrariesMessages.properties
|
||||
* SharedLibrariesMessages.java
|
||||
* SharedLibrariesView.java
|
||||
* SharedLibrariesViewContentProvider.java
|
||||
* SharedLibrariesViewEventHandler.java
|
||||
* SignalsMessages.properties
|
||||
* SignalsMessages.java
|
||||
* SignalsView.java
|
||||
* SignalsViewContentProvider.java
|
||||
* SignalsViewer.java
|
||||
* SignalsViewEventHandler.java
|
||||
* CDebugUIPluginResources.properties
|
||||
* plugin.properties
|
||||
* plugin.xml
|
||||
|
||||
2004-04-01 Mikhail Khodjaiants
|
||||
Moved the "Show Full Paths" action from toolbars to view's menus.
|
||||
* CDebugModelPresentation.java - new (will replace CDTDebugModelPresentation)
|
||||
|
|
|
@ -69,6 +69,8 @@ SignalAction.label=Resume With Signal
|
|||
SignalAction.tooltip=Resume With Signal
|
||||
SignalZeroAction.label=Resume Without Signal
|
||||
SignalZeroAction.tooltip=Resume Ignoring Signal
|
||||
SignalPropertiesAction.label=Signal Properties...
|
||||
SignalPropertiesAction.tooltip=Open Signal Properties Dialog
|
||||
|
||||
CastToTypeAction.label=Cast To Type...
|
||||
CastToTypeAction.tooltip=Cast Varibale To Type
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
<import plugin="org.eclipse.cdt.debug.core"/>
|
||||
<import plugin="org.eclipse.cdt.ui"/>
|
||||
<import plugin="org.eclipse.cdt.core"/>
|
||||
<import plugin="org.eclipse.core.runtime.compatibility"/>
|
||||
<import plugin="org.apache.xerces"/>
|
||||
<import plugin="org.eclipse.core.runtime.compatibility"/>
|
||||
</requires>
|
||||
|
||||
|
||||
|
@ -746,6 +746,21 @@
|
|||
</pluginState>
|
||||
</enablement>
|
||||
</action>
|
||||
<action
|
||||
class="org.eclipse.cdt.debug.internal.ui.actions.SignalPropertiesActionDelegate"
|
||||
label="%SignalPropertiesAction.label"
|
||||
enablesFor="1"
|
||||
style="pulldown"
|
||||
id="org.eclipse.cdt.debug.ui.SignalPropertiesAction"
|
||||
tooltip="%SignalPropertiesAction.tooltip"
|
||||
helpContextId="signal_properties_action_context">
|
||||
<enablement>
|
||||
<pluginState
|
||||
id="org.eclipse.cdt.debug.ui"
|
||||
value="activated">
|
||||
</pluginState>
|
||||
</enablement>
|
||||
</action>
|
||||
</objectContribution>
|
||||
<objectContribution
|
||||
objectClass="org.eclipse.cdt.debug.core.model.IResumeWithoutSignal"
|
||||
|
|
|
@ -4,3 +4,9 @@ LoadSymbolsForAllAction.Load_Symbols_For_All_1=Load Symbols For All
|
|||
LoadSymbolsForAllAction.Load_symbols_for_all_shared_libraries_1=Load symbols for all shared libraries.
|
||||
LoadSymbolsForAllAction.Load_Symbols_For_All_2=Load Symbols For All
|
||||
LoadSymbolsForAllAction.Unable_to_load_symbols_1=Unable to load symbols.
|
||||
SignalPropertiesDialog.Title_1=Properties for signal ''{0}''
|
||||
SignalPropertiesDialog.Description_label_1=Signal description: {0}.
|
||||
SignalPropertiesDialog.Stop_label_1=Suspend the program when this signal happens.
|
||||
SignalPropertiesDialog.Pass_label_1=Pass this signal to the program.
|
||||
SignalPropertiesActionDelegate.Unable_to_change_signal_properties_1=Unable to change signal properties.
|
||||
SignalPropertiesActionDelegate.Operation_failed_1=Operation failed.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* (c) Copyright QNX Software Systems Ltd. 2002. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
package org.eclipse.cdt.debug.internal.ui.actions;
|
||||
|
||||
|
@ -23,78 +22,70 @@ import org.eclipse.ui.IWorkbenchWindow;
|
|||
*
|
||||
* @since: Jan 17, 2003
|
||||
*/
|
||||
public class LoadSymbolsActionDelegate implements IObjectActionDelegate
|
||||
{
|
||||
private ICSharedLibrary fLibrary = null;
|
||||
public class LoadSymbolsActionDelegate implements IObjectActionDelegate {
|
||||
|
||||
private ICSharedLibrary fLibrary;
|
||||
|
||||
/**
|
||||
* Constructor for LoadSymbolsActionDelegate.
|
||||
*/
|
||||
public LoadSymbolsActionDelegate()
|
||||
{
|
||||
public LoadSymbolsActionDelegate() {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.ui.IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
|
||||
*/
|
||||
public void setActivePart( IAction action, IWorkbenchPart targetPart )
|
||||
{
|
||||
public void setActivePart( IAction action, IWorkbenchPart targetPart ) {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.ui.IActionDelegate#run(IAction)
|
||||
*/
|
||||
public void run( IAction action )
|
||||
{
|
||||
if ( getSharedLibrary() != null )
|
||||
{
|
||||
final MultiStatus ms = new MultiStatus( CDebugUIPlugin.getUniqueIdentifier(),
|
||||
DebugException.REQUEST_FAILED, CDebugUIPlugin.getResourceString("internal.ui.actions.LoadSymbolsActionDelegate.Unable_to_load_symbols_of_shared_library"), null ); //$NON-NLS-1$
|
||||
public void run( IAction action ) {
|
||||
if ( getSharedLibrary() != null ) {
|
||||
final MultiStatus ms = new MultiStatus( CDebugUIPlugin.getUniqueIdentifier(),
|
||||
DebugException.REQUEST_FAILED,
|
||||
ActionMessages.getString( "LoadSymbolsActionDelegate.Unable_to_load_symbols_of_shared_library_1" ), //$NON-NLS-1$
|
||||
null );
|
||||
BusyIndicator.showWhile( Display.getCurrent(),
|
||||
new Runnable()
|
||||
{
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
doAction( getSharedLibrary() );
|
||||
}
|
||||
catch( DebugException e )
|
||||
{
|
||||
ms.merge( e.getStatus() );
|
||||
}
|
||||
new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
doAction( getSharedLibrary() );
|
||||
}
|
||||
} );
|
||||
if ( !ms.isOK() )
|
||||
{
|
||||
catch( DebugException e ) {
|
||||
ms.merge( e.getStatus() );
|
||||
}
|
||||
}
|
||||
} );
|
||||
if ( !ms.isOK() ) {
|
||||
IWorkbenchWindow window = CDebugUIPlugin.getActiveWorkbenchWindow();
|
||||
if ( window != null )
|
||||
{
|
||||
CDebugUIPlugin.errorDialog( CDebugUIPlugin.getResourceString("internal.ui.actions.LoadSymbolsActionDelegate.Operation_failed"), ms ); //$NON-NLS-1$
|
||||
if ( window != null ) {
|
||||
CDebugUIPlugin.errorDialog( ActionMessages.getString( "LoadSymbolsActionDelegate.Operation_failed_1" ), ms ); //$NON-NLS-1$
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
CDebugUIPlugin.log( ms );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.ui.IActionDelegate#selectionChanged(IAction, ISelection)
|
||||
*/
|
||||
public void selectionChanged( IAction action, ISelection selection )
|
||||
{
|
||||
if ( selection instanceof IStructuredSelection )
|
||||
{
|
||||
public void selectionChanged( IAction action, ISelection selection ) {
|
||||
if ( selection instanceof IStructuredSelection ) {
|
||||
Object element = ((IStructuredSelection)selection).getFirstElement();
|
||||
if ( element instanceof ICSharedLibrary )
|
||||
{
|
||||
if ( element instanceof ICSharedLibrary ) {
|
||||
boolean enabled = enablesFor( (ICSharedLibrary)element );
|
||||
action.setEnabled( enabled );
|
||||
if ( enabled )
|
||||
{
|
||||
if ( enabled ) {
|
||||
setSharedLibrary( (ICSharedLibrary)element );
|
||||
return;
|
||||
}
|
||||
|
@ -104,23 +95,19 @@ public class LoadSymbolsActionDelegate implements IObjectActionDelegate
|
|||
setSharedLibrary( null );
|
||||
}
|
||||
|
||||
protected void doAction( ICSharedLibrary library ) throws DebugException
|
||||
{
|
||||
protected void doAction( ICSharedLibrary library ) throws DebugException {
|
||||
library.loadSymbols();
|
||||
}
|
||||
|
||||
private boolean enablesFor( ICSharedLibrary library )
|
||||
{
|
||||
private boolean enablesFor(ICSharedLibrary library) {
|
||||
return ( library != null && !library.areSymbolsLoaded() );
|
||||
}
|
||||
|
||||
private void setSharedLibrary( ICSharedLibrary library )
|
||||
{
|
||||
|
||||
private void setSharedLibrary( ICSharedLibrary library ) {
|
||||
fLibrary = library;
|
||||
}
|
||||
|
||||
protected ICSharedLibrary getSharedLibrary()
|
||||
{
|
||||
|
||||
protected ICSharedLibrary getSharedLibrary() {
|
||||
return fLibrary;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* (c) Copyright QNX Software Systems Ltd. 2002. All Rights Reserved.
|
||||
*
|
||||
*/
|
||||
package org.eclipse.cdt.debug.internal.ui.actions;
|
||||
|
||||
import org.eclipse.cdt.debug.core.ICSharedLibraryManager;
|
||||
import org.eclipse.cdt.debug.core.model.ICDebugTarget;
|
||||
import org.eclipse.cdt.debug.internal.ui.CDebugImages;
|
||||
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
import org.eclipse.core.runtime.IAdaptable;
|
||||
|
@ -22,33 +19,31 @@ import org.eclipse.ui.texteditor.IUpdate;
|
|||
*
|
||||
* @since: Feb 11, 2003
|
||||
*/
|
||||
public class LoadSymbolsForAllAction extends Action implements IUpdate
|
||||
{
|
||||
public class LoadSymbolsForAllAction extends Action implements IUpdate {
|
||||
|
||||
private Viewer fViewer = null;
|
||||
|
||||
/**
|
||||
* Constructor for LoadSymbolsForAllAction.
|
||||
*/
|
||||
public LoadSymbolsForAllAction( Viewer viewer )
|
||||
{
|
||||
super( CDebugUIPlugin.getResourceString("internal.ui.actions.LoadSymbolsForAllAction.Load_Symbols_For_all") ); //$NON-NLS-1$
|
||||
public LoadSymbolsForAllAction( Viewer viewer ) {
|
||||
super( ActionMessages.getString( "LoadSymbolsForAllAction.Load_Symbols_For_All_1" ) ); //$NON-NLS-1$
|
||||
fViewer = viewer;
|
||||
CDebugImages.setLocalImageDescriptors( this, CDebugImages.IMG_LCL_LOAD_ALL_SYMBOLS );
|
||||
setDescription( CDebugUIPlugin.getResourceString("internal.ui.actions.LoadSymbolsForAllAction.Load_symbols_for_all_shared_libraries.") ); //$NON-NLS-1$
|
||||
setToolTipText( CDebugUIPlugin.getResourceString("internal.ui.actions.LoadSymbolsForAllAction.Load_Symbols_For_All") ); //$NON-NLS-1$
|
||||
// CDebugImages.setLocalImageDescriptors( this, ICDebugUIConstants.IMG_LCL_LOAD_ALL_SYMBOLS );
|
||||
setDescription( ActionMessages.getString( "LoadSymbolsForAllAction.Load_symbols_for_all_shared_libraries_1" ) ); //$NON-NLS-1$
|
||||
setToolTipText( ActionMessages.getString( "LoadSymbolsForAllAction.Load_Symbols_For_All_2" ) ); //$NON-NLS-1$
|
||||
WorkbenchHelp.setHelp( this, ICDebugHelpContextIds.LOAD_SYMBOLS_FOR_ALL );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.ui.texteditor.IUpdate#update()
|
||||
*/
|
||||
public void update()
|
||||
{
|
||||
if ( fViewer != null && fViewer.getInput() instanceof IAdaptable )
|
||||
{
|
||||
ICDebugTarget target = (ICDebugTarget)((IAdaptable)fViewer.getInput()).getAdapter( ICDebugTarget.class );
|
||||
if ( target != null )
|
||||
{
|
||||
public void update() {
|
||||
if ( fViewer != null && fViewer.getInput() instanceof IAdaptable ) {
|
||||
ICDebugTarget target = (ICDebugTarget)((IAdaptable)fViewer.getInput()).getAdapter(ICDebugTarget.class);
|
||||
if ( target != null ) {
|
||||
setEnabled( target.isSuspended() );
|
||||
return;
|
||||
}
|
||||
|
@ -56,23 +51,20 @@ public class LoadSymbolsForAllAction extends Action implements IUpdate
|
|||
setEnabled( false );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.action.IAction#run()
|
||||
*/
|
||||
public void run()
|
||||
{
|
||||
if ( fViewer != null && fViewer.getInput() instanceof IAdaptable )
|
||||
{
|
||||
ICSharedLibraryManager slm = (ICSharedLibraryManager)((IAdaptable)fViewer.getInput()).getAdapter( ICSharedLibraryManager.class );
|
||||
if ( slm != null )
|
||||
{
|
||||
try
|
||||
{
|
||||
slm.loadSymbolsForAll();
|
||||
public void run() {
|
||||
if ( fViewer != null && fViewer.getInput() instanceof IAdaptable ) {
|
||||
ICDebugTarget target = (ICDebugTarget)((IAdaptable)fViewer.getInput()).getAdapter(ICDebugTarget.class);
|
||||
if ( target != null ) {
|
||||
try {
|
||||
target.loadSymbols();
|
||||
}
|
||||
catch( DebugException e )
|
||||
{
|
||||
CDebugUIPlugin.errorDialog( CDebugUIPlugin.getResourceString("internal.ui.actions.LoadSymbolsForAllAction.Unable_to_load_symbols."), e.getStatus() ); //$NON-NLS-1$
|
||||
catch( DebugException e ) {
|
||||
CDebugUIPlugin.errorDialog( ActionMessages.getString( "LoadSymbolsForAllAction.Unable_to_load_symbols_1" ), e.getStatus() ); //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,8 +20,6 @@ import org.eclipse.swt.custom.BusyIndicator;
|
|||
|
||||
/**
|
||||
* An action delegate that toggles the state of its viewer to show/hide full paths.
|
||||
*
|
||||
* @since: Feb 23, 2004
|
||||
*/
|
||||
public class ShowFullPathsAction extends ViewFilterAction {
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ public class SignalActionDelegate implements IObjectActionDelegate
|
|||
{
|
||||
final MultiStatus ms = new MultiStatus( CDebugUIPlugin.getUniqueIdentifier(),
|
||||
DebugException.REQUEST_FAILED,
|
||||
MessageFormat.format( CDebugUIPlugin.getResourceString("internal.ui.actions.SignalActionDelegate.Unable_to_deliver_signal_to_target"), new String[] { getSignal().getName() } ), //$NON-NLS-1$
|
||||
CDebugUIPlugin.getResourceString( "internal.ui.actions.SignalActionDelegate.Unable_to_deliver_signal_to_target" ), //$NON-NLS-1$
|
||||
null );
|
||||
BusyIndicator.showWhile( Display.getCurrent(),
|
||||
new Runnable()
|
||||
|
|
|
@ -0,0 +1,142 @@
|
|||
/**********************************************************************
|
||||
* 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.actions;
|
||||
|
||||
import org.eclipse.cdt.debug.core.model.ICSignal;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
import org.eclipse.core.runtime.MultiStatus;
|
||||
import org.eclipse.debug.core.DebugException;
|
||||
import org.eclipse.jface.action.IAction;
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.window.Window;
|
||||
import org.eclipse.swt.custom.BusyIndicator;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
import org.eclipse.ui.IObjectActionDelegate;
|
||||
import org.eclipse.ui.IWorkbenchPart;
|
||||
import org.eclipse.ui.IWorkbenchWindow;
|
||||
import org.eclipse.ui.actions.ActionDelegate;
|
||||
|
||||
/**
|
||||
* Signal Properties action delegate.
|
||||
*/
|
||||
public class SignalPropertiesActionDelegate extends ActionDelegate implements IObjectActionDelegate {
|
||||
|
||||
private ICSignal fSignal;
|
||||
private SignalPropertiesDialog fDialog;
|
||||
|
||||
/**
|
||||
* Constructor for SignalPropertiesActionDelegate.
|
||||
*
|
||||
*/
|
||||
public SignalPropertiesActionDelegate() {
|
||||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
/* (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#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 ICSignal ) {
|
||||
action.setEnabled( true );
|
||||
setSignal( (ICSignal)element );
|
||||
return;
|
||||
}
|
||||
}
|
||||
action.setEnabled( false );
|
||||
setSignal( null );
|
||||
}
|
||||
|
||||
protected ICSignal getSignal() {
|
||||
return this.fSignal;
|
||||
}
|
||||
private void setSignal( ICSignal signal ) {
|
||||
this.fSignal = signal;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
|
||||
*/
|
||||
public void run( IAction action ) {
|
||||
if ( getSignal() != null ) {
|
||||
final MultiStatus ms = new MultiStatus( CDebugUIPlugin.getUniqueIdentifier(),
|
||||
DebugException.REQUEST_FAILED,
|
||||
ActionMessages.getString( "SignalPropertiesActionDelegate.Unable_to_change_signal_properties_1" ), //$NON-NLS-1$
|
||||
null );
|
||||
BusyIndicator.showWhile( Display.getCurrent(),
|
||||
new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
doAction( getSignal() );
|
||||
}
|
||||
catch( DebugException e ) {
|
||||
ms.merge( e.getStatus() );
|
||||
}
|
||||
}
|
||||
} );
|
||||
if ( !ms.isOK() ) {
|
||||
IWorkbenchWindow window = CDebugUIPlugin.getActiveWorkbenchWindow();
|
||||
if ( window != null ) {
|
||||
CDebugUIPlugin.errorDialog( ActionMessages.getString( "SignalPropertiesActionDelegate.Operation_failed_1" ), ms ); //$NON-NLS-1$
|
||||
}
|
||||
else {
|
||||
CDebugUIPlugin.log( ms );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void doAction( ICSignal signal ) throws DebugException {
|
||||
IWorkbenchWindow window = CDebugUIPlugin.getActiveWorkbenchWindow();
|
||||
if ( window == null ) {
|
||||
return;
|
||||
}
|
||||
Shell activeShell = window.getShell();
|
||||
|
||||
// If a previous edit is still in progress, don't start another
|
||||
if ( fDialog != null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
String name = signal.getName();
|
||||
String description = signal.getDescription();
|
||||
boolean pass = signal.isPassEnabled();
|
||||
boolean stop = signal.isStopEnabled();
|
||||
boolean canModify = signal.canModify();
|
||||
fDialog = new SignalPropertiesDialog( activeShell, name, description, pass, stop, canModify );
|
||||
try {
|
||||
if ( fDialog.open() == Window.OK ) {
|
||||
setProperties( signal, fDialog.isPassEnabled(), fDialog.isStopEnabled() );
|
||||
}
|
||||
}
|
||||
catch( DebugException e ) {
|
||||
throw e;
|
||||
}
|
||||
finally {
|
||||
fDialog = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void setProperties( ICSignal signal, boolean pass, boolean stop ) throws DebugException {
|
||||
signal.setPassEnabled( pass );
|
||||
signal.setStopEnabled( stop );
|
||||
}
|
||||
}
|
|
@ -0,0 +1,132 @@
|
|||
/**********************************************************************
|
||||
* 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.actions;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
|
||||
import org.eclipse.cdt.debug.internal.ui.dialogfields.SelectionButtonDialogField;
|
||||
import org.eclipse.jface.dialogs.Dialog;
|
||||
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.graphics.Font;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
/**
|
||||
* Signal Properties dialog.
|
||||
*/
|
||||
public class SignalPropertiesDialog extends Dialog {
|
||||
|
||||
private String fName;
|
||||
private String fDescription;
|
||||
private boolean fPass = false;
|
||||
private boolean fStop = false;
|
||||
private boolean fCanModify = false;
|
||||
|
||||
private SelectionButtonDialogField fPassButton;
|
||||
private SelectionButtonDialogField fStopButton;
|
||||
|
||||
/**
|
||||
* Constructor for SignalPropertiesDialog.
|
||||
* @param parentShell
|
||||
*/
|
||||
public SignalPropertiesDialog( Shell parentShell,
|
||||
String name,
|
||||
String description,
|
||||
boolean pass,
|
||||
boolean stop,
|
||||
boolean canModify ) {
|
||||
super( parentShell );
|
||||
fName = name;
|
||||
fDescription = description;
|
||||
fStop = stop;
|
||||
fPass = pass;
|
||||
fCanModify = canModify;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
|
||||
*/
|
||||
protected void configureShell( Shell shell ) {
|
||||
super.configureShell( shell );
|
||||
shell.setText( MessageFormat.format( ActionMessages.getString( "SignalPropertiesDialog.Title_1" ), new String[] { getName() } ) ); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
protected String getDescription() {
|
||||
return this.fDescription;
|
||||
}
|
||||
|
||||
protected String getName() {
|
||||
return this.fName;
|
||||
}
|
||||
|
||||
protected boolean isPassEnabled() {
|
||||
return this.fPass;
|
||||
}
|
||||
|
||||
protected void enablePass( boolean enable ) {
|
||||
this.fPass = enable;
|
||||
}
|
||||
|
||||
protected boolean isStopEnabled() {
|
||||
return this.fStop;
|
||||
}
|
||||
|
||||
protected void enableStop( boolean enable ) {
|
||||
this.fStop = enable;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
|
||||
*/
|
||||
protected Control createDialogArea( Composite parent ) {
|
||||
Font font = parent.getFont();
|
||||
Composite composite = (Composite)super.createDialogArea( parent );
|
||||
|
||||
// Create description field
|
||||
Label label = new Label( composite, SWT.WRAP );
|
||||
label.setText( MessageFormat.format( ActionMessages.getString( "SignalPropertiesDialog.Description_label_1" ), new String[] { getDescription() } ) ); //$NON-NLS-1$
|
||||
GridData data = new GridData( GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER );
|
||||
data.widthHint = convertHorizontalDLUsToPixels( IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH );
|
||||
label.setLayoutData( data );
|
||||
label.setFont( font );
|
||||
|
||||
// Create pass button
|
||||
fPassButton = new SelectionButtonDialogField( SWT.CHECK );
|
||||
fPassButton.setLabelText( ActionMessages.getString( "SignalPropertiesDialog.Pass_label_1" ) ); //$NON-NLS-1$
|
||||
fPassButton.setSelection( fPass );
|
||||
fPassButton.setEnabled( fCanModify );
|
||||
fPassButton.doFillIntoGrid( composite, 1 );
|
||||
|
||||
// Create stop button
|
||||
fStopButton = new SelectionButtonDialogField( SWT.CHECK );
|
||||
fStopButton.setLabelText( ActionMessages.getString( "SignalPropertiesDialog.Stop_label_1" ) ); //$NON-NLS-1$
|
||||
fStopButton.setSelection( fStop );
|
||||
fStopButton.setEnabled( fCanModify );
|
||||
fStopButton.doFillIntoGrid( composite, 1 );
|
||||
|
||||
return composite;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.dialogs.Dialog#okPressed()
|
||||
*/
|
||||
protected void okPressed() {
|
||||
if ( fPassButton != null )
|
||||
fPass = fPassButton.isSelected();
|
||||
if ( fStopButton != null )
|
||||
fStop = fStopButton.isSelected();
|
||||
super.okPressed();
|
||||
}
|
||||
}
|
|
@ -25,7 +25,7 @@ import org.eclipse.ui.IViewActionDelegate;
|
|||
import org.eclipse.ui.IViewPart;
|
||||
|
||||
/**
|
||||
*
|
||||
* A base class for the view filtering actions.
|
||||
*/
|
||||
public abstract class ViewFilterAction extends ViewerFilter implements IViewActionDelegate, IActionDelegate2 {
|
||||
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2003 IBM Corporation 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:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.debug.internal.ui.views;
|
||||
|
||||
|
||||
import org.eclipse.debug.core.DebugEvent;
|
||||
import org.eclipse.debug.core.DebugPlugin;
|
||||
import org.eclipse.debug.core.IDebugEventSetListener;
|
||||
|
@ -13,183 +18,187 @@ import org.eclipse.debug.ui.AbstractDebugView;
|
|||
import org.eclipse.jface.viewers.IBasicPropertyConstants;
|
||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||
import org.eclipse.jface.viewers.StructuredSelection;
|
||||
import org.eclipse.jface.viewers.StructuredViewer;
|
||||
import org.eclipse.jface.viewers.TableTreeViewer;
|
||||
import org.eclipse.jface.viewers.TableViewer;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.ui.IWorkbenchPage;
|
||||
import org.eclipse.ui.IWorkbenchWindow;
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
|
||||
/**
|
||||
*
|
||||
* Handles debug events, updating a view and viewer.
|
||||
*
|
||||
* @since Jul 23, 2002
|
||||
*/
|
||||
public abstract class AbstractDebugEventHandler implements IDebugEventSetListener
|
||||
{
|
||||
public abstract class AbstractDebugEventHandler implements IDebugEventSetListener {
|
||||
|
||||
/**
|
||||
* This event handler's view
|
||||
*/
|
||||
private AbstractDebugView fView;
|
||||
|
||||
|
||||
/**
|
||||
* Constructs an event handler for the given view.
|
||||
*
|
||||
* @param view debug view
|
||||
*/
|
||||
public AbstractDebugEventHandler( AbstractDebugView view )
|
||||
{
|
||||
setView( view );
|
||||
DebugPlugin plugin = DebugPlugin.getDefault();
|
||||
plugin.addDebugEventListener( this );
|
||||
public AbstractDebugEventHandler(AbstractDebugView view) {
|
||||
setView(view);
|
||||
DebugPlugin plugin= DebugPlugin.getDefault();
|
||||
plugin.addDebugEventListener(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the active workbench page or <code>null</code> if none.
|
||||
*/
|
||||
protected IWorkbenchPage getActivePage() {
|
||||
IWorkbenchWindow window= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
|
||||
if (window == null) {
|
||||
return null;
|
||||
}
|
||||
return window.getActivePage();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IDebugEventSetListener#handleDebugEvents(DebugEvent[])
|
||||
*/
|
||||
public void handleDebugEvents( final DebugEvent[] events )
|
||||
{
|
||||
if ( !isAvailable() )
|
||||
{
|
||||
public void handleDebugEvents(final DebugEvent[] events) {
|
||||
if (!isAvailable()) {
|
||||
return;
|
||||
}
|
||||
Runnable r = new Runnable()
|
||||
{
|
||||
public void run()
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
doHandleDebugEvents( events );
|
||||
Runnable r= new Runnable() {
|
||||
public void run() {
|
||||
if (isAvailable()) {
|
||||
if (isViewVisible()) {
|
||||
doHandleDebugEvents(events);
|
||||
}
|
||||
updateForDebugEvents(events);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
getView().asyncExec( r );
|
||||
getView().asyncExec(r);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Updates this view for the given debug events. Unlike
|
||||
* doHandleDebugEvents(DebugEvent[]) which is only called if the view is
|
||||
* visible, this method is always called. This allows the view to perform
|
||||
* updating that must always be performed, even when the view is not
|
||||
* visible.
|
||||
*/
|
||||
protected void updateForDebugEvents(DebugEvent[] events) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation specific handling of debug events.
|
||||
* Subclasses should override.
|
||||
*/
|
||||
protected abstract void doHandleDebugEvents( DebugEvent[] events );
|
||||
|
||||
protected abstract void doHandleDebugEvents(DebugEvent[] events);
|
||||
|
||||
/**
|
||||
* Helper method for inserting the given element - must be called in UI thread
|
||||
* Helper method for inserting the given element in the tree viewer -
|
||||
* must be called in UI thread
|
||||
*/
|
||||
protected void insert( Object element )
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
final Object parent = ((ITreeContentProvider)getTreeViewer().getContentProvider()).getParent( element );
|
||||
protected void insert(Object element) {
|
||||
TreeViewer viewer = getTreeViewer();
|
||||
if (isAvailable() && viewer != null) {
|
||||
Object parent= ((ITreeContentProvider)viewer.getContentProvider()).getParent(element);
|
||||
// a parent can be null for a debug target or process that has not yet been associated
|
||||
// with a launch
|
||||
if ( parent != null )
|
||||
{
|
||||
if (parent != null) {
|
||||
getView().showViewer();
|
||||
getTreeViewer().add( parent, element );
|
||||
viewer.add(parent, element);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to remove the given element - must be called in UI thread.
|
||||
* Helper method to remove the given element from the tree viewer -
|
||||
* must be called in UI thread.
|
||||
*/
|
||||
protected void remove( Object element )
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
protected void remove(Object element) {
|
||||
TreeViewer viewer = getTreeViewer();
|
||||
if (isAvailable() && viewer != null) {
|
||||
getView().showViewer();
|
||||
getTreeViewer().remove( element );
|
||||
viewer.remove(element);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to update the label of the given element - must be called in UI thread
|
||||
*/
|
||||
protected void labelChanged( Object element )
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
protected void labelChanged(Object element) {
|
||||
if (isAvailable()) {
|
||||
getView().showViewer();
|
||||
getTreeViewer().update( element,
|
||||
new String[] { IBasicPropertyConstants.P_TEXT } );
|
||||
getStructuredViewer().update(element, new String[] {IBasicPropertyConstants.P_TEXT});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh the given element in the viewer - must be called in UI thread.
|
||||
*/
|
||||
protected void refresh( Object element )
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
getView().showViewer();
|
||||
getTreeViewer().refresh( element );
|
||||
protected void refresh(Object element) {
|
||||
if (isAvailable()) {
|
||||
getView().showViewer();
|
||||
getStructuredViewer().refresh(element);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Refresh the viewer - must be called in UI thread.
|
||||
*/
|
||||
public void refresh()
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
getView().showViewer();
|
||||
getTreeViewer().refresh();
|
||||
public void refresh() {
|
||||
if (isAvailable()) {
|
||||
getView().showViewer();
|
||||
getStructuredViewer().refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to select and reveal the given element - must be called in UI thread
|
||||
*/
|
||||
protected void selectAndReveal( Object element )
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
getViewer().setSelection( new StructuredSelection( element ), true );
|
||||
protected void selectAndReveal(Object element) {
|
||||
if (isAvailable()) {
|
||||
getViewer().setSelection(new StructuredSelection(element), true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* De-registers this event handler from the debug model.
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
DebugPlugin plugin = DebugPlugin.getDefault();
|
||||
plugin.removeDebugEventListener( this );
|
||||
public void dispose() {
|
||||
DebugPlugin plugin= DebugPlugin.getDefault();
|
||||
plugin.removeDebugEventListener(this);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the view this event handler is
|
||||
* updating.
|
||||
*
|
||||
* @return debug view
|
||||
*/
|
||||
protected AbstractDebugView getView()
|
||||
{
|
||||
return fView;
|
||||
protected AbstractDebugView getView() {
|
||||
return this.fView;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the view this event handler is updating.
|
||||
*
|
||||
* @param view debug view
|
||||
*/
|
||||
private void setView( AbstractDebugView view )
|
||||
{
|
||||
fView = view;
|
||||
private void setView(AbstractDebugView view) {
|
||||
this.fView = view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the viewer this event handler is updating.
|
||||
* Returns the viewer this event handler is
|
||||
* updating.
|
||||
*
|
||||
* @return viewer
|
||||
*/
|
||||
protected Viewer getViewer()
|
||||
{
|
||||
*/
|
||||
protected Viewer getViewer() {
|
||||
return getView().getViewer();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns this event handler's viewer as a tree
|
||||
* viewer or <code>null</code> if none.
|
||||
|
@ -197,47 +206,41 @@ public abstract class AbstractDebugEventHandler implements IDebugEventSetListene
|
|||
* @return this event handler's viewer as a tree
|
||||
* viewer or <code>null</code> if none
|
||||
*/
|
||||
protected TreeViewer getTreeViewer()
|
||||
{
|
||||
if ( getViewer() instanceof TreeViewer )
|
||||
{
|
||||
protected TreeViewer getTreeViewer() {
|
||||
if (getViewer() instanceof TreeViewer) {
|
||||
return (TreeViewer)getViewer();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns this event handler's viewer as a table
|
||||
* viewer or <code>null</code> if none.
|
||||
*
|
||||
* @return this event handler's viewer as a table
|
||||
* viewer or <code>null</code> if none
|
||||
*/
|
||||
protected TableViewer getTableViewer()
|
||||
{
|
||||
if ( getViewer() instanceof TableViewer )
|
||||
{
|
||||
return (TableViewer)getViewer();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns this event handler's viewer as a table tree
|
||||
* viewer or <code>null</code> if none.
|
||||
* viewer or <code>null</code> if none.
|
||||
*
|
||||
* @return this event handler's viewer as a table tree
|
||||
* @return this event handler's viewer as a table tree
|
||||
* viewer or <code>null</code> if none
|
||||
*/
|
||||
protected TableTreeViewer getTableTreeViewer()
|
||||
{
|
||||
if ( getViewer() instanceof TableTreeViewer )
|
||||
{
|
||||
protected TableTreeViewer getTableTreeViewer() {
|
||||
if (getViewer() instanceof TableTreeViewer) {
|
||||
return (TableTreeViewer)getViewer();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns this event handler's viewer as a structured
|
||||
* viewer or <code>null</code> if none.
|
||||
*
|
||||
* @return this event handler's viewer as a structured
|
||||
* viewer or <code>null</code> if none
|
||||
*/
|
||||
protected StructuredViewer getStructuredViewer() {
|
||||
if (getViewer() instanceof StructuredViewer) {
|
||||
return (StructuredViewer)getViewer();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this event handler's viewer is
|
||||
* currently available.
|
||||
|
@ -245,8 +248,32 @@ public abstract class AbstractDebugEventHandler implements IDebugEventSetListene
|
|||
* @return whether this event handler's viewer is
|
||||
* currently available
|
||||
*/
|
||||
protected boolean isAvailable()
|
||||
{
|
||||
protected boolean isAvailable() {
|
||||
return getView().isAvailable();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this event handler's view is currently visible.
|
||||
*
|
||||
* @return whether this event handler's view is currently visible
|
||||
*/
|
||||
protected boolean isViewVisible() {
|
||||
return getView().isVisible();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when this event handler's view becomes visible. Default behavior
|
||||
* is to refresh the view.
|
||||
*/
|
||||
protected void viewBecomesVisible() {
|
||||
refresh();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when this event handler's view becomes hidden. Default behavior is
|
||||
* to do nothing. Subclasses may override.
|
||||
*/
|
||||
protected void viewBecomesHidden() {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,20 +1,25 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2003 IBM Corporation 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:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.debug.internal.ui.views;
|
||||
|
||||
|
||||
import org.eclipse.debug.ui.AbstractDebugView;
|
||||
import org.eclipse.jface.action.IStatusLineManager;
|
||||
|
||||
/**
|
||||
*
|
||||
* A debug view that uses an event handler to update its view/viewer.
|
||||
*
|
||||
* @since Jul 23, 2002
|
||||
* A debug view that uses an event handler to update its
|
||||
* view/viewer.
|
||||
*/
|
||||
public abstract class AbstractDebugEventHandlerView extends AbstractDebugView
|
||||
{
|
||||
public abstract class AbstractDebugEventHandlerView extends AbstractDebugView {
|
||||
|
||||
/**
|
||||
* Event handler for this view
|
||||
*/
|
||||
|
@ -25,30 +30,48 @@ public abstract class AbstractDebugEventHandlerView extends AbstractDebugView
|
|||
*
|
||||
* @param eventHandler event handler
|
||||
*/
|
||||
protected void setEventHandler( AbstractDebugEventHandler eventHandler )
|
||||
{
|
||||
fEventHandler = eventHandler;
|
||||
protected void setEventHandler(AbstractDebugEventHandler eventHandler) {
|
||||
this.fEventHandler = eventHandler;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the event handler for this view
|
||||
*
|
||||
* @return The event handler for this view
|
||||
*/
|
||||
protected AbstractDebugEventHandler getEventHandler()
|
||||
{
|
||||
return fEventHandler;
|
||||
}
|
||||
|
||||
protected AbstractDebugEventHandler getEventHandler() {
|
||||
return this.fEventHandler;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IWorkbenchPart#dispose()
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
public void dispose() {
|
||||
super.dispose();
|
||||
if ( getEventHandler() != null )
|
||||
{
|
||||
if (getEventHandler() != null) {
|
||||
getEventHandler().dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#becomesHidden()
|
||||
*/
|
||||
protected void becomesHidden() {
|
||||
super.becomesHidden();
|
||||
getEventHandler().viewBecomesHidden();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#becomesVisible()
|
||||
*/
|
||||
protected void becomesVisible() {
|
||||
super.becomesVisible();
|
||||
getEventHandler().viewBecomesVisible();
|
||||
}
|
||||
|
||||
protected void clearStatusLine() {
|
||||
IStatusLineManager manager = getViewSite().getActionBars().getStatusLineManager();
|
||||
manager.setErrorMessage(null);
|
||||
manager.setMessage(null);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,7 @@ import org.eclipse.debug.core.DebugException;
|
|||
/**
|
||||
* A plugable exception handler.
|
||||
*/
|
||||
public interface IDebugExceptionHandler
|
||||
{
|
||||
public interface IDebugExceptionHandler {
|
||||
/**
|
||||
* Handles the given debug exception.
|
||||
*
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2003 IBM Corporation 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:
|
||||
* IBM Corporation - initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.debug.internal.ui.views;
|
||||
|
||||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
|
||||
/**
|
||||
* Memento of the expanded and selected items in a tree
|
||||
* viewer for.
|
||||
*
|
||||
* @since 2.1
|
||||
*/
|
||||
public class ViewerState {
|
||||
|
||||
private Object[] fExpandedElements = null;
|
||||
private ISelection fSelection = null;
|
||||
|
||||
/**
|
||||
* Constructs a memento for the given viewer.
|
||||
*/
|
||||
public ViewerState(TreeViewer viewer) {
|
||||
saveState(viewer);
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the current state of the given viewer into
|
||||
* this memento.
|
||||
*
|
||||
* @param viewer viewer of which to save the state
|
||||
*/
|
||||
public void saveState(TreeViewer viewer) {
|
||||
fExpandedElements = viewer.getExpandedElements();
|
||||
fSelection = viewer.getSelection();
|
||||
}
|
||||
|
||||
/**
|
||||
* Restores the state of the given viewer to this mementos
|
||||
* saved state.
|
||||
*
|
||||
* @param viewer viewer to which state is restored
|
||||
*/
|
||||
public void restoreState(TreeViewer viewer) {
|
||||
if (fExpandedElements != null) {
|
||||
viewer.setExpandedElements(fExpandedElements);
|
||||
}
|
||||
if (fSelection != null) {
|
||||
viewer.setSelection(fSelection);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
/**********************************************************************
|
||||
* 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 + '!';
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
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,36 +1,38 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/**********************************************************************
|
||||
* 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.CDebugUtils;
|
||||
import org.eclipse.cdt.debug.core.ICSharedLibraryManager;
|
||||
import org.eclipse.cdt.debug.core.model.ICDebugTarget;
|
||||
import org.eclipse.cdt.debug.core.model.ICSharedLibrary;
|
||||
import org.eclipse.cdt.debug.internal.ui.CDTDebugModelPresentation;
|
||||
import org.eclipse.cdt.debug.internal.ui.CDebugImages;
|
||||
import org.eclipse.cdt.debug.internal.ui.CDebugModelPresentation;
|
||||
import org.eclipse.cdt.debug.internal.ui.CDebugUIUtils;
|
||||
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
||||
import org.eclipse.cdt.debug.internal.ui.PixelConverter;
|
||||
import org.eclipse.cdt.debug.internal.ui.actions.AutoRefreshAction;
|
||||
import org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsForAllAction;
|
||||
import org.eclipse.cdt.debug.internal.ui.actions.RefreshAction;
|
||||
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.ICDebugUIConstants;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
import org.eclipse.debug.core.DebugException;
|
||||
import org.eclipse.debug.core.model.IDebugElement;
|
||||
import org.eclipse.debug.ui.IDebugUIConstants;
|
||||
import org.eclipse.jface.action.IAction;
|
||||
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.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.TableTreeViewer;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
import org.eclipse.swt.SWT;
|
||||
|
@ -38,56 +40,52 @@ 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;
|
||||
import org.eclipse.ui.help.WorkbenchHelp;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
|
||||
/**
|
||||
* Enter type comment.
|
||||
* Displays shared libraries.
|
||||
*
|
||||
* @since: Jan 21, 2003
|
||||
*/
|
||||
public class SharedLibrariesView extends AbstractDebugEventHandlerView
|
||||
implements ISelectionListener,
|
||||
INullSelectionListener,
|
||||
IPropertyChangeListener,
|
||||
IDebugExceptionHandler
|
||||
{
|
||||
public class SharedLibrariesLabelProvider extends CDTDebugModelPresentation implements ITableLabelProvider
|
||||
{
|
||||
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 )
|
||||
{
|
||||
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 )
|
||||
{
|
||||
public String getColumnText( Object element, int columnIndex ) {
|
||||
if ( element instanceof ICSharedLibrary ) {
|
||||
ICSharedLibrary library = (ICSharedLibrary)element;
|
||||
switch( columnIndex )
|
||||
{
|
||||
switch( columnIndex ) {
|
||||
case 0:
|
||||
return ""; //$NON-NLS-1$
|
||||
case 1:
|
||||
return getText( element );
|
||||
case 2:
|
||||
return ( library.getStartAddress() > 0 ) ?
|
||||
CDebugUtils.toHexAddressString( library.getStartAddress() ) : ""; //$NON-NLS-1$
|
||||
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() > 0 ) ?
|
||||
CDebugUIUtils.toHexAddressString( library.getStartAddress() ) : ""; //$NON-NLS-1$
|
||||
case 4:
|
||||
return ( library.getEndAddress() > 0 ) ?
|
||||
CDebugUtils.toHexAddressString( library.getEndAddress() ) : ""; //$NON-NLS-1$
|
||||
CDebugUIUtils.toHexAddressString( library.getEndAddress() ) : ""; //$NON-NLS-1$
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@ -97,8 +95,7 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView
|
|||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
|
||||
*/
|
||||
protected Viewer createViewer( Composite parent )
|
||||
{
|
||||
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 );
|
||||
|
@ -109,25 +106,31 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView
|
|||
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( CDebugUIPlugin.getResourceString("SharedLibrariesView.Name") ); //$NON-NLS-1$
|
||||
columns[2].setText( CDebugUIPlugin.getResourceString("SharedLibrariesView.Start_Address") ); //$NON-NLS-1$
|
||||
columns[3].setText( CDebugUIPlugin.getResourceString("SharedLibrariesView.End_Address") ); //$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( new SharedLibrariesViewContentProvider() );
|
||||
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 ) );
|
||||
|
@ -138,156 +141,124 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView
|
|||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#createActions()
|
||||
*/
|
||||
protected void createActions()
|
||||
{
|
||||
IAction action = new AutoRefreshAction( getViewer(), CDebugUIPlugin.getResourceString("RegistersView.Auto_Refresh") ); //$NON-NLS-1$
|
||||
CDebugImages.setLocalImageDescriptors( action, CDebugImages.IMG_LCL_AUTO_REFRESH );
|
||||
action.setDescription( "Automatically Refresh Shared Libraries View" ); //$NON-NLS-1$
|
||||
action.setToolTipText( CDebugUIPlugin.getResourceString("RegistersView.Auto_Refresh") ); //$NON-NLS-1$
|
||||
WorkbenchHelp.setHelp( action, ICDebugHelpContextIds.AUTO_REFRESH_SHARED_LIBRARIES_ACTION );
|
||||
action.setEnabled( false );
|
||||
setAction( "AutoRefresh", action ); //$NON-NLS-1$
|
||||
add( (AutoRefreshAction)action );
|
||||
|
||||
action = new RefreshAction( getViewer(), CDebugUIPlugin.getResourceString("RegistersView.Refresh") ); //$NON-NLS-1$
|
||||
CDebugImages.setLocalImageDescriptors( action, CDebugImages.IMG_LCL_REFRESH );
|
||||
action.setDescription( CDebugUIPlugin.getResourceString("SharedLibrariesView.Refresh_Shared_Libraries_View") ); //$NON-NLS-1$
|
||||
action.setToolTipText( CDebugUIPlugin.getResourceString("RegistersView.Refresh") ); //$NON-NLS-1$
|
||||
WorkbenchHelp.setHelp( action, ICDebugHelpContextIds.REFRESH_SHARED_LIBRARIES_ACTION );
|
||||
action.setEnabled( false );
|
||||
setAction( "Refresh", action ); //$NON-NLS-1$
|
||||
add( (RefreshAction)action );
|
||||
|
||||
action = new LoadSymbolsForAllAction( getViewer() );
|
||||
action.setEnabled( false );
|
||||
setAction( "LoadSymbolsForAll", action ); //$NON-NLS-1$
|
||||
add( (LoadSymbolsForAllAction)action );
|
||||
|
||||
// set initial content here, as viewer has to be set
|
||||
setInitialContent();
|
||||
protected void createActions() {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#getHelpContextId()
|
||||
*/
|
||||
protected String getHelpContextId()
|
||||
{
|
||||
protected String getHelpContextId() {
|
||||
return ICDebugHelpContextIds.SHARED_LIBRARIES_VIEW;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#fillContextMenu(IMenuManager)
|
||||
*/
|
||||
protected void fillContextMenu( IMenuManager menu )
|
||||
{
|
||||
updateObjects();
|
||||
|
||||
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 ) );
|
||||
|
||||
protected void fillContextMenu( IMenuManager menu ) {
|
||||
menu.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) );
|
||||
|
||||
menu.appendToGroup( ICDebugUIConstants.SHARED_LIBRARIES_GROUP, getAction( "LoadSymbolsForAll" ) ); //$NON-NLS-1$
|
||||
menu.appendToGroup( ICDebugUIConstants.REFRESH_GROUP, getAction( "AutoRefresh" ) ); //$NON-NLS-1$
|
||||
menu.appendToGroup( ICDebugUIConstants.REFRESH_GROUP, getAction( "Refresh" ) ); //$NON-NLS-1$
|
||||
updateObjects();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#configureToolBar(IToolBarManager)
|
||||
*/
|
||||
protected void configureToolBar( IToolBarManager tbm )
|
||||
{
|
||||
tbm.add( new Separator( this.getClass().getName() ) );
|
||||
|
||||
tbm.add( new Separator( ICDebugUIConstants.SHARED_LIBRARIES_GROUP ) );
|
||||
tbm.add( getAction( "LoadSymbolsForAll" ) ); //$NON-NLS-1$
|
||||
|
||||
tbm.add( new Separator( ICDebugUIConstants.REFRESH_GROUP ) );
|
||||
tbm.add( getAction( "AutoRefresh" ) ); //$NON-NLS-1$
|
||||
tbm.add( getAction( "Refresh" ) ); //$NON-NLS-1$
|
||||
protected void configureToolBar( IToolBarManager tbm ) {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
|
||||
*/
|
||||
public void selectionChanged( IWorkbenchPart part, ISelection selection )
|
||||
{
|
||||
if ( selection instanceof IStructuredSelection )
|
||||
{
|
||||
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 )
|
||||
{
|
||||
public void propertyChange( PropertyChangeEvent event ) {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler#handleException(DebugException)
|
||||
*/
|
||||
public void handleException( DebugException e )
|
||||
{
|
||||
public void handleException( DebugException e ) {
|
||||
showMessage( e.getMessage() );
|
||||
}
|
||||
|
||||
protected void setViewerInput( IStructuredSelection ssel )
|
||||
{
|
||||
ICSharedLibraryManager slm = null;
|
||||
if ( ssel != null && ssel.size() == 1 )
|
||||
{
|
||||
protected void setViewerInput( IStructuredSelection ssel ) {
|
||||
ICDebugTarget target = null;
|
||||
if ( ssel != null && ssel.size() == 1 ) {
|
||||
Object input = ssel.getFirstElement();
|
||||
if ( input instanceof IDebugElement )
|
||||
{
|
||||
slm = (ICSharedLibraryManager)((IDebugElement)input).getDebugTarget().getAdapter( ICSharedLibraryManager.class );
|
||||
}
|
||||
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( slm ) )
|
||||
{
|
||||
if ( current != null && current.equals( target ) ) {
|
||||
updateObjects();
|
||||
return;
|
||||
}
|
||||
|
||||
showViewer();
|
||||
getViewer().setInput( slm );
|
||||
getViewer().setInput( target );
|
||||
updateObjects();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the viewer input on creation
|
||||
*/
|
||||
protected void setInitialContent()
|
||||
{
|
||||
ISelection selection =
|
||||
getSite().getPage().getSelection( IDebugUIConstants.ID_DEBUG_VIEW );
|
||||
if ( selection instanceof IStructuredSelection && !selection.isEmpty() )
|
||||
{
|
||||
setViewerInput( (IStructuredSelection)selection );
|
||||
}
|
||||
else
|
||||
{
|
||||
setViewerInput( null );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates this view's event handler.
|
||||
*
|
||||
* @param viewer the viewer associated with this view
|
||||
* @return an event handler
|
||||
*/
|
||||
protected AbstractDebugEventHandler createEventHandler( Viewer viewer )
|
||||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,145 +1,164 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/**********************************************************************
|
||||
* 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.ICSharedLibraryManager;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Enter type comment.
|
||||
* Provides content for the shared libraries view.
|
||||
*
|
||||
* @since: Jan 21, 2003
|
||||
*/
|
||||
public class SharedLibrariesViewContentProvider implements ITreeContentProvider
|
||||
{
|
||||
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).
|
||||
* 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 = null;
|
||||
|
||||
private IDebugExceptionHandler fExceptionHandler;
|
||||
|
||||
/**
|
||||
* Constructor for SharedLibrariesViewContentProvider.
|
||||
*/
|
||||
public SharedLibrariesViewContentProvider()
|
||||
{
|
||||
fParentCache = new HashMap( 10 );
|
||||
public SharedLibrariesViewContentProvider() {
|
||||
setParentCache( new HashMap( 10 ) );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(Object)
|
||||
*/
|
||||
public Object[] getChildren( Object parent )
|
||||
{
|
||||
Object[] children = null;
|
||||
if ( parent != null && parent instanceof ICSharedLibraryManager )
|
||||
{
|
||||
children = ((ICSharedLibraryManager)parent).getSharedLibraries();
|
||||
}
|
||||
if ( children != null )
|
||||
{
|
||||
cache( parent, children );
|
||||
return children;
|
||||
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.
|
||||
* Caches the given elememts as children of the given parent.
|
||||
*
|
||||
* @param parent parent element
|
||||
* @param children children elements
|
||||
* @param parent
|
||||
* parent element
|
||||
* @param children
|
||||
* children elements
|
||||
*/
|
||||
protected void cache( Object parent, Object[] children )
|
||||
{
|
||||
for ( int i = 0; i < children.length; i++ )
|
||||
{
|
||||
fParentCache.put( children[i], parent );
|
||||
protected void cache( Object parent, Object[] children ) {
|
||||
for ( int i = 0; i < children.length; i++ ) {
|
||||
getParentCache().put( children[i], parent );
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(Object)
|
||||
*/
|
||||
public Object getParent( Object element )
|
||||
{
|
||||
return fParentCache.get( element );
|
||||
public Object getParent( Object element ) {
|
||||
return getParentCache().get( element );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(Object)
|
||||
*/
|
||||
public boolean hasChildren( Object parent )
|
||||
{
|
||||
if ( parent instanceof ICSharedLibraryManager )
|
||||
{
|
||||
return ( ((ICSharedLibraryManager)parent).getSharedLibraries().length > 0 );
|
||||
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)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
|
||||
*/
|
||||
public Object[] getElements( Object inputElement )
|
||||
{
|
||||
public Object[] getElements( Object inputElement ) {
|
||||
return getChildren( inputElement );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
fParentCache = null;
|
||||
public void dispose() {
|
||||
setParentCache( null );
|
||||
setExceptionHandler( null );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer, Object, Object)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer,
|
||||
* Object, Object)
|
||||
*/
|
||||
public void inputChanged( Viewer viewer, Object oldInput, Object newInput )
|
||||
{
|
||||
public void inputChanged( Viewer viewer, Object oldInput, Object newInput ) {
|
||||
clearCache();
|
||||
}
|
||||
|
||||
protected void clearCache()
|
||||
{
|
||||
if ( fParentCache != null )
|
||||
{
|
||||
fParentCache.clear();
|
||||
protected void clearCache() {
|
||||
if ( getParentCache() != null ) {
|
||||
getParentCache().clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove the cached parent for the given children
|
||||
*
|
||||
* @param children for which to remove cached parents
|
||||
* @param children
|
||||
* for which to remove cached parents
|
||||
*/
|
||||
public void removeCache( Object[] children )
|
||||
{
|
||||
if ( fParentCache != null )
|
||||
{
|
||||
for ( int i = 0; i < children.length; i++ )
|
||||
{
|
||||
fParentCache.remove( children[i] );
|
||||
public void removeCache( Object[] children ) {
|
||||
if ( getParentCache() != null ) {
|
||||
for ( int i = 0; i < children.length; i++ ) {
|
||||
getParentCache().remove( children[i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -149,18 +168,24 @@ public class SharedLibrariesViewContentProvider implements ITreeContentProvider
|
|||
*
|
||||
* @param handler debug exception handler or <code>null</code>
|
||||
*/
|
||||
protected void setExceptionHandler( IDebugExceptionHandler handler )
|
||||
{
|
||||
fExceptionHandler = handler;
|
||||
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 fExceptionHandler;
|
||||
protected IDebugExceptionHandler getExceptionHandler() {
|
||||
return this.fExceptionHandler;
|
||||
}
|
||||
|
||||
private HashMap getParentCache() {
|
||||
return this.fParentCache;
|
||||
}
|
||||
|
||||
private void setParentCache( HashMap parentCache ) {
|
||||
this.fParentCache = parentCache;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/**********************************************************************
|
||||
* 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;
|
||||
|
@ -12,35 +17,33 @@ import org.eclipse.debug.core.model.IDebugTarget;
|
|||
import org.eclipse.debug.ui.AbstractDebugView;
|
||||
|
||||
/**
|
||||
* Enter type comment.
|
||||
* Updates the shared libraries view.
|
||||
*
|
||||
* @since: Jan 21, 2003
|
||||
*/
|
||||
public class SharedLibrariesViewEventHandler extends AbstractDebugEventHandler
|
||||
{
|
||||
public class SharedLibrariesViewEventHandler extends AbstractDebugEventHandler {
|
||||
|
||||
/**
|
||||
* Constructor for SharedLibrariesViewEventHandler.
|
||||
* @param view
|
||||
* Constructs a new event handler on the given view
|
||||
*
|
||||
* @param view shared libraries view
|
||||
*/
|
||||
public SharedLibrariesViewEventHandler( AbstractDebugView view )
|
||||
{
|
||||
public SharedLibrariesViewEventHandler( AbstractDebugView view ) {
|
||||
super( view );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (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++ )
|
||||
{
|
||||
protected void doHandleDebugEvents( DebugEvent[] events ) {
|
||||
for ( int i = 0; i < events.length; i++ ) {
|
||||
DebugEvent event = events[i];
|
||||
switch( event.getKind() )
|
||||
{
|
||||
switch( event.getKind() ) {
|
||||
case DebugEvent.CREATE:
|
||||
case DebugEvent.TERMINATE:
|
||||
if ( event.getSource() instanceof IDebugTarget ||
|
||||
event.getSource() instanceof ICSharedLibrary )
|
||||
if ( event.getSource() instanceof IDebugTarget || event.getSource() instanceof ICSharedLibrary )
|
||||
refresh();
|
||||
break;
|
||||
case DebugEvent.CHANGE :
|
||||
|
@ -51,25 +54,25 @@ public class SharedLibrariesViewEventHandler extends AbstractDebugEventHandler
|
|||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#refresh()
|
||||
*/
|
||||
public void refresh()
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
public void refresh() {
|
||||
if ( isAvailable() ) {
|
||||
getView().showViewer();
|
||||
getTableTreeViewer().refresh();
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#refresh(java.lang.Object)
|
||||
*/
|
||||
protected void refresh( Object element )
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
protected void refresh( Object element ) {
|
||||
if ( isAvailable() ) {
|
||||
getView().showViewer();
|
||||
getTableTreeViewer().refresh( element );
|
||||
}
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
/**********************************************************************
|
||||
* 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.signals;
|
||||
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
public class SignalsMessages {
|
||||
|
||||
private static final String BUNDLE_NAME = "org.eclipse.cdt.debug.internal.ui.views.signals.SignalsMessages";//$NON-NLS-1$
|
||||
|
||||
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME );
|
||||
|
||||
private SignalsMessages() {
|
||||
}
|
||||
|
||||
public static String getString( String key ) {
|
||||
try {
|
||||
return RESOURCE_BUNDLE.getString( key );
|
||||
} catch( MissingResourceException e ) {
|
||||
return '!' + key + '!';
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
SignalsViewer.4=Name
|
||||
SignalsViewer.5=Pass
|
||||
SignalsViewer.6=Suspend
|
||||
SignalsViewer.7=Description
|
||||
SignalsViewer.8=yes
|
||||
SignalsViewer.9=no
|
|
@ -1,19 +1,24 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/**********************************************************************
|
||||
* 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.signals;
|
||||
|
||||
import org.eclipse.cdt.debug.core.ICSignalManager;
|
||||
import org.eclipse.cdt.debug.core.model.ICDebugTarget;
|
||||
import org.eclipse.cdt.debug.core.model.ICSignal;
|
||||
import org.eclipse.cdt.debug.internal.ui.CDebugImages;
|
||||
import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
||||
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.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;
|
||||
|
@ -25,71 +30,71 @@ import org.eclipse.jface.viewers.ISelection;
|
|||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.ITableLabelProvider;
|
||||
import org.eclipse.jface.viewers.LabelProvider;
|
||||
import org.eclipse.jface.viewers.StructuredSelection;
|
||||
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.ui.INullSelectionListener;
|
||||
import org.eclipse.ui.ISelectionListener;
|
||||
import org.eclipse.ui.IViewPart;
|
||||
import org.eclipse.ui.IWorkbenchActionConstants;
|
||||
import org.eclipse.ui.IWorkbenchPart;
|
||||
|
||||
|
||||
/**
|
||||
* Enter type comment.
|
||||
*
|
||||
* @since: Jan 30, 2003
|
||||
* Displays signals.
|
||||
*
|
||||
* @since: Mar 8, 2004
|
||||
*/
|
||||
public class SignalsView extends AbstractDebugEventHandlerView
|
||||
public class SignalsView extends AbstractDebugEventHandlerView
|
||||
implements ISelectionListener,
|
||||
IPropertyChangeListener,
|
||||
IDebugExceptionHandler
|
||||
{
|
||||
/**
|
||||
* Enter type comment.
|
||||
*
|
||||
* @since: Jan 30, 2003
|
||||
*/
|
||||
public class SignalsViewLabelProvider extends LabelProvider implements ITableLabelProvider
|
||||
{
|
||||
INullSelectionListener,
|
||||
IPropertyChangeListener,
|
||||
IDebugExceptionHandler {
|
||||
|
||||
public class SignalsViewLabelProvider extends LabelProvider implements ITableLabelProvider {
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(Object, int)
|
||||
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
|
||||
*/
|
||||
public Image getColumnImage( Object element, int columnIndex )
|
||||
{
|
||||
public Image getColumnImage( Object element, int columnIndex ) {
|
||||
if ( columnIndex == 0 )
|
||||
return CDebugUIPlugin.getImageDescriptorRegistry().get( CDebugImages.DESC_OBJS_SIGNAL );
|
||||
return getModelPresentation().getImage( element );
|
||||
return null;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(Object, int)
|
||||
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
|
||||
*/
|
||||
public String getColumnText( Object element, int columnIndex )
|
||||
{
|
||||
if ( element instanceof ICSignal )
|
||||
{
|
||||
switch( columnIndex )
|
||||
{
|
||||
case 0:
|
||||
return ((ICSignal)element).getName();
|
||||
case 1:
|
||||
return ( ((ICSignal)element).isPassEnabled() ) ?
|
||||
SignalsViewer.YES_VALUE : SignalsViewer.NO_VALUE;
|
||||
case 2:
|
||||
return ( ((ICSignal)element).isStopEnabled() ) ?
|
||||
SignalsViewer.YES_VALUE : SignalsViewer.NO_VALUE;
|
||||
case 3:
|
||||
return ((ICSignal)element).getDescription();
|
||||
public String getColumnText( Object element, int columnIndex ) {
|
||||
if ( element instanceof ICSignal ) {
|
||||
try {
|
||||
switch( columnIndex ) {
|
||||
case 0:
|
||||
return ((ICSignal)element).getName();
|
||||
case 1:
|
||||
return (((ICSignal)element).isPassEnabled()) ? SignalsViewer.YES_VALUE : SignalsViewer.NO_VALUE;
|
||||
case 2:
|
||||
return (((ICSignal)element).isStopEnabled()) ? SignalsViewer.YES_VALUE : SignalsViewer.NO_VALUE;
|
||||
case 3:
|
||||
return ((ICSignal)element).getDescription();
|
||||
}
|
||||
} catch( DebugException e ) {
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private IDebugModelPresentation getModelPresentation() {
|
||||
return CDebugUIPlugin.getDebugModelPresentation();
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#createViewer(org.eclipse.swt.widgets.Composite)
|
||||
*/
|
||||
protected Viewer createViewer( Composite parent )
|
||||
{
|
||||
protected Viewer createViewer( Composite parent ) {
|
||||
CDebugUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener( this );
|
||||
|
||||
// add tree viewer
|
||||
|
@ -97,7 +102,8 @@ public class SignalsView extends AbstractDebugEventHandlerView
|
|||
vv.setContentProvider( createContentProvider() );
|
||||
vv.setLabelProvider( new SignalsViewLabelProvider() );
|
||||
vv.setUseHashlookup( true );
|
||||
vv.setExceptionHandler( this );
|
||||
|
||||
CDebugUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener( this );
|
||||
|
||||
// listen to selection in debug view
|
||||
getSite().getPage().addSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
|
||||
|
@ -109,109 +115,53 @@ public class SignalsView extends AbstractDebugEventHandlerView
|
|||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#createActions()
|
||||
*/
|
||||
protected void createActions()
|
||||
{
|
||||
// set initial content here, as viewer has to be set
|
||||
setInitialContent();
|
||||
protected void createActions() {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#getHelpContextId()
|
||||
*/
|
||||
protected String getHelpContextId()
|
||||
{
|
||||
protected String getHelpContextId() {
|
||||
return ICDebugHelpContextIds.SIGNALS_VIEW;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#fillContextMenu(IMenuManager)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#fillContextMenu(org.eclipse.jface.action.IMenuManager)
|
||||
*/
|
||||
protected void fillContextMenu( IMenuManager menu )
|
||||
{
|
||||
protected void fillContextMenu( IMenuManager menu ) {
|
||||
menu.add( new Separator( IWorkbenchActionConstants.MB_ADDITIONS ) );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#configureToolBar(IToolBarManager)
|
||||
*/
|
||||
protected void configureToolBar( IToolBarManager tbm )
|
||||
{
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
|
||||
*/
|
||||
public void selectionChanged( IWorkbenchPart part, ISelection selection )
|
||||
{
|
||||
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 )
|
||||
{
|
||||
ICSignalManager sm = null;
|
||||
if ( ssel != null && ssel.size() == 1 )
|
||||
{
|
||||
Object input = ssel.getFirstElement();
|
||||
if ( input instanceof IDebugElement )
|
||||
{
|
||||
sm = (ICSignalManager)((IDebugElement)input).getDebugTarget().getAdapter( ICSignalManager.class );
|
||||
}
|
||||
}
|
||||
|
||||
if ( getViewer() == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Object current = getViewer().getInput();
|
||||
if ( current != null && current.equals( sm ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
showViewer();
|
||||
getViewer().setInput( sm );
|
||||
updateObjects();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the viewer input on creation
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.debug.ui.AbstractDebugView#configureToolBar(org.eclipse.jface.action.IToolBarManager)
|
||||
*/
|
||||
protected void setInitialContent()
|
||||
{
|
||||
ISelection selection =
|
||||
getSite().getPage().getSelection( IDebugUIConstants.ID_DEBUG_VIEW );
|
||||
if ( selection instanceof IStructuredSelection && !selection.isEmpty() )
|
||||
{
|
||||
setViewerInput( (IStructuredSelection)selection );
|
||||
}
|
||||
protected void configureToolBar( IToolBarManager tbm ) {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.IWorkbenchPart#dispose()
|
||||
* @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
getSite().getPage().removeSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
|
||||
CDebugUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener( this );
|
||||
super.dispose();
|
||||
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(org.eclipse.jface.util.PropertyChangeEvent)
|
||||
*/
|
||||
public void propertyChange( PropertyChangeEvent event ) {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler#handleException(org.eclipse.debug.core.DebugException)
|
||||
*/
|
||||
public void handleException( DebugException e ) {
|
||||
showMessage( e.getMessage() );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -219,10 +169,60 @@ public class SignalsView extends AbstractDebugEventHandlerView
|
|||
*
|
||||
* @return a content provider
|
||||
*/
|
||||
protected IContentProvider createContentProvider()
|
||||
{
|
||||
private IContentProvider createContentProvider() {
|
||||
SignalsViewContentProvider cp = new SignalsViewContentProvider();
|
||||
cp.setExceptionHandler( this );
|
||||
return cp;
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
/* (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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,58 +1,57 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/**********************************************************************
|
||||
* 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.signals;
|
||||
|
||||
import org.eclipse.cdt.debug.core.ICSignalManager;
|
||||
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.IStructuredContentProvider;
|
||||
import org.eclipse.jface.viewers.Viewer;
|
||||
|
||||
|
||||
/**
|
||||
* Enter type comment.
|
||||
*
|
||||
* @since: Jan 30, 2003
|
||||
* Provides content for the signals view.
|
||||
*
|
||||
* @since: Mar 8, 2004
|
||||
*/
|
||||
public class SignalsViewContentProvider implements IStructuredContentProvider
|
||||
{
|
||||
public class SignalsViewContentProvider implements IStructuredContentProvider {
|
||||
|
||||
/**
|
||||
* Handler for exceptions as content is retrieved
|
||||
*/
|
||||
private IDebugExceptionHandler fExceptionHandler = null;
|
||||
|
||||
/**
|
||||
* Constructor for SignalsViewContentProvider.
|
||||
*/
|
||||
public SignalsViewContentProvider()
|
||||
{
|
||||
super();
|
||||
public SignalsViewContentProvider() {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
|
||||
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
|
||||
*/
|
||||
public Object[] getElements( Object inputElement )
|
||||
{
|
||||
if ( inputElement instanceof ICSignalManager )
|
||||
{
|
||||
try
|
||||
{
|
||||
return ((ICSignalManager)inputElement).getSignals();
|
||||
public Object[] getElements( Object inputElement ) {
|
||||
if ( inputElement instanceof ICDebugTarget ) {
|
||||
ICDebugTarget target = (ICDebugTarget)inputElement;
|
||||
try {
|
||||
if ( target != null ) {
|
||||
Object[] signals = target.getSignals();
|
||||
if ( signals != null )
|
||||
return signals;
|
||||
}
|
||||
}
|
||||
catch( DebugException e )
|
||||
{
|
||||
catch( DebugException e ) {
|
||||
if ( getExceptionHandler() != null )
|
||||
{
|
||||
getExceptionHandler().handleException( e );
|
||||
}
|
||||
else
|
||||
{
|
||||
CDebugUIPlugin.log( e );
|
||||
}
|
||||
}
|
||||
}
|
||||
return new Object[0];
|
||||
|
@ -61,15 +60,13 @@ public class SignalsViewContentProvider implements IStructuredContentProvider
|
|||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
|
||||
*/
|
||||
public void dispose()
|
||||
{
|
||||
public void dispose() {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer, Object, Object)
|
||||
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
|
||||
*/
|
||||
public void inputChanged( Viewer viewer, Object oldInput, Object newInput )
|
||||
{
|
||||
public void inputChanged( Viewer viewer, Object oldInput, Object newInput ) {
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -77,8 +74,7 @@ public class SignalsViewContentProvider implements IStructuredContentProvider
|
|||
*
|
||||
* @param handler debug exception handler or <code>null</code>
|
||||
*/
|
||||
protected void setExceptionHandler( IDebugExceptionHandler handler )
|
||||
{
|
||||
protected void setExceptionHandler(IDebugExceptionHandler handler) {
|
||||
fExceptionHandler = handler;
|
||||
}
|
||||
|
||||
|
@ -87,8 +83,7 @@ public class SignalsViewContentProvider implements IStructuredContentProvider
|
|||
*
|
||||
* @return debug exception handler or <code>null</code>
|
||||
*/
|
||||
protected IDebugExceptionHandler getExceptionHandler()
|
||||
{
|
||||
protected IDebugExceptionHandler getExceptionHandler() {
|
||||
return fExceptionHandler;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/**********************************************************************
|
||||
* 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.signals;
|
||||
|
||||
import org.eclipse.cdt.debug.core.model.ICSignal;
|
||||
|
@ -11,70 +17,43 @@ import org.eclipse.debug.core.DebugEvent;
|
|||
import org.eclipse.debug.core.model.IDebugTarget;
|
||||
import org.eclipse.debug.ui.AbstractDebugView;
|
||||
|
||||
|
||||
/**
|
||||
* Enter type comment.
|
||||
*
|
||||
* @since: Jan 30, 2003
|
||||
* Updates the signals view.
|
||||
*
|
||||
* @since: Mar 8, 2004
|
||||
*/
|
||||
public class SignalsViewEventHandler extends AbstractDebugEventHandler
|
||||
{
|
||||
public class SignalsViewEventHandler extends AbstractDebugEventHandler {
|
||||
|
||||
/**
|
||||
* Constructor for SignalsViewEventHandler.
|
||||
* @param view
|
||||
* Constructs a new event handler on the given view
|
||||
*
|
||||
* @param view signals view
|
||||
*/
|
||||
public SignalsViewEventHandler( AbstractDebugView view )
|
||||
{
|
||||
public SignalsViewEventHandler( AbstractDebugView view ) {
|
||||
super( view );
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#doHandleDebugEvents(DebugEvent[])
|
||||
* @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#doHandleDebugEvents(org.eclipse.debug.core.DebugEvent[])
|
||||
*/
|
||||
protected void doHandleDebugEvents( DebugEvent[] events )
|
||||
{
|
||||
for( int i = 0; i < events.length; i++ )
|
||||
{
|
||||
protected void doHandleDebugEvents( DebugEvent[] events ) {
|
||||
for( int i = 0; i < events.length; i++ ) {
|
||||
DebugEvent event = events[i];
|
||||
switch( event.getKind() )
|
||||
{
|
||||
switch( event.getKind() ) {
|
||||
case DebugEvent.CREATE:
|
||||
case DebugEvent.TERMINATE:
|
||||
if ( event.getSource() instanceof IDebugTarget ||
|
||||
event.getSource() instanceof ICSignal )
|
||||
if ( event.getSource() instanceof IDebugTarget || event.getSource() instanceof ICSignal )
|
||||
refresh();
|
||||
break;
|
||||
case DebugEvent.SUSPEND :
|
||||
case DebugEvent.SUSPEND:
|
||||
refresh();
|
||||
break;
|
||||
case DebugEvent.CHANGE :
|
||||
case DebugEvent.CHANGE:
|
||||
if ( event.getSource() instanceof ICSignal )
|
||||
refresh( event.getSource() );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh the given element in the viewer - must be called in UI thread.
|
||||
*/
|
||||
protected void refresh( Object element )
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
getView().showViewer();
|
||||
getTableViewer().refresh( element );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh the viewer - must be called in UI thread.
|
||||
*/
|
||||
public void refresh()
|
||||
{
|
||||
if ( isAvailable() )
|
||||
{
|
||||
getView().showViewer();
|
||||
getTableViewer().refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,37 +1,35 @@
|
|||
/*
|
||||
*(c) Copyright QNX Software Systems Ltd. 2002.
|
||||
* All Rights Reserved.
|
||||
/**********************************************************************
|
||||
* 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.signals;
|
||||
|
||||
import org.eclipse.cdt.debug.core.model.ICSignal;
|
||||
import org.eclipse.cdt.debug.internal.ui.PixelConverter;
|
||||
import org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler;
|
||||
import org.eclipse.debug.core.DebugException;
|
||||
import org.eclipse.jface.viewers.CellEditor;
|
||||
import org.eclipse.jface.viewers.ComboBoxCellEditor;
|
||||
import org.eclipse.jface.viewers.ICellModifier;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.eclipse.jface.viewers.TableViewer;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Display;
|
||||
import org.eclipse.swt.widgets.Table;
|
||||
import org.eclipse.swt.widgets.TableColumn;
|
||||
import org.eclipse.cdt.debug.ui.CDebugUIPlugin;
|
||||
|
||||
|
||||
/**
|
||||
* Enter type comment.
|
||||
*
|
||||
* @since: Jan 30, 2003
|
||||
* Signals viewer.
|
||||
*
|
||||
* @since: Mar 8, 2004
|
||||
*/
|
||||
public class SignalsViewer extends TableViewer
|
||||
{
|
||||
public class SignalsViewer extends TableViewer {
|
||||
|
||||
// String constants
|
||||
protected static final String YES_VALUE = CDebugUIPlugin.getResourceString("SignalsViewer.yes"); //$NON-NLS-1$
|
||||
protected static final String NO_VALUE = CDebugUIPlugin.getResourceString("SignalsViewer.no"); //$NON-NLS-1$
|
||||
protected static final String YES_VALUE = SignalsMessages.getString( "SignalsViewer.8" ); //$NON-NLS-1$
|
||||
protected static final String NO_VALUE = SignalsMessages.getString( "SignalsViewer.9" ); //$NON-NLS-1$
|
||||
|
||||
// Column properties
|
||||
private static final String CP_NAME = "name"; //$NON-NLS-1$
|
||||
|
@ -39,15 +37,19 @@ public class SignalsViewer extends TableViewer
|
|||
private static final String CP_SUSPEND = "suspend"; //$NON-NLS-1$
|
||||
private static final String CP_DESCRIPTION = "description"; //$NON-NLS-1$
|
||||
|
||||
private IDebugExceptionHandler fExceptionHandler = null;
|
||||
// Column labels
|
||||
private static final String CL_NAME = SignalsMessages.getString( "SignalsViewer.4" ); //$NON-NLS-1$
|
||||
private static final String CL_PASS = SignalsMessages.getString( "SignalsViewer.5" ); //$NON-NLS-1$
|
||||
private static final String CL_SUSPEND = SignalsMessages.getString( "SignalsViewer.6" ); //$NON-NLS-1$
|
||||
private static final String CL_DESCRIPTION = SignalsMessages.getString( "SignalsViewer.7" ); //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* Constructor for SignalsViewer.
|
||||
* Constructor for SignalsViewer
|
||||
*
|
||||
* @param parent
|
||||
* @param style
|
||||
*/
|
||||
public SignalsViewer( Composite parent, int style )
|
||||
{
|
||||
public SignalsViewer( Composite parent, int style ) {
|
||||
super( parent, style );
|
||||
Table table = getTable();
|
||||
table.setLinesVisible( true );
|
||||
|
@ -65,10 +67,10 @@ public class SignalsViewer extends TableViewer
|
|||
columns[2].setResizable( false );
|
||||
columns[3].setResizable( true );
|
||||
|
||||
columns[0].setText( CDebugUIPlugin.getResourceString("SignalsViewer.Name") ); //$NON-NLS-1$
|
||||
columns[1].setText( CDebugUIPlugin.getResourceString("SignalsViewer.Pass") ); //$NON-NLS-1$
|
||||
columns[2].setText( CDebugUIPlugin.getResourceString("SignalsViewer.Suspend") ); //$NON-NLS-1$
|
||||
columns[3].setText( CDebugUIPlugin.getResourceString("SignalsViewer.Description") ); //$NON-NLS-1$
|
||||
columns[0].setText( CL_NAME );
|
||||
columns[1].setText( CL_PASS );
|
||||
columns[2].setText( CL_SUSPEND );
|
||||
columns[3].setText( CL_DESCRIPTION );
|
||||
|
||||
PixelConverter pc = new PixelConverter( parent );
|
||||
columns[0].setWidth( pc.convertWidthInCharsToPixels( 20 ) );
|
||||
|
@ -76,76 +78,6 @@ public class SignalsViewer extends TableViewer
|
|||
columns[2].setWidth( pc.convertWidthInCharsToPixels( 15 ) );
|
||||
columns[3].setWidth( pc.convertWidthInCharsToPixels( 50 ) );
|
||||
|
||||
CellEditor cellEditor = new ComboBoxCellEditor( table, new String[]{ YES_VALUE, NO_VALUE } );
|
||||
setCellEditors( new CellEditor[]{ null, cellEditor, cellEditor, null } );
|
||||
setColumnProperties( new String[]{ CP_NAME, CP_PASS, CP_SUSPEND, CP_DESCRIPTION } );
|
||||
setCellModifier( createCellModifier() );
|
||||
}
|
||||
|
||||
private ICellModifier createCellModifier()
|
||||
{
|
||||
return new ICellModifier()
|
||||
{
|
||||
public boolean canModify( Object element, String property )
|
||||
{
|
||||
if ( element instanceof ICSignal )
|
||||
{
|
||||
return ((ICSignal)element).getDebugTarget().isSuspended();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public Object getValue( Object element, String property )
|
||||
{
|
||||
if ( element instanceof ICSignal )
|
||||
{
|
||||
if ( CP_PASS.equals( property ) )
|
||||
{
|
||||
return ( ((ICSignal)element).isPassEnabled() ) ? new Integer( 0 ) : new Integer( 1 );
|
||||
}
|
||||
else if ( CP_SUSPEND.equals( property ) )
|
||||
{
|
||||
return ( ((ICSignal)element).isStopEnabled() ) ? new Integer( 0 ) : new Integer( 1 );
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void modify( Object element, String property, Object value )
|
||||
{
|
||||
IStructuredSelection sel = (IStructuredSelection)getSelection();
|
||||
Object entry = sel.getFirstElement();
|
||||
if ( entry instanceof ICSignal && value instanceof Integer )
|
||||
{
|
||||
try
|
||||
{
|
||||
boolean enable = ( ((Integer)value).intValue() == 0 );
|
||||
if ( CP_PASS.equals( property ) )
|
||||
{
|
||||
((ICSignal)entry).setPassEnabled( enable );
|
||||
}
|
||||
else if ( CP_SUSPEND.equals( property ) )
|
||||
{
|
||||
((ICSignal)entry).setStopEnabled( enable );
|
||||
}
|
||||
refresh( entry );
|
||||
}
|
||||
catch( DebugException e )
|
||||
{
|
||||
Display.getCurrent().beep();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
protected IDebugExceptionHandler getExceptionHandler()
|
||||
{
|
||||
return fExceptionHandler;
|
||||
}
|
||||
|
||||
protected void setExceptionHandler( IDebugExceptionHandler handler )
|
||||
{
|
||||
fExceptionHandler = handler;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
internal.ui.actions.SignalActionDelegate.Unable_to_deliver_signal_to_target=Unable to deliver the signal ''{0}'' to the target.
|
||||
internal.ui.actions.SignalActionDelegate.Unable_to_deliver_signal_to_target=Unable to deliver the signal to the target.
|
||||
internal.ui.actions.SignalActionDelegate.Operation_failed=Operation failed.
|
||||
internal.ui.actions.ShowRegisterTypesAction.Show_Type_Names_checkbox=Show &Type Names
|
||||
internal.ui.actions.ShowRegisterTypesAction.Show_Type_Names_tooltip=Show Type Names
|
||||
|
|
Loading…
Add table
Reference in a new issue