[204620]  Need a method of contributing driver definition specific UIs to a connection profile wizard
diff --git a/plugins/org.eclipse.datatools.enablement.oracle.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.enablement.oracle.ui/META-INF/MANIFEST.MF
index 53f76fe..5bbc3b9 100644
--- a/plugins/org.eclipse.datatools.enablement.oracle.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.datatools.enablement.oracle.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.datatools.enablement.oracle.ui;singleton:=true
-Bundle-Version: 1.0.0.200712041
+Bundle-Version: 1.0.0.200712061
 Bundle-Localization: plugin
 Export-Package: org.eclipse.datatools.enablement.oracle.internal.ui,
  org.eclipse.datatools.enablement.oracle.internal.ui.drivers
diff --git a/plugins/org.eclipse.datatools.enablement.oracle.ui/src/org/eclipse/datatools/enablement/oracle/internal/ui/drivers/OracleThinDriverUIContributor.java b/plugins/org.eclipse.datatools.enablement.oracle.ui/src/org/eclipse/datatools/enablement/oracle/internal/ui/drivers/OracleThinDriverUIContributor.java
index 718dd90..4668deb 100644
--- a/plugins/org.eclipse.datatools.enablement.oracle.ui/src/org/eclipse/datatools/enablement/oracle/internal/ui/drivers/OracleThinDriverUIContributor.java
+++ b/plugins/org.eclipse.datatools.enablement.oracle.ui/src/org/eclipse/datatools/enablement/oracle/internal/ui/drivers/OracleThinDriverUIContributor.java
@@ -22,6 +22,7 @@
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Event;
@@ -46,6 +47,9 @@
 	private static final String CUI_NEWCW_PASSWORD_LBL_UI_ = Messages
 			.getString("CUI_NEWCW_PASSWORD_LBL_UI_"); //$NON-NLS-1$
 
+	private static final String CUI_NEWCW_SAVE_PASSWORD_LBL_UI_ = Messages
+			.getString("CUI_NEWCW_SAVE_PASSWORD_LBL_UI_"); //$NON-NLS-1$
+
 	private static final String CUI_NEWCW_CONNECTIONURL_LBL_UI_ = Messages
 			.getString("CUI_NEWCW_CONNECTIONURL_LBL_UI_");
 
@@ -76,6 +80,15 @@
 	private static final String CUI_NEWCW_USERNAME_SUMMARY_DATA_TEXT_ = Messages
 			.getString("CUI_NEWCW_USERNAME_SUMMARY_DATA_TEXT_"); //$NON-NLS-1$
 
+	private static final String CUI_NEWCW_SAVE_PASSWORD_SUMMARY_DATA_TEXT_ = Messages
+			.getString("CUI_NEWCW_SAVE_PASSWORD_SUMMARY_DATA_TEXT_"); //$NON-NLS-1$
+
+	private static final String CUI_NEWCW_TRUE_SUMMARY_DATA_TEXT_ = Messages
+			.getString("CUI_NEWCW_TRUE_SUMMARY_DATA_TEXT_"); //$NON-NLS-1$
+
+	private static final String CUI_NEWCW_FALSE_SUMMARY_DATA_TEXT_ = Messages
+			.getString("CUI_NEWCW_FALSE_SUMMARY_DATA_TEXT_"); //$NON-NLS-1$
+
 	private static final String CUI_NEWCW_URL_SUMMARY_DATA_TEXT_ = Messages
 			.getString("CUI_NEWCW_URL_SUMMARY_DATA_TEXT_"); //$NON-NLS-1$
 
@@ -101,6 +114,8 @@
 
 	private Text passwordText;
 
+	private Button savePasswordButton;
+
 	private Label urlLabel;
 
 	private Text urlText;
@@ -230,6 +245,15 @@
 			gd.horizontalSpan = 2;
 			passwordText.setLayoutData(gd);
 
+			this.savePasswordButton = new Button(baseComposite, SWT.CHECK);
+			this.savePasswordButton.setText(CUI_NEWCW_SAVE_PASSWORD_LBL_UI_); //$NON-NLS-1$
+			gd = new GridData();
+			gd.horizontalAlignment = GridData.FILL;
+			gd.verticalAlignment = GridData.BEGINNING;
+			gd.horizontalSpan = 3;
+			gd.grabExcessHorizontalSpace = true;
+			savePasswordButton.setLayoutData(gd);
+
 			urlLabel = new Label(baseComposite, SWT.NONE);
 			urlLabel.setText(CUI_NEWCW_CONNECTIONURL_LBL_UI_);
 			gd = new GridData();
@@ -281,6 +305,7 @@
 		portText.addListener(SWT.Modify, this);
 		usernameText.addListener(SWT.Modify, this);
 		passwordText.addListener(SWT.Modify, this);
+		savePasswordButton.addListener(SWT.Selection, this);
 		catalogCombo.addListener(SWT.Modify, this);
 	}
 
@@ -290,6 +315,7 @@
 		portText.removeListener(SWT.Modify, this);
 		usernameText.removeListener(SWT.Modify, this);
 		passwordText.removeListener(SWT.Modify, this);
+		savePasswordButton.removeListener(SWT.Selection, this);
 		catalogCombo.removeListener(SWT.Modify, this);
 	}
 
@@ -312,6 +338,11 @@
 				this.catalogCombo.getText().trim() });
 		summaryData.add(new String[] { CUI_NEWCW_USERNAME_SUMMARY_DATA_TEXT_,
 				this.usernameText.getText().trim() });
+		summaryData
+				.add(new String[] {
+						CUI_NEWCW_SAVE_PASSWORD_SUMMARY_DATA_TEXT_,
+						savePasswordButton.getSelection() ? CUI_NEWCW_TRUE_SUMMARY_DATA_TEXT_
+								: CUI_NEWCW_FALSE_SUMMARY_DATA_TEXT_ });
 		summaryData.add(new String[] { CUI_NEWCW_URL_SUMMARY_DATA_TEXT_,
 				this.urlText.getText().trim() });
 
@@ -336,7 +367,12 @@
 		if (password != null) {
 			passwordText.setText(password);
 		}
-
+		String savePassword = this.properties
+				.getProperty(IConnectionProfileConstants.SAVE_PASSWORD_PROP_ID);
+		if ((savePassword != null)
+				&& Boolean.valueOf(savePassword) == Boolean.TRUE) {
+			savePasswordButton.setSelection(true);
+		}
 		String catalog = USER_CATALOG;
 		String catalogSetting = this.properties
 				.getProperty(IOracleDriverDefinitionConstants.CATALOG_TYPE_PROPERTY_ID);
@@ -380,7 +416,7 @@
 				this.passwordText.getText());
 		properties.setProperty(
 				IConnectionProfileConstants.SAVE_PASSWORD_PROP_ID, String
-						.valueOf(false));
+						.valueOf(savePasswordButton.getSelection()));
 		properties.setProperty(IDriverDefinitionConstants.USERNAME_PROP_ID,
 				this.usernameText.getText());
 		properties.setProperty(IDriverDefinitionConstants.URL_PROP_ID,
diff --git a/plugins/org.eclipse.datatools.enablement.oracle.ui/src/org/eclipse/datatools/enablement/oracle/internal/ui/drivers/messages.properties b/plugins/org.eclipse.datatools.enablement.oracle.ui/src/org/eclipse/datatools/enablement/oracle/internal/ui/drivers/messages.properties
index d3742f5..d1c8fcc 100644
--- a/plugins/org.eclipse.datatools.enablement.oracle.ui/src/org/eclipse/datatools/enablement/oracle/internal/ui/drivers/messages.properties
+++ b/plugins/org.eclipse.datatools.enablement.oracle.ui/src/org/eclipse/datatools/enablement/oracle/internal/ui/drivers/messages.properties
@@ -17,6 +17,7 @@
 CUI_NEWCW_PORT_LBL_UI_ = Port nu&mber:
 CUI_NEWCW_USERNAME_LBL_UI_ = User name:
 CUI_NEWCW_PASSWORD_LBL_UI_ = Password:
+CUI_NEWCW_SAVE_PASSWORD_LBL_UI_ = Sa&ve password
 CUI_NEWCW_CONNECTIONURL_LBL_UI_= Connection UR&L:
 ALL_CATALOGS_OPTION_UI_ = All
 DBA_CATALOG_OPTION_UI_ = DBA
@@ -28,6 +29,9 @@
 CUI_NEWCW_PORT_SUMMARY_DATA_TEXT_ = Port number
 CUI_NEWCW_CATALOG_SUMMARY_DATA_TEXT_ = Catalog
 CUI_NEWCW_USERNAME_SUMMARY_DATA_TEXT_ = User name
+CUI_NEWCW_SAVE_PASSWORD_SUMMARY_DATA_TEXT_ = Save password
+CUI_NEWCW_TRUE_SUMMARY_DATA_TEXT_ = true
+CUI_NEWCW_FALSE_SUMMARY_DATA_TEXT_ = false
 CUI_NEWCW_URL_SUMMARY_DATA_TEXT_ = URL
 
 CUI_NEWCW_VALIDATE_DATABASE_REQ_UI_ = Enter an SID name.