1 package com.quantum.wizards;
3 import org.eclipse.jface.dialogs.MessageDialog;
4 import org.eclipse.jface.preference.IPreferenceStore;
5 import org.eclipse.jface.wizard.Wizard;
6 import org.eclipse.jface.wizard.WizardPage;
7 import org.eclipse.swt.SWT;
8 import org.eclipse.swt.events.SelectionAdapter;
9 import org.eclipse.swt.events.SelectionEvent;
10 import org.eclipse.swt.events.SelectionListener;
11 import org.eclipse.swt.layout.GridData;
12 import org.eclipse.swt.layout.GridLayout;
13 import org.eclipse.swt.widgets.Button;
14 import org.eclipse.swt.widgets.Combo;
15 import org.eclipse.swt.widgets.Composite;
16 import org.eclipse.swt.widgets.FileDialog;
17 import org.eclipse.swt.widgets.Label;
18 import org.eclipse.swt.widgets.Text;
20 import com.quantum.Messages;
21 import com.quantum.QuantumPlugin;
22 import com.quantum.adapters.AdapterFactory;
23 import com.quantum.adapters.DriverInfo;
24 import com.quantum.model.Bookmark;
25 import com.quantum.model.BookmarkCollection;
26 import com.quantum.model.JDBCDriver;
28 public class BookmarkWizard extends Wizard {
29 BookmarkPage mainPage;
32 System.out.println("Initing workbench"); //$NON-NLS-1$
33 setWindowTitle(Messages.getString("BookmarkWizard.NewBookmark")); //$NON-NLS-1$
35 public boolean performFinish() {
36 System.out.println("perform finish workbench"); //$NON-NLS-1$
37 String bookmarkName = mainPage.name.getText();
38 if ( BookmarkCollection.getInstance().find(bookmarkName) != null){
39 MessageDialog.openInformation(
40 this.getShell(),Messages.getString("BookmarkWizard.Error"),Messages.getString("BookmarkWizard.bookmarkAlreadyExists")); //$NON-NLS-1$ //$NON-NLS-2$
44 mainPage.performFinish();
47 public void addPages() {
48 System.out.println("adding pages"); //$NON-NLS-1$
49 // WizardPage page = new NewBookmarkPage1(Messages.getString("BookmarkWizard.Testing")); //$NON-NLS-1$
51 mainPage = new BookmarkPage(Messages.getString("BookmarkWizard.Testing")); //$NON-NLS-1$
53 System.out.println("adding pages"); //$NON-NLS-1$
57 class BookmarkPage extends WizardPage {
58 public static final String ADD = "ADD"; //$NON-NLS-1$
73 DriverInfo[] drivers = AdapterFactory.getInstance().getDriverList();
75 * Constructor for BookmarkPage.
78 public BookmarkPage(String pageName) {
81 public void createControl(Composite parent) {
82 System.out.println("page create control"); //$NON-NLS-1$
83 dialog = new FileDialog(getContainer().getShell(), SWT.OPEN);
84 dialog.setFilterExtensions(new String[]{"*.jar", "*.zip","*.*"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
85 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$
86 Composite container = new Composite(parent, SWT.NULL);
87 GridLayout layout = new GridLayout();
88 container.setLayout(layout);
89 layout.numColumns = 2;
90 layout.verticalSpacing = 9;
93 Label label = new Label(container, SWT.NULL);
94 label.setText(Messages.getString("BookmarkWizard.BookmarkNameAst")); //$NON-NLS-1$
95 name = new Text(container, SWT.BORDER | SWT.SINGLE);
96 GridData fullHorizontal = new GridData();
97 fullHorizontal.horizontalAlignment = GridData.FILL;
98 name.setLayoutData(fullHorizontal);
100 label = new Label(container, SWT.NULL);
101 label.setText(Messages.getString("BookmarkWizard.UsernameAst")); //$NON-NLS-1$
102 username = new Text(container, SWT.BORDER | SWT.SINGLE);
103 fullHorizontal = new GridData();
104 fullHorizontal.horizontalAlignment = GridData.FILL;
105 username.setLayoutData(fullHorizontal);
107 label = new Label(container, SWT.NULL);
108 label.setText(Messages.getString("BookmarkWizard.PasswordAst")); //$NON-NLS-1$
109 password = new Text(container, SWT.BORDER | SWT.SINGLE);
110 password.setEchoChar('*');
111 fullHorizontal = new GridData();
112 fullHorizontal.horizontalAlignment = GridData.FILL;
113 password.setLayoutData(fullHorizontal);
115 this.prompt = new Button(container, SWT.CHECK);
116 this.prompt.setText(Messages.getString("BookmarkWizard.Prompt")); //$NON-NLS-1$
117 fullHorizontal = new GridData();
118 fullHorizontal.horizontalAlignment = GridData.FILL;
119 fullHorizontal.horizontalSpan = 2;
120 this.prompt.setLayoutData(fullHorizontal);
122 label = new Label(container, SWT.NULL);
123 label.setText(Messages.getString("BookmarkWizard.Schema")); //$NON-NLS-1$
124 schema = new Text(container, SWT.BORDER | SWT.SINGLE);
125 fullHorizontal = new GridData();
126 fullHorizontal.horizontalAlignment = GridData.FILL;
127 schema.setLayoutData(fullHorizontal);
129 label = new Label(container, SWT.NULL);
130 label.setText(Messages.getString("BookmarkWizard.ConnectAst")); //$NON-NLS-1$
131 connect = new Text(container, SWT.BORDER | SWT.SINGLE);
132 fullHorizontal = new GridData();
133 fullHorizontal.horizontalAlignment = GridData.FILL;
134 connect.setLayoutData(fullHorizontal);
136 label = new Label(container, SWT.NULL);
137 label.setText(Messages.getString("BookmarkWizard.DriverAst")); //$NON-NLS-1$
138 driver = new Text(container, SWT.BORDER | SWT.SINGLE);
139 fullHorizontal = new GridData();
140 fullHorizontal.horizontalAlignment = GridData.FILL;
141 driver.setLayoutData(fullHorizontal);
143 label = new Label(container, SWT.NULL);
144 label.setText(Messages.getString("BookmarkWizard.TypeAst")); //$NON-NLS-1$
145 type = new Combo(container, SWT.SIMPLE | SWT.DROP_DOWN | SWT.READ_ONLY);
146 String driverNames[] = new String[drivers.length];
147 for (int i = 0; i < drivers.length; i++) {
148 driverNames[i] = drivers[i].getDisplayName();
150 type.setItems(driverNames);
152 fullHorizontal = new GridData();
153 fullHorizontal.horizontalAlignment = GridData.FILL;
154 type.setLayoutData(fullHorizontal);
156 label = new Label(container, SWT.NULL);
157 label.setText(Messages.getString("BookmarkWizard.DriverFilenameAst")); //$NON-NLS-1$
158 driverFile = new Text(container, SWT.BORDER | SWT.SINGLE);
159 fullHorizontal = new GridData();
160 fullHorizontal.horizontalAlignment = GridData.FILL;
161 driverFile.setLayoutData(fullHorizontal);
163 Button button = new Button(container, SWT.PUSH);
164 button.setText(Messages.getString("BookmarkWizard.Browse")); //$NON-NLS-1$
166 button.addSelectionListener(new SelectionListener() {
167 public void widgetDefaultSelected(SelectionEvent e) {
169 public void widgetSelected(SelectionEvent e) {
170 // We retrieve the last saved path
171 dialog.setFilterPath(QuantumPlugin.getDefault().getPreferenceStore().getString("quantum.dialogs.bookmarkwizard.path")); //$NON-NLS-1$
172 String filename = dialog.open();
173 if (filename != null) {
174 driverFile.setText(filename);
175 // We save the used path
176 QuantumPlugin.getDefault().getPreferenceStore().setValue("quantum.dialogs.bookmarkwizard.path", filename); //$NON-NLS-1$
182 prompt.addSelectionListener(new SelectionAdapter() {
183 public void widgetSelected(SelectionEvent event) {
184 BookmarkPage.this.password.setEditable(!prompt.getSelection());
187 //jsurfer start typical MySQL settings !?
188 IPreferenceStore fStore = QuantumPlugin.getDefault().getPreferenceStore();
190 username.setText(fStore.getString("phpeclipse.sql.username.connect"));
191 connect.setText(fStore.getString("phpeclipse.sql.connect.connect"));
192 driver.setText(fStore.getString("phpeclipse.sql.driver.connect"));
193 String typeData = fStore.getString("phpeclipse.sql.type.connect");
194 int selectedIndex = 0;
195 for (int i = 0; i < drivers.length; i++) {
196 if (typeData.equals(drivers[i].getDisplayName())) {
200 type.select(selectedIndex);
201 driverFile.setText(fStore.getString("phpeclipse.sql.filename.connect"));
204 setControl(container);
206 setPageComplete(true);
208 public void updateDriverList() {
210 JarFile file = new JarFile(driverFile.getText());
211 Enumeration enum = file.entries();
212 while (enum.hasMoreElements()) {
213 JarEntry entry = (JarEntry) enum.nextElement();
214 String className = entry.getName().replace('/', '.');
215 if (className.endsWith("Driver.class")) {
216 className = className.substring(0, className.lastIndexOf('.'));
217 //driverList.add(className);
220 } catch (IOException ex) {
221 //driverList.removeAll();
224 public void performFinish() {
225 Bookmark initialData = new Bookmark();
226 initialData.setName(name.getText());
227 initialData.setUsername(username.getText());
228 initialData.setPromptForPassword(this.prompt.getSelection());
229 if (initialData.getPromptForPassword()) {
230 initialData.setPassword(""); //$NON-NLS-1$
232 initialData.setPassword(password.getText());
234 initialData.addSchema(schema.getText());
235 initialData.setConnect(connect.getText());
236 JDBCDriver jdbcDriver = BookmarkCollection.getInstance().findDriver(
237 driver.getText(), driverFile.getText());
238 initialData.setJDBCDriver(jdbcDriver);
239 int selection = type.getSelectionIndex();
240 if (selection >= 0) {
241 initialData.setType(drivers[selection].getDriverType());
243 BookmarkCollection.getInstance().addBookmark(initialData);