layout.marginBottom = 10;
    void createCustomControl( Composite parent )    {		//create the composite to hold the widgets		Composite content = new Composite( parent, SWT.NONE );				GridLayout layout = new GridLayout( );		layout.numColumns = 3;		layout.verticalSpacing = 10;		content.setLayout( layout );		GridData gridData;		//List if all supported data bases		new Label( content, SWT.RIGHT ).setText( JdbcPlugin.getResourceString( "wizard.label.driverClass" ) );//$NON-NLS-1$		driverChooserCombo = new ComboViewer( content, SWT.DROP_DOWN );		gridData = new GridData( );		gridData.horizontalSpan = 2;		gridData.horizontalAlignment = SWT.FILL;		driverChooserCombo.getControl( ).setLayoutData( gridData );		//TODO		List driverList = JdbcToolKit.getJdbcDriversFromODADir( JDBC_EXTENSION_ID );		driverChooserCombo.setContentProvider( new IStructuredContentProvider( ) {			public Object[] getElements( Object inputElement )			{				if ( inputElement != null )				{					return ( (ArrayList) inputElement ).toArray( );				}				return new JDBCDriverInformation[]{};			}			public void dispose( )			{				// TODO Auto-generated method stub			}			public void inputChanged( Viewer viewer, Object oldInput,					Object newInput )			{				// TODO Auto-generated method stub			}		} );		driverChooserCombo.setLabelProvider( new LabelProvider( ) {			public String getText( Object inputElement )			{				JDBCDriverInformation info = (JDBCDriverInformation) inputElement;				return info.getDisplayString( );			}		} );		driverChooserCombo.setInput( sortDriverList( driverList ) );		driverChooserCombo.addSelectionChangedListener( new ISelectionChangedListener( ) {			// store latest driver class name			private String driverClassName;						public void selectionChanged( SelectionChangedEvent event )			{								StructuredSelection selection = (StructuredSelection) event.getSelection( );				JDBCDriverInformation info = (JDBCDriverInformation) selection.getFirstElement( );								String className = ( info != null ) ? info.getDriverClassName( )						: EMPTY_STRING;				if ( className.equalsIgnoreCase( driverClassName ) == true )					return;				driverClassName = className;								if ( info != null )				{					// do nothing					if ( info.getUrlFormat( ) != null )					{						jdbcUrl.setText( info.getUrlFormat( ) );					}					else					{						jdbcUrl.setText( EMPTY_STRING );					}				}                // TODO - enhance driverinfo extension point and UI to include                 // driver-specific JNDI URL template and jndi properties file name                jndiName.setText( EMPTY_STRING );				// Clear off the user name and passwords				userName.setText( EMPTY_STRING );				password.setText( EMPTY_STRING ); 				updateTestButton( );			}		} );		//initialize Database URL editor		new Label( content, SWT.RIGHT ).setText( JdbcPlugin.getResourceString( "wizard.label.url" ) );//$NON-NLS-1$		jdbcUrl = new Text( content, SWT.BORDER );		gridData = new GridData( );		gridData.horizontalSpan = 2;		gridData.horizontalAlignment = SWT.FILL;		gridData.grabExcessHorizontalSpace = true;		jdbcUrl.setLayoutData( gridData );		// User Name		new Label( content, SWT.RIGHT ).setText( JdbcPlugin.getResourceString( "wizard.label.username" ) );//$NON-NLS-1$		userName = new Text( content, SWT.BORDER );		gridData = new GridData( );		gridData.horizontalSpan = 2;		gridData.horizontalAlignment = SWT.FILL;		userName.setLayoutData( gridData );		//Password		new Label( content, SWT.RIGHT ).setText( JdbcPlugin.getResourceString( "wizard.label.password" ) );//$NON-NLS-1$		password = new Text( content, SWT.BORDER | SWT.PASSWORD );		gridData = new GridData( );		gridData.horizontalSpan = 2;		gridData.horizontalAlignment = SWT.FILL;		password.setLayoutData( gridData );        // JNDI Data Source URL        // TODO - externalize "&JNDI Data Source Name:" label when PII check-in is re-opened        // String jndiLabel = JdbcPlugin.getResourceString( "wizard.label.jndiname" ); //$NON-NLS-1$        String jndiLabel = "&JNDI URL:";        new Label( content, SWT.RIGHT ).setText( jndiLabel );        jndiName = new Text( content, SWT.BORDER );        gridData = new GridData( );        gridData.horizontalSpan = 2;        gridData.horizontalAlignment = SWT.FILL;        jndiName.setLayoutData( gridData );		// Test connection		new Label( content, SWT.NONE );		manageButton = new Button( content, SWT.PUSH );		manageButton.setText( JdbcPlugin.getResourceString( "wizard.label.manageDriver" ) );//$NON-NLS-1$		testButton = new Button( content, SWT.PUSH );		testButton.setText( JdbcPlugin.getResourceString( "wizard.label.testConnection" ) );//$NON-NLS-1$		//testButton.setLayoutData( new GridData( ) );		testButton.setLayoutData( new GridData( GridData.CENTER ) );				addControlListeners( );		updateTestButton( );		verifyJDBCProperties( );				Utility.setSystemHelp( content,				IHelpConstants.CONEXT_ID_DATASOURCE_JDBC );	}