?
src/org/eclipse/cdt/debug/internal/ui/views/signals
?
src/org/eclipse/cdt/debug/internal/ui/views/signals
?
src/org/eclipse/cdt/debug/internal/ui/views/signals
?
src/org/eclipse/cdt/debug/internal/ui/views/signals
Index:
ChangeLog
===================================================================
RCS
file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v
retrieving revision
1.85
diff -u -r1.85 ChangeLog
--- ChangeLog 30 Jan 2003 16:23:48
-0000 1.85
+++ ChangeLog 31 Jan 2003 22:35:53 -0000
@@ -1,3
+1,21 @@
+2003-01-31 Mikhail Khodjaiants
+ Implementing the 'Signals'
view.
+ * CDebugImages.java
+ *
ICDebugHelpContextIds.java
+ * SignalActionDelegate.java
+ *
SignalsView.java: new
+ * SignalsViewContentProvider.java:
new
+ * SignalsViewer.java: new
+ *
SignalsViewEventHandler.java: new
+ *
AbstractDebugEventHandler.java
+ * plugin.xml
+ *
plugin.properties
+ icons/full/clcl16/signal_co.gif
+ icons/full/dlcl16/signal_co.gif
+ icons/full/elcl16/signal_co.gif
+ icons/full/eview6/signals_view.gif
+ icons/full/cview6/signals_view.gif
+
2003-01-30
Mikhail Khodjaiants
Disassembly editor input
fix.
* CDTDebugModelPresentation.java
Index:
plugin.properties
===================================================================
RCS
file: /home/tools/org.eclipse.cdt.debug.ui/plugin.properties,v
retrieving
revision 1.29
diff -u -r1.29 plugin.properties
---
plugin.properties 17 Jan 2003 19:31:40 -0000 1.29
+++
plugin.properties 31 Jan 2003 22:35:53 -0000
@@ -9,6 +9,7
@@
RegistersView.name=Registers
MemoryView.name=Memory
SharedLibrariesView.name=Shared
Libraries
+SignalsView.name=Signals
CDebuggerPage.name=C
Debugger UI Page
MemoryPreferencePage.name=Memory View
@@ -54,3
+55,5 @@
DisassemblyEditor.name=Disassembly
Editor
LoadSymbolsAction.label=Load
Symbols
+SignalAction.label=Signal
+
Index:
plugin.xml
===================================================================
RCS
file: /home/tools/org.eclipse.cdt.debug.ui/plugin.xml,v
retrieving revision
1.47
diff -u -r1.47 plugin.xml
--- plugin.xml 30 Jan 2003 15:01:29
-0000 1.47
+++ plugin.xml 31 Jan 2003 22:35:53 -0000
@@ -55,6
+55,13
@@
class="org.eclipse.cdt.debug.internal.ui.views.sharedlibs.SharedLibrariesView"
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
</view>
+
<view
+
name="%SignalsView.name"
+
icon="icons/full/cview16/signals_view.gif"
+
category="org.eclipse.debug.ui"
+
class="org.eclipse.cdt.debug.internal.ui.views.signals.SignalsView"
+
id="org.eclipse.cdt.debug.ui.SignalsView">
+
</view>
</extension>
<extension
point="org.eclipse.ui.perspectiveExtensions">
@@ -75,6 +82,11
@@
relationship="stack"
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
</view>
+
<view
+
relative="org.eclipse.debug.ui.VariableView"
+
relationship="stack"
+
id="org.eclipse.cdt.debug.ui.SignalsView">
+
</view>
<actionSet
id="org.eclipse.cdt.debug.ui.debugActionSet">
</actionSet>
@@ -654,11 +666,30
@@
<action
label="%LoadSymbolsAction.label"
icon="icons/full/clcl16/load_symbols_co.gif"
-
helpContextId="breakpoint_properties_action_context"
+
helpContextId="load_symbols_action_context"
class="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsActionDelegate"
menubarPath="additions"
enablesFor="1"
id="org.eclipse.cdt.debug.internal.ui.actions.LoadSymbolsActionDelegate">
+
<enablement>
+
<pluginState
+
value="activated"
+
id="org.eclipse.cdt.debug.ui">
+
</pluginState>
+
</enablement>
+
</action>
+
</objectContribution>
+
<objectContribution
+
objectClass="org.eclipse.cdt.debug.core.model.ICSignal"
+
id="org.eclipse.cdt.debug.ui.SignalActions">
+
<action
+
label="%SignalAction.label"
+
icon="icons/full/clcl16/signal_co.gif"
+
helpContextId="signal_action_context"
+
class="org.eclipse.cdt.debug.internal.ui.actions.SignalActionDelegate"
+
menubarPath="additions"
+
enablesFor="1"
+
id="org.eclipse.cdt.debug.internal.ui.actions.SignalActionDelegate">
<enablement>
<pluginState
value="activated"
Index:
icons/full/clcl16/signal_co.gif
===================================================================
RCS
file: icons/full/clcl16/signal_co.gif
diff -N
icons/full/clcl16/signal_co.gif
Binary files /dev/null and signal_co.gif
differ
Index:
icons/full/cview16/signals_view.gif
===================================================================
RCS
file: icons/full/cview16/signals_view.gif
diff -N
icons/full/cview16/signals_view.gif
Binary files /dev/null and
signals_view.gif differ
Index:
icons/full/dlcl16/signal_co.gif
===================================================================
RCS
file: icons/full/dlcl16/signal_co.gif
diff -N
icons/full/dlcl16/signal_co.gif
Binary files /dev/null and signal_co.gif
differ
Index:
icons/full/elcl16/signal_co.gif
===================================================================
RCS
file: icons/full/elcl16/signal_co.gif
diff -N
icons/full/elcl16/signal_co.gif
Binary files /dev/null and signal_co.gif
differ
Index:
icons/full/eview16/signals_view.gif
===================================================================
RCS
file: icons/full/eview16/signals_view.gif
diff -N
icons/full/eview16/signals_view.gif
Binary files /dev/null and
signals_view.gif differ
Index:
icons/full/obj16/signal_obj.gif
===================================================================
RCS
file: icons/full/obj16/signal_obj.gif
diff -N
icons/full/obj16/signal_obj.gif
Binary files /dev/null and signal_obj.gif
differ
Index:
src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java
===================================================================
RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java,v
retrieving
revision 1.14
diff -u -r1.14 CDebugImages.java
---
src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java 17 Jan 2003
19:31:40 -0000 1.14
+++
src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java 31 Jan 2003
22:35:54 -0000
@@ -67,6 +67,7 @@
public static final String
IMG_OBJS_FOLDER = NAME_PREFIX +
"folder_obj.gif"; //$NON-NLS-1$
public static final String
IMG_OBJS_LOADED_SHARED_LIBRARY = NAME_PREFIX +
"library_syms_obj.gif"; //$NON-NLS-1$
public static final
String IMG_OBJS_SHARED_LIBRARY = NAME_PREFIX +
"library_obj.gif"; //$NON-NLS-1$
+ public static final String
IMG_OBJS_SIGNAL = NAME_PREFIX +
"signal_obj.gif"; //$NON-NLS-1$
public static
final String IMG_LCL_TYPE_NAMES = NAME_PREFIX +
"tnames_co.gif"; //$NON-NLS-1$
public static final String
IMG_LCL_CHANGE_REGISTER_VALUE = NAME_PREFIX +
"change_reg_value_co.gif"; //$NON-NLS-1$
@@ -116,6 +117,7
@@
public static final ImageDescriptor DESC_OBJS_FOLDER =
createManaged( T_OBJ, IMG_OBJS_FOLDER );
public static final
ImageDescriptor DESC_OBJS_LOADED_SHARED_LIBRARY = createManaged( T_OBJ,
IMG_OBJS_LOADED_SHARED_LIBRARY );
public static final
ImageDescriptor DESC_OBJS_SHARED_LIBRARY = createManaged( T_OBJ,
IMG_OBJS_SHARED_LIBRARY );
+ public static final ImageDescriptor
DESC_OBJS_SIGNAL = createManaged( T_OBJ, IMG_OBJS_SIGNAL
);
public static final ImageDescriptor
DESC_WIZBAN_ADD_SOURCE_LOCATION = createManaged( T_WIZBAN,
IMG_WIZBAN_ADD_SOURCE_LOCATION );
//$NON-NLS-1$
public static final ImageDescriptor
DESC_WIZBAN_ADD_PRJ_SOURCE_LOCATION = createManaged( T_WIZBAN,
IMG_WIZBAN_ADD_PRJ_SOURCE_LOCATION );
//$NON-NLS-1$
public static final ImageDescriptor
DESC_WIZBAN_ADD_DIR_SOURCE_LOCATION = createManaged( T_WIZBAN,
IMG_WIZBAN_ADD_DIR_SOURCE_LOCATION ); //$NON-NLS-1$
Index:
src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java
===================================================================
RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java,v
retrieving
revision 1.9
diff -u -r1.9 ICDebugHelpContextIds.java
---
src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java 17 Jan
2003 00:15:12 -0000 1.9
+++
src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java 31 Jan
2003 22:35:54 -0000
@@ -35,6 +35,7 @@
public static final
String REGISTERS_VIEW = PREFIX + "registers_view_context";
//$NON-NLS-1$
public static final String MEMORY_VIEW = PREFIX +
"memory_view_context"; //$NON-NLS-1$
public static final String
SHARED_LIBRARIES_VIEW = PREFIX + "shared_libraries_view_context";
//$NON-NLS-1$
+ public static final String SIGNALS_VIEW = PREFIX +
"signals_view_context"; //$NON-NLS-1$
// Preference
pages
public static final String MEMORY_PREFERENCE_PAGE = PREFIX
+ "memory_preference_page_context"; //$NON-NLS-1$
Index:
src/org/eclipse/cdt/debug/internal/ui/actions/SignalActionDelegate.java
===================================================================
RCS
file:
src/org/eclipse/cdt/debug/internal/ui/actions/SignalActionDelegate.java
diff
-N
src/org/eclipse/cdt/debug/internal/ui/actions/SignalActionDelegate.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/actions/SignalActionDelegate.java 31
Jan 2003 22:35:54 -0000
@@ -0,0 +1,126 @@
+/*
+ *(c) Copyright QNX
Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+
*/
+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.swt.custom.BusyIndicator;
+import
org.eclipse.swt.widgets.Display;
+import
org.eclipse.ui.IObjectActionDelegate;
+import
org.eclipse.ui.IWorkbenchPart;
+import
org.eclipse.ui.IWorkbenchWindow;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Jan 31, 2003
+ */
+public class SignalActionDelegate
implements IObjectActionDelegate
+{
+ private ICSignal fSignal =
null;
+
+ /**
+ * Constructor for
SignalActionDelegate.
+ */
+ public
SignalActionDelegate()
+ {
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.ui.IObjectActionDelegate#setActivePart(IAction,
IWorkbenchPart)
+ */
+ public void setActivePart( IAction
action, IWorkbenchPart targetPart )
+ {
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.ui.IActionDelegate#run(IAction)
+ */
+ public void
run( IAction action )
+ {
+ if ( getSignal() != null
)
+ {
+ final MultiStatus ms = new
MultiStatus( CDebugUIPlugin.getUniqueIdentifier(),
+ DebugException.REQUEST_FAILED,
"Unable to load symbols of shared library.", 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(
"Operation failed.", ms
);
+ }
+ else
+ {
+ CDebugUIPlugin.log(
ms
);
+ }
+ }
+
+ }
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.ui.IActionDelegate#selectionChanged(IAction, ISelection)
+
*/
+ public void selectionChanged( IAction action, ISelection selection
)
+ {
+ if ( selection instanceof IStructuredSelection
)
+ {
+ Object element =
((IStructuredSelection)selection).getFirstElement();
+ if (
element instanceof ICSignal
)
+ {
+ boolean enabled =
enablesFor( (ICSignal)element );
+ action.setEnabled(
enabled );
+ if ( enabled
)
+ {
+ setSignal(
(ICSignal)element
);
+ return;
+ }
+ }
+ }
+ action.setEnabled(
false );
+ setSignal( null );
+ }
+
+ protected
void doAction( ICSignal signal ) throws
DebugException
+ {
+ signal.signal();
+ }
+
+ private
boolean enablesFor( ICSignal signal )
+ {
+ return (
signal != null );
+ }
+
+ private void setSignal(
ICSignal signal )
+ {
+ fSignal =
signal;
+ }
+
+ protected ICSignal
getSignal()
+ {
+ return
fSignal;
+ }
+}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandler.java
===================================================================
RCS
file:
/home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandler.java,v
retrieving
revision 1.2
diff -u -r1.2 AbstractDebugEventHandler.java
---
src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandler.java 17
Jan 2003 19:31:40 -0000 1.2
+++
src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandler.java 31
Jan 2003 22:35:54 -0000
@@ -13,6 +13,7 @@
import
org.eclipse.jface.viewers.IBasicPropertyConstants;
import
org.eclipse.jface.viewers.ITreeContentProvider;
import
org.eclipse.jface.viewers.StructuredSelection;
+import
org.eclipse.jface.viewers.TableViewer;
import
org.eclipse.jface.viewers.TreeViewer;
import
org.eclipse.jface.viewers.Viewer;
@@ -200,6 +201,22
@@
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
tree
+ * viewer or <code>null</code> if none
+
*/
+ protected TableViewer
getTableViewer()
+ {
+ if ( getViewer() instanceof
TableViewer )
+ {
+ return
(TableViewer)getViewer();
}
return
null;
}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/SignalsView.java
===================================================================
RCS
file: src/org/eclipse/cdt/debug/internal/ui/views/SignalsView.java
diff -N
src/org/eclipse/cdt/debug/internal/ui/views/SignalsView.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/views/SignalsView.java 31 Jan 2003
22:35:54 -0000
@@ -0,0 +1,222 @@
+/*
+ *(c) Copyright QNX Software
Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package
org.eclipse.cdt.debug.internal.ui.views.signals;
+
+import
org.eclipse.cdt.debug.core.ICSignalManager;
+import
org.eclipse.cdt.debug.core.model.ICSignal;
+import
org.eclipse.cdt.debug.internal.ui.CDebugImages;
+import
org.eclipse.cdt.debug.internal.ui.CImageDescriptor;
+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.IDebugUIConstants;
+import
org.eclipse.jface.action.IMenuManager;
+import
org.eclipse.jface.action.IToolBarManager;
+import
org.eclipse.jface.action.Separator;
+import
org.eclipse.jface.util.IPropertyChangeListener;
+import
org.eclipse.jface.util.PropertyChangeEvent;
+import
org.eclipse.jface.viewers.IContentProvider;
+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.Viewer;
+import org.eclipse.swt.SWT;
+import
org.eclipse.swt.graphics.Image;
+import
org.eclipse.swt.widgets.Composite;
+import
org.eclipse.ui.ISelectionListener;
+import
org.eclipse.ui.IWorkbenchActionConstants;
+import
org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Jan 30, 2003
+ */
+public class SignalsView extends
AbstractDebugEventHandlerView
+
implements ISelectionListener,
+
IPropertyChangeListener,
+
IDebugExceptionHandler
+{
+ /**
+ * Enter
type comment.
+ *
+ * @since: Jan 30, 2003
+
*/
+ public class SignalsViewLabelProvider extends LabelProvider
implements ITableLabelProvider
+ {
+ /*
(non-Javadoc)
+ * @see
org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(Object,
int)
+ */
+ public Image getColumnImage( Object
element, int columnIndex )
+ {
+ if (
columnIndex == 0 )
+ return
CDebugUIPlugin.getImageDescriptorRegistry().get( new CImageDescriptor(
CDebugImages.DESC_OBJS_SIGNAL, 0 ) );
+ return
null;
+ }
+
+ /* (non-Javadoc)
+ *
@see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(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();
+ }
+ }
+ return
null;
+ }
+ }
+
+ /* (non-Javadoc)
+ *
@see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
+
*/
+ protected Viewer createViewer( Composite parent
)
+ {
+ CDebugUIPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(
this );
+
+ // add tree
viewer
+ final SignalsViewer vv = new SignalsViewer( parent,
SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL
);
+ vv.setContentProvider( new SignalsViewContentProvider()
);
+ vv.setLabelProvider( new SignalsViewLabelProvider()
);
+ vv.setUseHashlookup( true );
+
+ // listen
to selection in debug
view
+ getSite().getPage().addSelectionListener(
IDebugUIConstants.ID_DEBUG_VIEW, this );
+ setEventHandler( new
SignalsViewEventHandler( this ) );
+
+ return
vv;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.debug.ui.AbstractDebugView#createActions()
+
*/
+ protected void createActions()
+ {
+ // set
initial content here, as viewer has to be
set
+ setInitialContent();
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.debug.ui.AbstractDebugView#getHelpContextId()
+
*/
+ protected String
getHelpContextId()
+ {
+ return
ICDebugHelpContextIds.SIGNALS_VIEW;
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.debug.ui.AbstractDebugView#fillContextMenu(IMenuManager)
+
*/
+ 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
)
+ {
+ }
+
+ 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
);
+ }
+ }
+
+ Object current
= getViewer().getInput();
+ if ( current != null &&
current.equals( sm )
)
+ {
+ return;
+ }
+ showViewer();
+ getViewer().setInput(
sm );
+ 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
);
+ }
+ }
+
+ /* (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();
+ }
+
+ /**
+ *
Creates this view's content provider.
+ *
+ * @return a
content provider
+ */
+ protected IContentProvider
createContentProvider()
+ {
+ SignalsViewContentProvider
cp = new SignalsViewContentProvider();
+ cp.setExceptionHandler(
this );
+ return cp;
+ }
+}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewContentProvider.java
===================================================================
RCS
file:
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewContentProvider.java
diff
-N
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewContentProvider.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewContentProvider.java 31
Jan 2003 22:35:54 -0000
@@ -0,0 +1,94 @@
+/*
+ *(c) Copyright QNX
Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+
*/
+package org.eclipse.cdt.debug.internal.ui.views.signals;
+
+import
org.eclipse.cdt.debug.core.ICSignalManager;
+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
+ */
+public class SignalsViewContentProvider
implements IStructuredContentProvider
+{
+ /**
+ * Handler
for exceptions as content is retrieved
+ */
+ private
IDebugExceptionHandler fExceptionHandler = null;
+
+ /**
+ *
Constructor for SignalsViewContentProvider.
+ */
+ public
SignalsViewContentProvider()
+ {
+ super();
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
+
*/
+ public Object[] getElements( Object inputElement
)
+ {
+ if ( inputElement instanceof ICSignalManager
)
+ {
+ try
+ {
+ return
((ICSignalManager)inputElement).getSignals();
+ }
+ catch(
DebugException e )
+ {
+ if (
getExceptionHandler() != null
)
+ {
+ getExceptionHandler().handleException(
e
);
+ }
+ else
+ {
+ CDebugUIPlugin.log(
e
);
+ }
+ }
+ }
+ return
new Object[0];
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.viewers.IContentProvider#dispose()
+
*/
+ public void dispose()
+ {
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.jface.viewers.IContentProvider#inputChanged(Viewer, Object,
Object)
+ */
+ public void inputChanged( Viewer viewer, Object
oldInput, Object newInput
)
+ {
+ }
+
+ /**
+ * Sets an exception
handler for this content provider.
+ *
+ * @param handler
debug exception handler or <code>null</code>
+
*/
+ protected void setExceptionHandler( IDebugExceptionHandler handler
)
+ {
+ fExceptionHandler =
handler;
+ }
+
+ /**
+ * Returns the exception
handler for this content provider.
+ *
+ * @return debug
exception handler or <code>null</code>
+
*/
+ protected IDebugExceptionHandler getExceptionHandler()
+ {
+ return
fExceptionHandler;
+ }
+}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewEventHandler.java
===================================================================
RCS
file:
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewEventHandler.java
diff
-N
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewEventHandler.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewEventHandler.java 31
Jan 2003 22:35:54 -0000
@@ -0,0 +1,77 @@
+/*
+ *(c) Copyright QNX
Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+
*/
+package org.eclipse.cdt.debug.internal.ui.views.signals;
+
+import
org.eclipse.cdt.debug.core.model.ICSignal;
+import
org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler;
+import
org.eclipse.debug.core.DebugEvent;
+import
org.eclipse.debug.core.model.IDebugTarget;
+import
org.eclipse.debug.ui.AbstractDebugView;
+
+/**
+ * Enter type
comment.
+ *
+ * @since: Jan 30, 2003
+ */
+public class
SignalsViewEventHandler extends
AbstractDebugEventHandler
+{
+ /**
+ * Constructor for
SignalsViewEventHandler.
+ * @param view
+ */
+ public
SignalsViewEventHandler( AbstractDebugView view
)
+ {
+ super( view );
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#doHandleDebugEvents(DebugEvent[])
+
*/
+ protected void doHandleDebugEvents( DebugEvent[] events
)
+ {
+ for( int i = 0; i < events.length; i++
)
+ {
+ DebugEvent event =
events[i];
+ switch( event.getKind()
)
+ {
+ case
DebugEvent.CREATE:
+ case
DebugEvent.TERMINATE:
+ if ( event.getSource()
instanceof IDebugTarget ||
+
event.getSource() instanceof ICSignal
)
+ refresh();
+ break;
+ 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();
+ }
+ }
+}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewer.java
===================================================================
RCS
file: src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewer.java
diff -N
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewer.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/views/SignalsViewer.java 31 Jan 2003
22:35:54 -0000
@@ -0,0 +1,112 @@
+/*
+ *(c) Copyright QNX Software
Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+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.jface.viewers.CellEditor;
+import
org.eclipse.jface.viewers.ComboBoxCellEditor;
+import
org.eclipse.jface.viewers.ICellModifier;
+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.Table;
+import
org.eclipse.swt.widgets.TableColumn;
+
+/**
+ * Enter type
comment.
+ *
+ * @since: Jan 30, 2003
+ */
+public class
SignalsViewer extends TableViewer
+{
+ // String
constants
+ protected static final String YES_VALUE =
"yes";
+ protected static final String NO_VALUE =
"no";
+
+ // Column properties
+ private static final String
CP_NAME = "name";
+ private static final String CP_PASS =
"pass";
+ private static final String CP_SUSPEND =
"suspend";
+ private static final String CP_DESCRIPTION =
"description";
+
+ /**
+ * Constructor for
SignalsViewer.
+ * @param parent
+ * @param style
+
*/
+ public SignalsViewer( Composite parent, int style
)
+ {
+ super( parent, style );
+ Table
table = getTable();
+ table.setLinesVisible( true
);
+ table.setHeaderVisible( true
);
+ table.setLayoutData( new GridData(
GridData.FILL_BOTH ) );
+
+ // Create the table
columns
+ 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[0].setResizable( true
);
+ columns[1].setResizable( false
);
+ columns[2].setResizable( false
);
+ columns[3].setResizable( true
);
+
+ columns[0].setText( "Name"
);
+ columns[1].setText( "Pass"
);
+ columns[2].setText( "Suspend"
);
+ columns[3].setText( "Description"
);
+
+ PixelConverter pc = new PixelConverter( parent
);
+ columns[0].setWidth( pc.convertWidthInCharsToPixels( 20 )
);
+ columns[1].setWidth( pc.convertWidthInCharsToPixels( 15 )
);
+ 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
)
+ {
+ }
+ };
+ }
+}