?
src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs
?
src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs
?
src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs
Index:
ChangeLog
===================================================================
RCS
file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v
retrieving revision
1.74
diff -u -r1.74 ChangeLog
--- ChangeLog 15 Jan 2003 18:17:33
-0000 1.74
+++ ChangeLog 17 Jan 2003 00:14:10 -0000
@@ -1,3
+1,17 @@
+2003-01-16 Mikhail Khodjaiants
+ Implementing the Shared
Libraries view.
+ * SharedLibrariesView.java
+ *
SharedLibrariesViewContentProvider.java
+ *
SharedLibrariesViewEventHandler.java
+ * CDebugImages.java
+ *
ICDebugHelpContextIds.java
+ * plugin.properties
+ *
plugin.xml
+ * icons/full/cview16/sharedlibraries_view.gif
+ *
icons/full/eview16/sharedlibraries_view.gif
+ *
icons/full/obj16/sharedlibraryl_obj.gif
+ *
icons/full/obj16/sharedlibraryu_obj.gif
+
2003-01-15 Mikhail
Khodjaiants
The 'getDefaultEditor' method returns 'null' for file
names that don't have an extension and
are not registered with
some editor. Use the default text editor in this case.
Index:
plugin.properties
===================================================================
RCS
file: /home/tools/org.eclipse.cdt.debug.ui/plugin.properties,v
retrieving
revision 1.27
diff -u -r1.27 plugin.properties
---
plugin.properties 14 Jan 2003 20:26:28 -0000 1.27
+++
plugin.properties 17 Jan 2003 00:14:10 -0000
@@ -8,6 +8,7
@@
RegistersView.name=Registers
MemoryView.name=Memory
+SharedLibrariesView.name=Shared
Libraries
CDebuggerPage.name=C Debugger UI
Page
MemoryPreferencePage.name=Memory View
Index:
plugin.xml
===================================================================
RCS
file: /home/tools/org.eclipse.cdt.debug.ui/plugin.xml,v
retrieving revision
1.44
diff -u -r1.44 plugin.xml
--- plugin.xml 14 Jan 2003 20:26:28
-0000 1.44
+++ plugin.xml 17 Jan 2003 00:14:10 -0000
@@ -48,6
+48,13
@@
class="org.eclipse.cdt.debug.internal.ui.views.memory.MemoryView"
id="org.eclipse.cdt.debug.ui.MemoryView">
</view>
+
<view
+
name="%SharedLibrariesView.name"
+
icon="icons/full/cview16/sharedlibraries_view.gif"
+
category="org.eclipse.debug.ui"
+
class="org.eclipse.cdt.debug.internal.ui.views.sharedlibs.SharedLibrariesView"
+
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
+
</view>
</extension>
<extension
point="org.eclipse.ui.perspectiveExtensions">
@@ -58,13 +65,15
@@
relationship="stack"
id="org.eclipse.cdt.debug.ui.RegistersView">
</view>
-
</perspectiveExtension>
-
<perspectiveExtension
-
targetID="org.eclipse.debug.ui.DebugPerspective">
<view
relative="org.eclipse.debug.ui.VariableView"
relationship="stack"
id="org.eclipse.cdt.debug.ui.MemoryView">
+
</view>
+
<view
+
relative="org.eclipse.debug.ui.VariableView"
+
relationship="stack"
+
id="org.eclipse.cdt.debug.ui.SharedLibrariesView">
</view>
</perspectiveExtension>
</extension>
Index:
icons/full/cview16/sharedlibraries_view.gif
===================================================================
RCS
file: icons/full/cview16/sharedlibraries_view.gif
diff -N
icons/full/cview16/sharedlibraries_view.gif
Binary files /dev/null and
sharedlibraries_view.gif differ
Index:
icons/full/eview16/sharedlibraries_view.gif
===================================================================
RCS
file: icons/full/eview16/sharedlibraries_view.gif
diff -N
icons/full/eview16/sharedlibraries_view.gif
Binary files /dev/null and
sharedlibraries_view.gif differ
Index:
icons/full/obj16/sharedlibraryl_obj.gif
===================================================================
RCS
file: icons/full/obj16/sharedlibraryl_obj.gif
diff -N
icons/full/obj16/sharedlibraryl_obj.gif
Binary files /dev/null and
sharedlibraryl_obj.gif differ
Index:
icons/full/obj16/sharedlibraryu_obj.gif
===================================================================
RCS
file: icons/full/obj16/sharedlibraryu_obj.gif
diff -N
icons/full/obj16/sharedlibraryu_obj.gif
Binary files /dev/null and
sharedlibraryu_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.12
diff -u -r1.12 CDebugImages.java
---
src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java 10 Jan 2003
19:36:39 -0000 1.12
+++
src/org/eclipse/cdt/debug/internal/ui/CDebugImages.java 17 Jan 2003
00:14:11 -0000
@@ -65,6 +65,8 @@
public static final String
IMG_OBJS_DISASSEMBLY = NAME_PREFIX +
"disassembly_obj.gif"; //$NON-NLS-1$
public static final
String IMG_OBJS_PROJECT = NAME_PREFIX +
"project_obj.gif"; //$NON-NLS-1$
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 +
"sharedlibraryl_obj.gif"; //$NON-NLS-1$
+ public static final
String IMG_OBJS_SHARED_LIBRARY = NAME_PREFIX +
"sharedlibraryu_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$
@@ -112,6 +114,8
@@
public static final ImageDescriptor DESC_OBJS_DISASSEMBLY =
createManaged( T_OBJ, IMG_OBJS_DISASSEMBLY );
public static final
ImageDescriptor DESC_OBJS_PROJECT = createManaged( T_OBJ, IMG_OBJS_PROJECT
);
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_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.8
diff -u -r1.8 ICDebugHelpContextIds.java
---
src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java 30 Oct
2002 22:01:01 -0000 1.8
+++
src/org/eclipse/cdt/debug/internal/ui/ICDebugHelpContextIds.java 17 Jan
2003 00:14:10 -0000
@@ -34,6 +34,7 @@
//
Views
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$
// 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/views/SharedLibrariesView.java
===================================================================
RCS
file:
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesView.java
diff -N
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesView.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesView.java 17 Jan
2003 00:14:11 -0000
@@ -0,0 +1,242 @@
+/*
+ *(c) Copyright QNX Software
Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+ */
+package
org.eclipse.cdt.debug.internal.ui.views.sharedlibs;
+
+import
org.eclipse.cdt.debug.core.ICSharedLibraryManager;
+import
org.eclipse.cdt.debug.core.model.ICSharedLibrary;
+import
org.eclipse.cdt.debug.internal.core.CDebugUtils;
+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.AbstractDebugEventHandler;
+import
org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandlerView;
+import
org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler;
+import
org.eclipse.cdt.debug.ui.CDebugUIPlugin;
+import
org.eclipse.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.ISelection;
+import
org.eclipse.jface.viewers.IStructuredSelection;
+import
org.eclipse.jface.viewers.ITableLabelProvider;
+import
org.eclipse.jface.viewers.LabelProvider;
+import
org.eclipse.jface.viewers.TableViewer;
+import
org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import
org.eclipse.swt.graphics.Image;
+import
org.eclipse.swt.layout.GridData;
+import
org.eclipse.swt.widgets.Composite;
+import
org.eclipse.swt.widgets.Table;
+import
org.eclipse.swt.widgets.TableColumn;
+import
org.eclipse.ui.ISelectionListener;
+import
org.eclipse.ui.IWorkbenchActionConstants;
+import
org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Jan 16, 2003
+ */
+public class SharedLibrariesView
extends
AbstractDebugEventHandlerView
+
implements ISelectionListener,
+
IPropertyChangeListener,
+
IDebugExceptionHandler
+{
+ /**
+ * Enter
type comment.
+ *
+ * @since: Jan 16, 2003
+
*/
+ public class SharedLibrariesViewLabelProvider 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 && element instanceof ICSharedLibrary
)
+ {
+ if (
((ICSharedLibrary)element).areSymbolsLoaded()
)
+ {
+ return
CDebugUIPlugin.getImageDescriptorRegistry().get( new CImageDescriptor(
CDebugImages.DESC_OBJS_LOADED_SHARED_LIBRARY, 0 )
);
+ }
+ else
+ {
+ return
CDebugUIPlugin.getImageDescriptorRegistry().get( new CImageDescriptor(
CDebugImages.DESC_OBJS_SHARED_LIBRARY, 0 )
);
+ }
+ }
+ return
null;
+ }
+
+ /* (non-Javadoc)
+ *
@see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(Object,
int)
+ */
+ public String getColumnText( Object
element, int columnIndex )
+ {
+ if ( element
instanceof ICSharedLibrary
)
+ {
+ switch( columnIndex
)
+ {
+ case
0:
+ return
((ICSharedLibrary)element).getFileName();
+ case
1:
+ return
CDebugUtils.toHexAddressString( ((ICSharedLibrary)element).getStartAddress()
);
+ case
2:
+ return
CDebugUtils.toHexAddressString( ((ICSharedLibrary)element).getEndAddress()
);
+ case
3:
+ return (
((ICSharedLibrary)element).areSymbolsLoaded() ) ? "Yes" :
"No";
+ }
+ }
+ return
null;
+ }
+ }
+
+ /* (non-Javadoc)
+ *
@see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
+
*/
+ protected Viewer createViewer( Composite parent
)
+ {
+ TableViewer viewer = new TableViewer( parent,
SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL );
+
+ Table table =
viewer.getTable();
+ table.setHeaderVisible( true
);
+ table.setLinesVisible( 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].setText( "Name"
);
+ columns[1].setText( "Start Address"
);
+ columns[2].setText( "End Address"
);
+ columns[3].setText( "Symbols"
);
+
+ viewer.setContentProvider( new
SharedLibrariesViewContentProvider() );
+ viewer.setLabelProvider(
new SharedLibrariesViewLabelProvider() );
+
+ // listen to
selection in debug
view
+ getSite().getPage().addSelectionListener(
IDebugUIConstants.ID_DEBUG_VIEW, this );
+ setEventHandler(
createEventHandler( viewer ) );
+
+ return
viewer;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.debug.ui.AbstractDebugView#createActions()
+
*/
+ protected void createActions()
+ {
+ // 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.SHARED_LIBRARIES_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
)
+ {
+ tbm.add( new Separator( this.getClass().getName()
) );
+ }
+
+ /* (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 )
+ {
+ ICSharedLibraryManager
slm = null;
+ if ( ssel != null && ssel.size() == 1
)
+ {
+ Object input =
ssel.getFirstElement();
+ if ( input instanceof
IDebugElement )
+ {
+ slm =
(ICSharedLibraryManager)((IDebugElement)input).getDebugTarget().getAdapter(
ICSharedLibraryManager.class
);
+ }
+ }
+
+ Object current
= getViewer().getInput();
+ if ( current != null &&
current.equals( slm )
)
+ {
+ return;
+ }
+ showViewer();
+ getViewer().setInput(
slm
);
+ 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 )
+ {
+ return new
SharedLibrariesViewEventHandler( this );
+ }
+}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesViewContentProvider.java
===================================================================
RCS
file:
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesViewContentProvider.java
diff
-N
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesViewContentProvider.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesViewContentProvider.java 17
Jan 2003 00:14:11 -0000
@@ -0,0 +1,44 @@
+/*
+ *(c) Copyright QNX
Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+
*/
+package
org.eclipse.cdt.debug.internal.ui.views.sharedlibs;
+
+import
org.eclipse.cdt.debug.core.ICSharedLibraryManager;
+import
org.eclipse.jface.viewers.IStructuredContentProvider;
+import
org.eclipse.jface.viewers.Viewer;
+
+/**
+ * Enter type comment.
+ *
+ * @since: Jan 16, 2003
+ */
+public class
SharedLibrariesViewContentProvider implements
IStructuredContentProvider
+{
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
+
*/
+ public Object[] getElements( Object parent
)
+ {
+ if ( parent != null && parent instanceof
ICSharedLibraryManager )
+ {
+ return
((ICSharedLibraryManager)parent).getSharedLibraries();
+ }
+ return
null;
+ }
+
+ /* (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 )
+ {
+ }
+}
Index:
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesViewEventHandler.java
===================================================================
RCS
file:
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesViewEventHandler.java
diff
-N
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesViewEventHandler.java
---
/dev/null 1 Jan 1970 00:00:00 -0000
+++
src/org/eclipse/cdt/debug/internal/ui/views/SharedLibrariesViewEventHandler.java 17
Jan 2003 00:14:11 -0000
@@ -0,0 +1,52 @@
+/*
+ *(c) Copyright QNX
Software Systems Ltd. 2002.
+ * All Rights Reserved.
+ *
+
*/
+package
org.eclipse.cdt.debug.internal.ui.views.sharedlibs;
+
+import
org.eclipse.cdt.debug.core.model.ICSharedLibrary;
+import
org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler;
+import
org.eclipse.debug.core.DebugEvent;
+import
org.eclipse.debug.ui.AbstractDebugView;
+
+/**
+ * Enter type
comment.
+ *
+ * @since: Jan 16, 2003
+ */
+public class
SharedLibrariesViewEventHandler extends
AbstractDebugEventHandler
+{
+ /**
+ * Constructor for
SharedLibrariesViewEventHandler.
+ * @param view
+
*/
+ public SharedLibrariesViewEventHandler( AbstractDebugView view
)
+ {
+ super( view );
+ }
+
+ /*
(non-Javadoc)
+ * @see
org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#doHandleDebugEvents(DebugEvent[])
+
*/
+ protected void doHandleDebugEvents( DebugEvent[] events
)
+ {
+ for( int i = 0; i < events.length; i++
)
+ {
+ DebugEvent event =
events[i];
+ if ( event.getSource() instanceof
ICSharedLibrary )
+ {
+ switch(
event.getKind()
)
+ {
+ case
DebugEvent.CREATE:
+ case
DebugEvent.TERMINATE:
+ refresh();
+ break;
+ case
DebugEvent.CHANGE :
+ refresh(
event.getSource()
);
+ break;
+ }
+ }
+ }
+ }
+}