--- /dev/null
+package com.quantum.wizards;
+
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import com.quantum.Messages;
+import com.quantum.model.JDBCDriver;
+import com.quantum.view.JDBCDriverTableViewer;
+
+/**
+ * @author BC
+ */
+public class JDBCDriverSelectionWizardPage extends PropertyChangeWizardPage implements ISelectionChangedListener {
+
+ private JDBCDriverTableViewer tableViewer;
+
+ private JDBCDriver driver;
+
+ /**
+ * @param pageName
+ */
+ protected JDBCDriverSelectionWizardPage(String pageName) {
+ super(pageName);
+
+ setTitle(Messages.getString(getClass(), "title"));
+ setDescription(Messages.getString(getClass(), "description"));
+ }
+
+ public void createControl(Composite parent) {
+ setPageComplete(false);
+ Composite container = createBasicContainer(parent, 1);
+ GridLayout layout = new GridLayout(1, false);
+ container.setLayout(layout);
+
+ this.tableViewer = new JDBCDriverTableViewer(container);
+ GridData data = new GridData(GridData.FILL_BOTH);
+ this.tableViewer.getControl().setLayoutData(data);
+ this.tableViewer.addSelectionChangedListener(this);
+
+ Button newDriver = new Button(container, SWT.PUSH);
+ newDriver.setText(Messages.getString(getClass(), "addDriver"));
+ newDriver.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ AddDriverWizard wizard = new AddDriverWizard();
+ WizardDialog dialog =
+ new WizardDialog(getShell(), wizard);
+ dialog.open();
+ }
+ });
+ data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING);
+ newDriver.setLayoutData(data);
+
+ setControl(container);
+ }
+ /**
+ * @param parent
+ */
+ private Composite createBasicContainer(Composite parent, int numberOfColumns) {
+ Composite container = new Composite(parent, SWT.NULL);
+ GridLayout layout = new GridLayout();
+ container.setLayout(layout);
+ layout.numColumns = numberOfColumns;
+ layout.verticalSpacing = 9;
+ GridData fullHorizontal = new GridData(GridData.FILL_BOTH);
+ container.setLayoutData(fullHorizontal);
+ return container;
+ }
+ public void selectionChanged(SelectionChangedEvent event) {
+ IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+ setPageComplete(!selection.isEmpty());
+ if (!selection.isEmpty()) {
+ setDriver((JDBCDriver) selection.getFirstElement());
+ }
+
+ }
+ /**
+ * @return Returns the driver.
+ */
+ public JDBCDriver getDriver() {
+ return this.driver;
+ }
+ /**
+ * @param driver The driver to set.
+ */
+ public void setDriver(JDBCDriver driver) {
+ if (this.driver != driver) {
+ JDBCDriver original = this.driver;
+ this.driver = driver;
+ firePropertyChange("driver", original, driver);
+ }
+ }
+ public void dispose() {
+ this.tableViewer.dispose();
+ super.dispose();
+ }
+}
\ No newline at end of file