diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AddExpressionActionDelegate.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AddExpressionActionDelegate.java index 6a7672af596..f0ed6316f45 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AddExpressionActionDelegate.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/actions/AddExpressionActionDelegate.java @@ -30,10 +30,12 @@ import org.eclipse.ui.IEditorPart; import org.eclipse.ui.INullSelectionListener; import org.eclipse.ui.IPartListener; import org.eclipse.ui.ISelectionListener; +import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkbenchWindowActionDelegate; +import org.eclipse.ui.PartInitException; import org.eclipse.ui.texteditor.ITextEditor; /** @@ -262,6 +264,7 @@ public class AddExpressionActionDelegate implements IWorkbenchWindowActionDelega { IExpression expression = CDebugModel.createExpression( getDebugTarget(), text ); DebugPlugin.getDefault().getExpressionManager().addExpression( expression ); + showExpressionView(); } catch( DebugException e ) { @@ -318,4 +321,32 @@ public class AddExpressionActionDelegate implements IWorkbenchWindowActionDelega } } } + + /** + * Make the expression view visible or open one if required. + * + */ + protected void showExpressionView() + { + IWorkbenchPage page = CDebugUIPlugin.getDefault().getActivePage(); + if ( page != null ) + { + IViewPart part = page.findView( IDebugUIConstants.ID_EXPRESSION_VIEW ); + if ( part == null ) + { + try + { + page.showView( IDebugUIConstants.ID_EXPRESSION_VIEW ); + } + catch( PartInitException e ) + { + CDebugUIPlugin.getDefault().log( e.getStatus() ); + } + } + else + { + page.bringToTop( part ); + } + } + } }