Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Implementing the Shared Libraries view (UI)

? 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;
+    }
+   }
+  }
+ }
+}


Back to the top