blob: 9278b755fd7cbfcc5b39a69c0e84b67ff2d83f4f [file] [log] [blame]
/*
*(c) Copyright QNX Software Systems Ltd. 2002.
* All Rights Reserved.
*
*/
package org.eclipse.cdt.debug.internal.ui.wizards;
import org.eclipse.cdt.debug.core.sourcelookup.IProjectSourceLocation;
import org.eclipse.cdt.debug.core.sourcelookup.SourceLookupFactory;
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.model.WorkbenchLabelProvider;
/**
*
* Enter type comment.
*
* @since Dec 27, 2002
*/
public class AddProjectSourceLocationBlock
{
private Composite fControl = null;
private TableViewer fViewer;
protected IProject[] fProjects = null;
/**
* Constructor for AddProjectSourceLocationBlock.
*/
public AddProjectSourceLocationBlock( IProject[] projects )
{
fProjects = projects;
}
public void createControl( Composite parent )
{
fControl = new Composite( parent, SWT.NONE );
fControl.setLayout( new GridLayout() );
fControl.setLayoutData( new GridData( GridData.FILL_BOTH ) );
fControl.setFont( JFaceResources.getDialogFont() );
//Create a table for the list
Table table = new Table( fControl, SWT.BORDER | SWT.SINGLE );
GridData data = new GridData( GridData.FILL_BOTH );
table.setLayoutData( data );
// the list viewer
fViewer = new TableViewer( table );
fViewer.setContentProvider( new IStructuredContentProvider()
{
public Object[] getElements( Object inputElement )
{
return fProjects;
}
public void inputChanged( Viewer viewer, Object oldInput, Object newInput )
{
}
public void dispose()
{
}
} );
fViewer.setLabelProvider( new WorkbenchLabelProvider() );
fViewer.setInput( fProjects );
}
public Control getControl()
{
return fControl;
}
public IProjectSourceLocation getSourceLocation()
{
if ( fViewer != null )
{
if ( !((IStructuredSelection)fViewer.getSelection()).isEmpty() )
{
return SourceLookupFactory.createProjectSourceLocation( (IProject)((IStructuredSelection)fViewer.getSelection()).getFirstElement(), false );
}
}
return null;
}
public void addSelectionChangedListener( ISelectionChangedListener listener )
{
if ( fViewer != null )
{
fViewer.addSelectionChangedListener( listener );
}
}
public void removeSelectionChangedListener( ISelectionChangedListener listener )
{
if ( fViewer != null )
{
fViewer.removeSelectionChangedListener( listener );
}
}
public void addDoubleClickListener( IDoubleClickListener listener )
{
if ( fViewer != null )
{
fViewer.addDoubleClickListener( listener );
}
}
public void removeDoubleClickListener( IDoubleClickListener listener )
{
if ( fViewer != null )
{
fViewer.removeDoubleClickListener( listener );
}
}
}