protected Control createContents( Composite parent )
{
final IConnection connection = ConnectionPropertyPage.getConnection( getElement() );
this.tabFolder = new TabFolder( parent, SWT.TOP );
RowLayout mainLayout = new RowLayout();
mainLayout.fill = true;
mainLayout.marginWidth = 0;
mainLayout.marginHeight = 0;
this.tabFolder.setLayout( mainLayout );
Composite composite = new Composite( this.tabFolder, SWT.NONE );
GridLayout gl = new GridLayout( 2, false );
composite.setLayout( gl );
BaseWidgetUtils.createLabel( composite, "Directory Type:", 1 );
Text typeText = BaseWidgetUtils.createLabeledText( composite, "-", 1 );
if ( connection != null && connection.getRootDSE() != null )
{
// Try to detect LDAP server from RootDSE
//
IRootDSE rootDSE = connection.getRootDSE();
String type = detectOpenLDAP( rootDSE );
if ( type == null )
{
type = detectSiemensDirX( rootDSE );
if ( type == null )
{
type = detectActiveDirectory( rootDSE );
if ( type == null )
{
type = detectByVendorName( rootDSE );
}
}
}
if ( type != null )
{
typeText.setText( type );
}
}
addInfo( connection, composite, "vendorName", "Vendor Name:" );
addInfo( connection, composite, "vendorVersion", "Vendor Version:" );
addInfo( connection, composite, "supportedLDAPVersion", "Supported LDAP Versions:" );
addInfo( connection, composite, "supportedSASLMechanisms", "Supported SASL Mechanisms:" );
this.commonsTab = new TabItem( this.tabFolder, SWT.NONE );
this.commonsTab.setText( "Info" );
this.commonsTab.setControl( composite );
// naming contexts
// alt servers
// schema DN
// ldap version
Composite controlsComposite = new Composite( this.tabFolder, SWT.NONE );
controlsComposite.setLayoutData( new RowData( 10, 10 ) );
GridLayout controlsLayout = new GridLayout();
controlsComposite.setLayout( controlsLayout );
ListViewer controlsViewer = new ListViewer( controlsComposite );
controlsViewer.getList().setLayoutData( new GridData( GridData.FILL_BOTH ) );
controlsViewer.setContentProvider( new ArrayContentProvider() );
controlsViewer.setLabelProvider( new LabelProvider() );
if ( connection != null && connection.getRootDSE() != null )
{
controlsViewer.setInput( ( ( RootDSE ) connection.getRootDSE() ).getSupportedControls() );
}
this.controlsTab = new TabItem( this.tabFolder, SWT.NONE );
this.controlsTab.setText( "Controls" );
this.controlsTab.setControl( controlsComposite );
Composite extensionComposite = new Composite( this.tabFolder, SWT.NONE );
extensionComposite.setLayoutData( new RowData( 10, 10 ) );
GridLayout extensionLayout = new GridLayout();
extensionComposite.setLayout( extensionLayout );
ListViewer extensionViewer = new ListViewer( extensionComposite );
extensionViewer.getList().setLayoutData( new GridData( GridData.FILL_BOTH ) );
extensionViewer.setContentProvider( new ArrayContentProvider() );
extensionViewer.setLabelProvider( new LabelProvider() );
if ( connection != null && connection.getRootDSE() != null )
{
extensionViewer.setInput( ( ( RootDSE ) connection.getRootDSE() ).getSupportedExtensions() );
}
this.extensionsTab = new TabItem( this.tabFolder, SWT.NONE );
this.extensionsTab.setText( "Extensions" );
this.extensionsTab.setControl( extensionComposite );
Composite featureComposite = new Composite( this.tabFolder, SWT.NONE );
featureComposite.setLayoutData( new RowData( 10, 10 ) );
GridLayout featureLayout = new GridLayout();
featureComposite.setLayout( featureLayout );
ListViewer featureViewer = new ListViewer( featureComposite );
featureViewer.getList().setLayoutData( new GridData( GridData.FILL_BOTH ) );
featureViewer.setContentProvider( new ArrayContentProvider() );
featureViewer.setLabelProvider( new LabelProvider() );
if ( connection != null && connection.getRootDSE() != null )
{
featureViewer.setInput( ( ( RootDSE ) connection.getRootDSE() ).getSupportedFeatures() );
}
this.featuresTab = new TabItem( this.tabFolder, SWT.NONE );
this.featuresTab.setText( "Features" );
this.featuresTab.setControl( featureComposite );
Composite rawComposite = new Composite( this.tabFolder, SWT.NONE );
rawComposite.setLayoutData( new RowData( 10, 10 ) );
GridLayout rawLayout = new GridLayout();
rawComposite.setLayout( rawLayout );
Table table = new Table( rawComposite, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
| SWT.FULL_SELECTION | SWT.HIDE_SELECTION );
GridData gridData = new GridData( GridData.FILL_BOTH );
table.setLayoutData( gridData );
table.setHeaderVisible( true );
table.setLinesVisible( true );
TableViewer viewer = new TableViewer( table );
for ( int i = 0; i < EntryEditorWidgetTableMetadata.COLUM_NAMES.length; i++ )
{
TableColumn column = new TableColumn( table, SWT.LEFT, i );
column.setText( EntryEditorWidgetTableMetadata.COLUM_NAMES[i] );
column.setWidth( 150 );
column.setResizable( true );
}
viewer.setColumnProperties( EntryEditorWidgetTableMetadata.COLUM_NAMES );
viewer.setSorter( new InnerViewerSorter() );
viewer.setContentProvider( new InnerContentProvider() );
viewer.setLabelProvider( new InnerLabelProvider() );
if ( connection != null )
{
IEntry entry = connection.getRootDSE();
viewer.setInput( entry );
}
this.rawTab = new TabItem( this.tabFolder, SWT.NONE );
this.rawTab.setText( "Raw" );
this.rawTab.setControl( rawComposite );