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
|
||||
The 'Resume Without Signal' action added to the 'Run' menu of the workbench window.
|
||||
* SignalZeroWorkbenchActionDelegate.java: new
|
||||
|
|
|
@ -505,12 +505,15 @@ public class CDTDebugModelPresentation extends LabelProvider
|
|||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -13,6 +13,7 @@ import org.eclipse.debug.ui.AbstractDebugView;
|
|||
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 @@ public abstract class AbstractDebugEventHandler implements IDebugEventSetListene
|
|||
* 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()
|
||||
|
@ -221,6 +222,22 @@ public abstract class AbstractDebugEventHandler implements IDebugEventSetListene
|
|||
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
|
||||
* currently available.
|
||||
|
|
|
@ -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.IPropertyChangeListener;
|
|||
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 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView
|
|||
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 @@ public class SharedLibrariesView extends AbstractDebugEventHandlerView
|
|||
{
|
||||
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 )
|
||||
{
|
||||
if ( parent != null && parent instanceof ICSharedLibraryManager )
|
||||
if ( parent instanceof ICSharedLibraryManager )
|
||||
{
|
||||
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