synchronized from quantum plugin
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / ui / dialog / AddDriverDialog.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/ui/dialog/AddDriverDialog.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/ui/dialog/AddDriverDialog.java
new file mode 100644 (file)
index 0000000..bcab770
--- /dev/null
@@ -0,0 +1,124 @@
+package com.quantum.ui.dialog;
+
+import org.eclipse.jface.dialogs.Dialog;
+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 org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+import com.quantum.Messages;
+import com.quantum.QuantumPlugin;
+import com.quantum.util.JarUtil;
+
+/**
+ * @author BC
+ */
+public class AddDriverDialog extends Dialog {
+
+       private FileDialog fileDialog;
+
+       private Text driverFileName;
+       private Text driverClassName;
+
+       
+       /**
+        * @param parentShell
+        */
+       public AddDriverDialog(Shell parentShell) {
+               super(parentShell);
+       }
+
+       protected void configureShell(Shell shell) {
+               super.configureShell(shell);
+               shell.setText(Messages.getString(getClass(), "title"));
+       }
+       
+    /* (non-Javadoc)
+     * Method declared on Dialog
+     */
+    protected Control createDialogArea(Composite parent) {
+       parent.setLayout(new GridLayout());
+        Composite composite = (Composite) super.createDialogArea(parent);
+               GridLayout layout = new GridLayout();
+               composite.setLayout(layout);
+               layout.numColumns = 3;
+               GridData fullHorizontal = new GridData(
+                               GridData.HORIZONTAL_ALIGN_BEGINNING,
+                               GridData.VERTICAL_ALIGN_BEGINNING, 
+                               true, false);
+               composite.setLayoutData(fullHorizontal);
+               
+
+               this.fileDialog = new FileDialog(composite.getShell(), SWT.OPEN);
+               this.fileDialog.setFilterExtensions(new String[] { "*.jar", "*.zip", "*.*" });
+               this.fileDialog.setFilterNames(new String[] {
+                               Messages.getString("BookmarkWizard.JarFiles"),
+                               Messages.getString("BookmarkWizard.ZipFiles"),
+                               Messages.getString("BookmarkWizard.AllFiles") });
+
+               Label label = new Label(composite, SWT.NULL);
+               label.setText(Messages.getString(getClass(), "fileName"));
+               this.driverFileName = new Text(composite, SWT.BORDER | SWT.SINGLE);
+               fullHorizontal = new GridData(
+                               GridData.HORIZONTAL_ALIGN_FILL,
+                               GridData.VERTICAL_ALIGN_BEGINNING, 
+                               true, false);
+               fullHorizontal.widthHint = 150;
+               this.driverFileName.setLayoutData(fullHorizontal);
+
+               Button button = new Button(composite, SWT.PUSH);
+               button.setText(Messages.getString(getClass(), "browse"));
+
+               button.addSelectionListener(new SelectionAdapter() {
+                       public void widgetSelected(SelectionEvent event) {
+                               AddDriverDialog.this.fileDialog.setFilterPath(QuantumPlugin.getDefault()
+                                               .getPreferenceStore().getString(
+                                                               "quantum.dialogs.bookmarkwizard.path"));
+                               String filename = AddDriverDialog.this.fileDialog.open();
+                               if (filename != null) {
+                                       AddDriverDialog.this.driverFileName.setText(filename);
+                                       QuantumPlugin.getDefault().getPreferenceStore().setValue(
+                                                       "quantum.dialogs.bookmarkwizard.path", filename);
+                               }
+                       }
+               });
+
+               label = new Label(composite, SWT.NULL);
+               label.setText(Messages.getString(getClass(), "driverClassName"));
+               this.driverClassName = new Text(composite, SWT.BORDER | SWT.SINGLE);
+               fullHorizontal = new GridData(
+                               GridData.HORIZONTAL_ALIGN_FILL,
+                               GridData.VERTICAL_ALIGN_BEGINNING, 
+                               true, false);
+               fullHorizontal.widthHint = 150;
+               this.driverClassName.setLayoutData(fullHorizontal);
+
+               button = new Button(composite, SWT.PUSH);
+               button.setText(Messages.getString(getClass(), "browse"));
+
+               button.addSelectionListener(new SelectionAdapter() {
+                       public void widgetSelected(SelectionEvent event) {
+                               SimpleSelectionDialog dialog = new SimpleSelectionDialog(
+                                               getShell(), "Select a Driver", JarUtil.getAllDriverNames(
+                                                               getDriverFile()), QuantumPlugin.getImage("class.gif"));
+                               if (dialog.open() == SimpleSelectionDialog.OK) {
+                                       AddDriverDialog.this.driverClassName.setText(
+                                                       dialog.getSelectedElement());
+                               }
+                       }
+               });
+               return composite;
+    }
+    
+    protected String getDriverFile() {
+       return this.driverFileName.getText();
+    }
+}
\ No newline at end of file