Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] The viewer type of the 'Shared Libraries' view changed to 'TableTreeViewer'

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/ChangeLog,v
retrieving revision 1.93
diff -u -r1.93 ChangeLog
--- ChangeLog 7 Feb 2003 18:21:19 -0000 1.93
+++ ChangeLog 7 Feb 2003 22:03:00 -0000
@@ -1,4 +1,12 @@
 2003-02-07 Mikhail Khodjaiants
+ The viewer type of the 'Shared Libraries' view changed to 'TableTreeViewer'.
+ * CDTDebugModelPresentation.java
+ * AbstractDebugEventHandler.java
+ * SharedLibrariesView.java
+ * SharedLibrariesViewContentProvider.java
+ * SharedLibrariesViewEventHandler.java
+
+2003-02-07 Mikhail Khodjaiants
  The 'Resume Without Signal' action added to the 'Run' menu of the workbench window.
  * SignalZeroWorkbenchActionDelegate.java: new
  * plugin.xml
Index: src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java,v
retrieving revision 1.40
diff -u -r1.40 CDTDebugModelPresentation.java
--- src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java 3 Feb 2003 23:08:44 -0000 1.40
+++ src/org/eclipse/cdt/debug/internal/ui/CDTDebugModelPresentation.java 7 Feb 2003 22:03:01 -0000
@@ -505,12 +505,15 @@
   IPath path = new Path( library.getFileName() );
   if ( !path.isEmpty() )
    label += ( qualified ? path.toOSString() : path.lastSegment() );
+/*
   String startAddress = ( library.getStartAddress() > 0 ) ?
         CDebugUtils.toHexAddressString( library.getStartAddress() ) : "Not available";
   String endAddress = ( library.getEndAddress() > 0 ) ?
         CDebugUtils.toHexAddressString( library.getEndAddress() ) : "Not available";
   return label + MessageFormat.format( " (Start address: ''{0}''  End address: ''{1}'')",
              new String[] { startAddress, endAddress } );
+*/
+  return label;
  }
 
  /**
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.3
diff -u -r1.3 AbstractDebugEventHandler.java
--- src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandler.java 31 Jan 2003 22:38:15 -0000 1.3
+++ src/org/eclipse/cdt/debug/internal/ui/views/AbstractDebugEventHandler.java 7 Feb 2003 22:03:01 -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.TableTreeViewer;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.Viewer;
@@ -209,7 +210,7 @@
   * 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
+  * @return this event handler's viewer as a table
   * viewer or <code>null</code> if none
   */
  protected TableViewer getTableViewer()
@@ -217,6 +218,22 @@
   if ( getViewer() instanceof TableViewer )
   {
    return (TableViewer)getViewer();
+  }
+  return null;
+ }
+
+ /**
+  * Returns this event handler's viewer as a table tree
+  *  viewer or <code>null</code> if none.
+  *
+  * @return this event handler's viewer as a table tree
+  * viewer or <code>null</code> if none
+  */
+ protected TableTreeViewer getTableTreeViewer()
+ {
+  if ( getViewer() instanceof TableTreeViewer )
+  {
+   return (TableTreeViewer)getViewer();
   }
   return null;
  }
Index: src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java,v
retrieving revision 1.4
diff -u -r1.4 SharedLibrariesView.java
--- src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java 21 Jan 2003 22:48:37 -0000 1.4
+++ src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesView.java 7 Feb 2003 22:03:01 -0000
@@ -6,14 +6,16 @@
 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.CDTDebugModelPresentation;
 import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
+import org.eclipse.cdt.debug.internal.ui.PixelConverter;
 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.debug.core.DebugException;
 import org.eclipse.debug.core.model.IDebugElement;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugModelPresentation;
 import org.eclipse.debug.ui.IDebugUIConstants;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.IToolBarManager;
@@ -22,10 +24,14 @@
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.TableTreeViewer;
 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.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.ui.ISelectionListener;
 import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPart;
@@ -40,19 +46,79 @@
             IPropertyChangeListener,
             IDebugExceptionHandler
 {
- /**
-  * The model presentation used as the label provider for the tree viewer.
-  */
- private IDebugModelPresentation fModelPresentation;
+ public class SharedLibrariesLabelProvider extends CDTDebugModelPresentation implements ITableLabelProvider
+ {
+  /* (non-Javadoc)
+   * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+   */
+  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 )
+   {
+    ICSharedLibrary library = (ICSharedLibrary)element;
+    switch( columnIndex )
+    {
+     case 0:
+      return "";
+     case 1:
+      return getText( element );
+     case 2:
+      return ( library.getStartAddress() > 0 ) ?
+         CDebugUtils.toHexAddressString( library.getStartAddress() ) : "";
+     case 3:
+      return ( library.getEndAddress() > 0 ) ?
+         CDebugUtils.toHexAddressString( library.getEndAddress() ) : "";
+    }
+   }
+   return null;
+  }
+ }
 
  /* (non-Javadoc)
   * @see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
   */
  protected Viewer createViewer( Composite parent )
  {
-  TreeViewer viewer = new TreeViewer( parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL );
+  TableTreeViewer viewer = new TableTreeViewer( parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL );
+  Table table = viewer.getTableTree().getTable();
+  table.setLinesVisible( true );
+  table.setHeaderVisible( true );  
+
+  // 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[1].setResizable( true );
+  columns[2].setResizable( true );
+  columns[3].setResizable( true );
+
+  columns[0].setText( "" );
+  columns[1].setText( "Name" );
+  columns[2].setText( "Start Address" );
+  columns[3].setText( "End Address" );
+
+  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 ) );
+
   viewer.setContentProvider( new SharedLibrariesViewContentProvider() );
-  viewer.setLabelProvider( getModelPresentation() );
+  viewer.setLabelProvider( new SharedLibrariesLabelProvider() );
 
   // listen to selection in debug view
   getSite().getPage().addSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
@@ -168,13 +234,4 @@
  {
   return new SharedLibrariesViewEventHandler( this );
  } 
-
- protected IDebugModelPresentation getModelPresentation()
- {
-  if ( fModelPresentation == null )
-  {
-   fModelPresentation = DebugUITools.newDebugModelPresentation();
-  }
-  return fModelPresentation;
- }
 }
Index: src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewContentProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewContentProvider.java,v
retrieving revision 1.2
diff -u -r1.2 SharedLibrariesViewContentProvider.java
--- src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewContentProvider.java 21 Jan 2003 22:48:37 -0000 1.2
+++ src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewContentProvider.java 7 Feb 2003 22:03:01 -0000
@@ -88,7 +88,7 @@
   */
  public boolean hasChildren( Object parent )
  {
-  if ( parent != null && parent instanceof ICSharedLibraryManager )
+  if ( parent instanceof ICSharedLibraryManager )
   {
    return ( ((ICSharedLibraryManager)parent).getSharedLibraries().length > 0 );
   }
Index: src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewEventHandler.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewEventHandler.java,v
retrieving revision 1.4
diff -u -r1.4 SharedLibrariesViewEventHandler.java
--- src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewEventHandler.java 21 Jan 2003 22:48:37 -0000 1.4
+++ src/org/eclipse/cdt/debug/internal/ui/views/sharedlibs/SharedLibrariesViewEventHandler.java 7 Feb 2003 22:03:01 -0000
@@ -50,4 +50,28 @@
    }
   }
  }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#refresh()
+  */
+ public void refresh()
+ {
+  if ( isAvailable() )
+  {
+   getView().showViewer();
+   getTableTreeViewer().refresh();
+  }
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandler#refresh(java.lang.Object)
+  */
+ protected void refresh( Object element )
+ {
+  if ( isAvailable() )
+  {
+   getView().showViewer();
+   getTableTreeViewer().refresh( element );
+  }
+ }
 }

Back to the top