latest quantum sources 2.3.2
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / wizards / JDBCDriverSelectionWizardPage.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/JDBCDriverSelectionWizardPage.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/JDBCDriverSelectionWizardPage.java
new file mode 100644 (file)
index 0000000..7770614
--- /dev/null
@@ -0,0 +1,105 @@
+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