synchronized from quantum plugin
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.quantum.sql / src / com / quantum / wizards / NewBookmarkPage1.java
diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/NewBookmarkPage1.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/NewBookmarkPage1.java
new file mode 100644 (file)
index 0000000..89bb37f
--- /dev/null
@@ -0,0 +1,170 @@
+package com.quantum.wizards;
+
+import java.io.File;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+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.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+
+import com.quantum.Messages;
+import com.quantum.QuantumPlugin;
+import com.quantum.model.BookmarkCollection;
+import com.quantum.ui.dialog.AddDriverDialog;
+import com.quantum.view.JDBCDriverContentProvider;
+import com.quantum.view.JDBCDriverLabelProvider;
+
+/**
+ * @author BC
+ */
+public class NewBookmarkPage1 extends WizardPage {
+
+       private FileDialog fileDialog;
+
+       private Text driverFileName;
+       
+       private TableViewer tableViewer;
+
+       /**
+        * @param pageName
+        */
+       protected NewBookmarkPage1(String pageName) {
+               super(pageName);
+       }
+
+       public void createControl(Composite parent) {
+               Composite container = createBasicContainer(parent, 1);
+               GridLayout layout = new GridLayout(2, false);
+               container.setLayout(layout);
+               
+               Label label = new Label(container, SWT.NONE);
+               label.setText("Select a driver");
+               GridData data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+               data.horizontalSpan = 2;
+               label.setLayoutData(data);
+               
+               Table table = new Table(container, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
+        table.setHeaderVisible(true);
+        for (int i = 0, length = 4; i < length; i++) {
+            TableColumn column = new TableColumn(table, SWT.NONE);
+            column.setText(Messages.getString(getClass(), "driverColumn" + i));
+        }
+               
+        for (int i = 0, length = 4; i < length; i++) {
+            table.getColumn(i).pack();
+        }
+               
+               this.tableViewer = new TableViewer(table);
+               data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL);
+               this.tableViewer.getControl().setLayoutData(data);
+               this.tableViewer.setContentProvider(new JDBCDriverContentProvider());
+               this.tableViewer.setLabelProvider(new JDBCDriverLabelProvider());
+               this.tableViewer.setColumnProperties(new String[] { "name", "className", "version", "jarFileName" });
+//             Table table = ((Table) this.tableViewer.getControl());
+               this.tableViewer.setInput(BookmarkCollection.getInstance());
+               
+               
+               Button newDriver = new Button(container, SWT.PUSH);
+               newDriver.setText("Add driver...");
+               newDriver.addSelectionListener(new SelectionAdapter() {
+                       public void widgetSelected(SelectionEvent e) {
+                       AddDriverDialog dialog = new AddDriverDialog(getShell());
+                       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.HORIZONTAL_ALIGN_BEGINNING,
+                               GridData.VERTICAL_ALIGN_BEGINNING, 
+                               true, false);
+               container.setLayoutData(fullHorizontal);
+               return container;
+       }
+
+       /**
+        * @param parent
+        * @return
+        */
+       private Composite createNewDriverSelection(Composite parent) {
+               this.fileDialog = new FileDialog(getContainer().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") });
+
+               Composite container = createBasicContainer(parent, 3);
+
+               Label label = new Label(container, SWT.NULL);
+               label.setText(Messages.getString("BookmarkWizard.DriverAst")); //$NON-NLS-1$
+               this.driverFileName = new Text(container, SWT.BORDER | SWT.SINGLE);
+               GridData fullHorizontal = new GridData(
+                               GridData.HORIZONTAL_ALIGN_BEGINNING,
+                               GridData.VERTICAL_ALIGN_BEGINNING, 
+                               false, false);
+               this.driverFileName.setLayoutData(fullHorizontal);
+
+               Button button = new Button(container, SWT.PUSH);
+               button.setText(Messages.getString("BookmarkWizard.Browse")); //$NON-NLS-1$
+
+               button.addSelectionListener(new SelectionListener() {
+
+                       public void widgetDefaultSelected(SelectionEvent e) {
+                       }
+
+                       public void widgetSelected(SelectionEvent e) {
+                               NewBookmarkPage1.this.fileDialog.setFilterPath(QuantumPlugin.getDefault()
+                                               .getPreferenceStore().getString(
+                                                               "quantum.dialogs.bookmarkwizard.path"));
+                               String filename = NewBookmarkPage1.this.fileDialog.open();
+                               if (filename != null) {
+                                       NewBookmarkPage1.this.driverFileName.setText(filename);
+                                       QuantumPlugin.getDefault().getPreferenceStore().setValue(
+                                                       "quantum.dialogs.bookmarkwizard.path", filename);
+                               }
+                       }
+               });
+               return container;
+       }
+
+       //      public boolean isPageComplete() {
+       //              File file = getDriverFile();
+       //              if (file == null) {
+       //                      return false;
+       //              } else if (!file.exists() || !file.isFile()) {
+       //                      return false;
+       //              } else {
+       //                      return true;
+       //              }
+       //      }
+       //      
+       private File getDriverFile() {
+               return (this.driverFileName == null || this.driverFileName.getText() == null) ? null
+                               : new File(this.driverFileName.getText());
+       }
+}
\ No newline at end of file