X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/BookmarkWizard.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/BookmarkWizard.java new file mode 100644 index 0000000..da768ff --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/BookmarkWizard.java @@ -0,0 +1,297 @@ +package com.quantum.wizards; + +import com.quantum.Messages; +import com.quantum.QuantumPlugin; +import com.quantum.adapters.AdapterFactory; +import com.quantum.adapters.DriverInfo; +import com.quantum.model.Bookmark; +import com.quantum.model.BookmarkCollection; +import com.quantum.view.bookmark.BookmarkNode; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.wizard.Wizard; +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.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; + +public class BookmarkWizard extends Wizard { + BookmarkPage mainPage; + + private Bookmark current; + + public void init(BookmarkNode selection) { + System.out.println("Initing workbench"); //$NON-NLS-1$ + this.current = selection.getBookmark(); + setWindowTitle(Messages.getString("BookmarkWizard.NewBookmark")); //$NON-NLS-1$ + } + public void init() { + System.out.println("Initing workbench"); //$NON-NLS-1$ + current = null; + setWindowTitle(Messages.getString("BookmarkWizard.NewBookmark")); //$NON-NLS-1$ + } + public boolean performFinish() { + System.out.println("perform finish workbench"); //$NON-NLS-1$ + String bookmarkName = mainPage.name.getText(); + if ( BookmarkCollection.getInstance().find(bookmarkName) != null){ + MessageDialog.openInformation( + this.getShell(),Messages.getString("BookmarkWizard.Error"),Messages.getString("BookmarkWizard.bookmarkAlreadyExists")); //$NON-NLS-1$ //$NON-NLS-2$ + return false; + } + + mainPage.performFinish(); + return true; + } + public void addPages() { + System.out.println("adding pages"); //$NON-NLS-1$ + if (current != null) { + mainPage = new BookmarkPage(Messages.getString("BookmarkWizard.Testing"), current); //$NON-NLS-1$ + } else { + mainPage = new BookmarkPage(Messages.getString("BookmarkWizard.Testing")); //$NON-NLS-1$ + } + addPage(mainPage); + System.out.println("adding pages"); //$NON-NLS-1$ + } +} + +class BookmarkPage extends WizardPage { + public static final String ADD = "ADD"; //$NON-NLS-1$ + String action = ADD; + Text name; + Text username; + Text password; + Text schema; + Text connect; + Text driver; + //List driverList; + Combo type; + Text driverFile; + Button prompt; + + Bookmark initialData = null; + + FileDialog dialog; + + DriverInfo[] drivers = AdapterFactory.getInstance().getDriverList(); + /** + * Constructor for BookmarkPage. + * @param pageName + */ + public BookmarkPage(String pageName) { + super(pageName); + initialData = null; + } + /** + * Constructor for BookmarkPage. + * @param pageName + */ + public BookmarkPage(String pageName, Bookmark bookmark) { + super(pageName); + this.initialData = bookmark; + } + + public void createControl(Composite parent) { + System.out.println("page create control"); //$NON-NLS-1$ + dialog = new FileDialog(getContainer().getShell(), SWT.OPEN); + dialog.setFilterExtensions(new String[]{"*.jar", "*.zip","*.*"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + dialog.setFilterNames(new String[]{Messages.getString("BookmarkWizard.JarFiles"),Messages.getString("BookmarkWizard.ZipFiles"), Messages.getString("BookmarkWizard.AllFiles")}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + Composite container = new Composite(parent, SWT.NULL); + GridLayout layout = new GridLayout(); + container.setLayout(layout); + layout.numColumns = 2; + layout.verticalSpacing = 9; + + + Label label = new Label(container, SWT.NULL); + label.setText(Messages.getString("BookmarkWizard.BookmarkNameAst")); //$NON-NLS-1$ + name = new Text(container, SWT.BORDER | SWT.SINGLE); + GridData fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + name.setLayoutData(fullHorizontal); + + label = new Label(container, SWT.NULL); + label.setText(Messages.getString("BookmarkWizard.UsernameAst")); //$NON-NLS-1$ + username = new Text(container, SWT.BORDER | SWT.SINGLE); + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + username.setLayoutData(fullHorizontal); + + label = new Label(container, SWT.NULL); + label.setText(Messages.getString("BookmarkWizard.PasswordAst")); //$NON-NLS-1$ + password = new Text(container, SWT.BORDER | SWT.SINGLE); + password.setEchoChar('*'); + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + password.setLayoutData(fullHorizontal); + + this.prompt = new Button(container, SWT.CHECK); + this.prompt.setText(Messages.getString("BookmarkWizard.Prompt")); //$NON-NLS-1$ + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + fullHorizontal.horizontalSpan = 2; + this.prompt.setLayoutData(fullHorizontal); + + label = new Label(container, SWT.NULL); + label.setText(Messages.getString("BookmarkWizard.Schema")); //$NON-NLS-1$ + schema = new Text(container, SWT.BORDER | SWT.SINGLE); + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + schema.setLayoutData(fullHorizontal); + + label = new Label(container, SWT.NULL); + label.setText(Messages.getString("BookmarkWizard.ConnectAst")); //$NON-NLS-1$ + connect = new Text(container, SWT.BORDER | SWT.SINGLE); + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + connect.setLayoutData(fullHorizontal); + + label = new Label(container, SWT.NULL); + label.setText(Messages.getString("BookmarkWizard.DriverAst")); //$NON-NLS-1$ + driver = new Text(container, SWT.BORDER | SWT.SINGLE); + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + driver.setLayoutData(fullHorizontal); + + //label = new Label(container, SWT.NULL); + //fullHorizontal = new GridData(); + //fullHorizontal.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING; + //fullHorizontal.verticalSpan = 3; + //label.setLayoutData(fullHorizontal); + //label.setText("(Drivers Found in File)"); + /*driverList = new List(container, SWT.SINGLE); + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + fullHorizontal.verticalAlignment = GridData.FILL; + fullHorizontal.verticalSpan = 3; + driverList.setLayoutData(fullHorizontal); + driverList.addSelectionListener(new SelectionListener() { + public void widgetDefaultSelected(SelectionEvent e) { + } + public void widgetSelected(SelectionEvent e) { + String[] selection = driverList.getSelection(); + if (selection != null && selection.length > 0) { + driver.setText(selection[0]); + } + } + });*/ + + label = new Label(container, SWT.NULL); + label.setText(Messages.getString("BookmarkWizard.TypeAst")); //$NON-NLS-1$ + type = new Combo(container, SWT.SIMPLE | SWT.DROP_DOWN | SWT.READ_ONLY); + String driverNames[] = new String[drivers.length]; + for (int i = 0; i < drivers.length; i++) { + driverNames[i] = drivers[i].getDisplayName(); + } + type.setItems(driverNames); + type.select(0); + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + type.setLayoutData(fullHorizontal); + + label = new Label(container, SWT.NULL); + label.setText(Messages.getString("BookmarkWizard.DriverFilenameAst")); //$NON-NLS-1$ + driverFile = new Text(container, SWT.BORDER | SWT.SINGLE); + fullHorizontal = new GridData(); + fullHorizontal.horizontalAlignment = GridData.FILL; + driverFile.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) { + // We retrieve the last saved path + dialog.setFilterPath(QuantumPlugin.getDefault().getPreferenceStore().getString("quantum.dialogs.bookmarkwizard.path")); //$NON-NLS-1$ + String filename = dialog.open(); + if (filename != null) { + driverFile.setText(filename); + // We save the used path + QuantumPlugin.getDefault().getPreferenceStore().setValue("quantum.dialogs.bookmarkwizard.path", filename); //$NON-NLS-1$ + + } + } + }); + +// if (initialData != null) { +// name.setText(initialData.getName()); +// username.setText(initialData.getUsername()); +// if (initialData.getPromptForPassword()) { +// this.password.setEditable(false); +// } else { +// password.setText(initialData.getPassword()); +// } +// connect.setText(initialData.getConnect()); +// driver.setText(initialData.getDriver()); +// String typeData = initialData.getType(); +// this.prompt.setSelection(initialData.getPromptForPassword()); +// int selectedIndex = 0; +// for (int i = 0; i < drivers.length; i++) { +// if (typeData.equals(drivers[i].getDriverType())) { +// selectedIndex = i; +// } +// } +// type.select(selectedIndex); +// driverFile.setText(initialData.getDriverFile()); +// updateDriverList(); +// } + + prompt.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent event) { + BookmarkPage.this.password.setEditable(!prompt.getSelection()); + } + }); + + setControl(container); + + setPageComplete(true); + } + public void updateDriverList() { + /*try { + JarFile file = new JarFile(driverFile.getText()); + Enumeration enum = file.entries(); + while (enum.hasMoreElements()) { + JarEntry entry = (JarEntry) enum.nextElement(); + String className = entry.getName().replace('/', '.'); + if (className.endsWith("Driver.class")) { + className = className.substring(0, className.lastIndexOf('.')); + //driverList.add(className); + } + } + } catch (IOException ex) { + //driverList.removeAll(); + }*/ + } + public void performFinish() { + if (initialData == null) { + initialData = new Bookmark(); + } + initialData.setName(name.getText()); + initialData.setUsername(username.getText()); + initialData.setPromptForPassword(this.prompt.getSelection()); + if (initialData.getPromptForPassword()) { + initialData.setPassword(""); //$NON-NLS-1$ + } else { + initialData.setPassword(password.getText()); + } + initialData.addSchema(schema.getText()); + initialData.setConnect(connect.getText()); + initialData.setDriver(driver.getText()); + int selection = type.getSelectionIndex(); + if (selection >= 0) { + initialData.setType(drivers[selection].getDriverType()); + } + initialData.setDriverFile(driverFile.getText()); + BookmarkCollection.getInstance().addBookmark(initialData); + } +} \ No newline at end of file