1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

The viewer type of the 'Shared Libraries' view changed to 'TableTreeViewer'.

This commit is contained in:
Mikhail Khodjaiants 2003-02-07 22:03:51 +00:00
parent eccbfa54a1
commit a278a4d72d
6 changed files with 129 additions and 20 deletions

View file

@ -1,3 +1,11 @@
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 2003-02-07 Mikhail Khodjaiants
The 'Resume Without Signal' action added to the 'Run' menu of the workbench window. The 'Resume Without Signal' action added to the 'Run' menu of the workbench window.
* SignalZeroWorkbenchActionDelegate.java: new * SignalZeroWorkbenchActionDelegate.java: new

View file

@ -505,12 +505,15 @@ public class CDTDebugModelPresentation extends LabelProvider
IPath path = new Path( library.getFileName() ); IPath path = new Path( library.getFileName() );
if ( !path.isEmpty() ) if ( !path.isEmpty() )
label += ( qualified ? path.toOSString() : path.lastSegment() ); label += ( qualified ? path.toOSString() : path.lastSegment() );
/*
String startAddress = ( library.getStartAddress() > 0 ) ? String startAddress = ( library.getStartAddress() > 0 ) ?
CDebugUtils.toHexAddressString( library.getStartAddress() ) : "Not available"; CDebugUtils.toHexAddressString( library.getStartAddress() ) : "Not available";
String endAddress = ( library.getEndAddress() > 0 ) ? String endAddress = ( library.getEndAddress() > 0 ) ?
CDebugUtils.toHexAddressString( library.getEndAddress() ) : "Not available"; CDebugUtils.toHexAddressString( library.getEndAddress() ) : "Not available";
return label + MessageFormat.format( " (Start address: ''{0}'' End address: ''{1}'')", return label + MessageFormat.format( " (Start address: ''{0}'' End address: ''{1}'')",
new String[] { startAddress, endAddress } ); new String[] { startAddress, endAddress } );
*/
return label;
} }
/** /**

View file

@ -13,6 +13,7 @@ import org.eclipse.debug.ui.AbstractDebugView;
import org.eclipse.jface.viewers.IBasicPropertyConstants; import org.eclipse.jface.viewers.IBasicPropertyConstants;
import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableTreeViewer;
import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.Viewer;
@ -209,7 +210,7 @@ public abstract class AbstractDebugEventHandler implements IDebugEventSetListene
* Returns this event handler's viewer as a table * Returns this event handler's viewer as a table
* viewer or <code>null</code> if none. * 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 * viewer or <code>null</code> if none
*/ */
protected TableViewer getTableViewer() protected TableViewer getTableViewer()
@ -221,6 +222,22 @@ public abstract class AbstractDebugEventHandler implements IDebugEventSetListene
return null; 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;
}
/** /**
* Returns whether this event handler's viewer is * Returns whether this event handler's viewer is
* currently available. * currently available.

View file

@ -6,14 +6,16 @@
package org.eclipse.cdt.debug.internal.ui.views.sharedlibs; package org.eclipse.cdt.debug.internal.ui.views.sharedlibs;
import org.eclipse.cdt.debug.core.ICSharedLibraryManager; 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.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.AbstractDebugEventHandler;
import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandlerView; import org.eclipse.cdt.debug.internal.ui.views.AbstractDebugEventHandlerView;
import org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler; import org.eclipse.cdt.debug.internal.ui.views.IDebugExceptionHandler;
import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.IDebugElement; 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.debug.ui.IDebugUIConstants;
import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.IToolBarManager;
@ -22,10 +24,14 @@ import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection; 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.jface.viewers.Viewer;
import org.eclipse.swt.SWT; import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite; 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.ISelectionListener;
import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.IWorkbenchPart;
@ -40,19 +46,79 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView
IPropertyChangeListener, IPropertyChangeListener,
IDebugExceptionHandler IDebugExceptionHandler
{ {
/** public class SharedLibrariesLabelProvider extends CDTDebugModelPresentation implements ITableLabelProvider
* The model presentation used as the label provider for the tree viewer. {
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
*/ */
private IDebugModelPresentation fModelPresentation; 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) /* (non-Javadoc)
* @see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite) * @see org.eclipse.debug.ui.AbstractDebugView#createViewer(Composite)
*/ */
protected Viewer createViewer( Composite parent ) 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.setContentProvider( new SharedLibrariesViewContentProvider() );
viewer.setLabelProvider( getModelPresentation() ); viewer.setLabelProvider( new SharedLibrariesLabelProvider() );
// listen to selection in debug view // listen to selection in debug view
getSite().getPage().addSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this ); getSite().getPage().addSelectionListener( IDebugUIConstants.ID_DEBUG_VIEW, this );
@ -168,13 +234,4 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView
{ {
return new SharedLibrariesViewEventHandler( this ); return new SharedLibrariesViewEventHandler( this );
} }
protected IDebugModelPresentation getModelPresentation()
{
if ( fModelPresentation == null )
{
fModelPresentation = DebugUITools.newDebugModelPresentation();
}
return fModelPresentation;
}
} }

View file

@ -88,7 +88,7 @@ public class SharedLibrariesViewContentProvider implements ITreeContentProvider
*/ */
public boolean hasChildren( Object parent ) public boolean hasChildren( Object parent )
{ {
if ( parent != null && parent instanceof ICSharedLibraryManager ) if ( parent instanceof ICSharedLibraryManager )
{ {
return ( ((ICSharedLibraryManager)parent).getSharedLibraries().length > 0 ); return ( ((ICSharedLibraryManager)parent).getSharedLibraries().length > 0 );
} }

View file

@ -50,4 +50,28 @@ public class SharedLibrariesViewEventHandler extends AbstractDebugEventHandler
} }
} }
} }
/* (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 );
}
}
} }