diff --git a/debug/org.eclipse.cdt.debug.ui/ChangeLog b/debug/org.eclipse.cdt.debug.ui/ChangeLog
index 38faed5c1c1..0b7da382c85 100644
--- a/debug/org.eclipse.cdt.debug.ui/ChangeLog
+++ b/debug/org.eclipse.cdt.debug.ui/ChangeLog
@@ -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)
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.properties b/debug/org.eclipse.cdt.debug.ui/plugin.properties
index b5bbf06d284..85f4b077d9f 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.properties
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.properties
@@ -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
diff --git a/debug/org.eclipse.cdt.debug.ui/plugin.xml b/debug/org.eclipse.cdt.debug.ui/plugin.xml
index bd0db10aa5a..3875d413898 100644
--- a/debug/org.eclipse.cdt.debug.ui/plugin.xml
+++ b/debug/org.eclipse.cdt.debug.ui/plugin.xml
@@ -24,8 +24,8 @@
-
+
@@ -746,6 +746,21 @@
+
+
+
+
+
+
null 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 null
if none.
@@ -197,47 +206,41 @@ public abstract class AbstractDebugEventHandler implements IDebugEventSetListene
* @return this event handler's viewer as a tree
* viewer or null
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 null
if none.
- *
- * @return this event handler's viewer as a table
- * viewer or null
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 null
if none.
+ * viewer or null
if none.
*
- * @return this event handler's viewer as a table tree
+ * @return this event handler's viewer as a table tree
* viewer or null
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 null
if none.
+ *
+ * @return this event handler's viewer as a structured
+ * viewer or null
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() {
+ }
+
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandlerView.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandlerView.java
index 5f6049a7441..3187139dbbf 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandlerView.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandlerView.java
@@ -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);
}
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/IDebugExceptionHandler.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/IDebugExceptionHandler.java
index a4a6ba8c1ea..22a7813e143 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/IDebugExceptionHandler.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/IDebugExceptionHandler.java
@@ -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.
*
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/ViewerState.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/ViewerState.java
deleted file mode 100644
index 168bc3af53d..00000000000
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/ViewerState.java
+++ /dev/null
@@ -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);
- }
- }
-}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesMessages.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesMessages.java
new file mode 100644
index 00000000000..cdd6d270d07
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesMessages.java
@@ -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 + '!';
+ }
+ }
+}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesMessages.properties b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesMessages.properties
new file mode 100644
index 00000000000..46dedf5f9c5
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesMessages.properties
@@ -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
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java
index 41f8d8b8c4c..5a0e6701b14 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java
@@ -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();
+ }
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewContentProvider.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewContentProvider.java
index 575f9c297b6..6f1c6b5436c 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewContentProvider.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewContentProvider.java
@@ -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 IVariable
(child) -> IVariable
(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 IVariable
(child) ->IVariable
+ * (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 null
*/
- 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 null
*/
- 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;
+ }
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewEventHandler.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewEventHandler.java
index 8fc79c30841..8fb7e1e7bab 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewEventHandler.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewEventHandler.java
@@ -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 );
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsMessages.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsMessages.java
new file mode 100644
index 00000000000..674ca830ec3
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsMessages.java
@@ -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 + '!';
+ }
+ }
+}
\ No newline at end of file
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsMessages.properties b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsMessages.properties
new file mode 100644
index 00000000000..18d4cbf0163
--- /dev/null
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsMessages.properties
@@ -0,0 +1,6 @@
+SignalsViewer.4=Name
+SignalsViewer.5=Pass
+SignalsViewer.6=Suspend
+SignalsViewer.7=Description
+SignalsViewer.8=yes
+SignalsViewer.9=no
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsView.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsView.java
index e4112848bd9..f71c8b2d39d 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsView.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsView.java
@@ -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();
+ }
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewContentProvider.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewContentProvider.java
index 9002e792bb9..f3562321f9d 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewContentProvider.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewContentProvider.java
@@ -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 null
*/
- 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 null
*/
- protected IDebugExceptionHandler getExceptionHandler()
- {
+ protected IDebugExceptionHandler getExceptionHandler() {
return fExceptionHandler;
}
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewEventHandler.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewEventHandler.java
index bd8b092eea0..55a4565f49c 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewEventHandler.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewEventHandler.java
@@ -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();
- }
- }
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewer.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewer.java
index e07ac1e7305..ca9fe3e8cff 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewer.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/signals/SignalsViewer.java
@@ -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;
}
}
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CDebugUIPluginResources.properties b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CDebugUIPluginResources.properties
index 1846b046a9f..e0b09f2b854 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CDebugUIPluginResources.properties
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/CDebugUIPluginResources.properties
@@ -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