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:
parent
eccbfa54a1
commit
a278a4d72d
6 changed files with 129 additions and 20 deletions
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue