2 * Created on 22-jul-2003
5 package com.quantum.view;
8 import java.io.FileNotFoundException;
9 import java.io.FileOutputStream;
10 import java.sql.Connection;
11 import java.sql.SQLException;
13 import com.quantum.Messages;
14 import com.quantum.QuantumPlugin;
15 import com.quantum.model.Bookmark;
16 import com.quantum.sql.MultiSQLServer;
17 import com.quantum.sql.SQLResults;
19 import org.eclipse.jface.dialogs.MessageDialog;
20 import org.eclipse.swt.SWT;
21 import org.eclipse.swt.widgets.FileDialog;
22 import org.eclipse.swt.widgets.Shell;
23 import org.eclipse.ui.IViewPart;
29 public class ViewHelper {
32 public static SQLResults tryGetResults(IViewPart view, Bookmark bookmark, Connection con, String query) {
33 return tryGetResults(view.getSite().getShell(), bookmark, con, query);
37 public static SQLResults tryGetResults(Shell shell, Bookmark bookmark, Connection con, String query) {
39 MultiSQLServer server = MultiSQLServer.getInstance();
40 return server.execute(bookmark, con, query);
41 } catch (SQLException e) {
42 LogProxy log = LogProxy.getInstance();
43 log.addText(LogProxy.ERROR, e.getLocalizedMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$
44 MessageDialog.openConfirm(shell, "Database returned error", e.getLocalizedMessage()); //$NON-NLS-1$
49 public static FileOutputStream askSaveFile(String key, Shell shell) {
50 return askSaveFile(key, shell, null, null);
53 * Asks the user for a file to be saved. Uses a key to get the preferences and save the path.
54 * The preferences should be defined in the Messages file.
59 * @return - An already opened FileOutputStream, or NULL if nothing selected, dialog canceled or some error.
61 public static FileOutputStream askSaveFile(String key, Shell shell, String[] filterExt, String[] filterNames) {
63 FileDialog dialog = new FileDialog(shell, SWT.SAVE);
65 if (filterExt == null) {
66 dialog.setFilterExtensions(new String[]{Messages.getString("filedialog."+key+".filter"),
67 Messages.getString("filedialog.allfiles.filter")}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
68 dialog.setFilterNames(new String[]{ Messages.getString("filedialog."+key+".name"),
69 Messages.getString("filedialog.allfiles.name")}); //$NON-NLS-1$ //$NON-NLS-2$
71 dialog.setFilterExtensions(filterExt);
72 dialog.setFilterNames(filterNames);
75 dialog.setFilterPath(QuantumPlugin.getDefault().getPreferenceStore().getString("quantum.dialogs."+ key + ".path"));
76 String filename = dialog.open();
77 if (filename == null) return null;
78 // We save the used path
79 QuantumPlugin.getDefault().getPreferenceStore().setValue("quantum.dialogs."+ key + ".path", filename);
81 FileOutputStream out = null;
82 File target = new File(filename);
83 if (target.exists() && Messages.getString("filedialog.options.ConfirmOverwrite").equals("y")) {
84 boolean confirmOverwrite =
85 MessageDialog.openConfirm(shell, Messages.getString("filedialog.message.ConfirmOverwriteTitle"), //$NON-NLS-1$
86 Messages.getString("filedialog.message.ConfirmOverwriteMessage") + target.getName() + //$NON-NLS-1$
87 Messages.getString("filedialog.message.ConfirmOverwriteQuestion")); //$NON-NLS-1$
88 if (!confirmOverwrite) return null;
92 out = new FileOutputStream(target);
93 } catch (FileNotFoundException e) {
94 MessageDialog.openConfirm(shell, Messages.getString("filedialog.message.CannotOpenFileTitle"), //$NON-NLS-1$
95 Messages.getString("filedialog.message.CannotOpenFileMessage") + filename+ //$NON-NLS-1$
96 Messages.getString("filedialog.message.CannotOpenFileExplain")); //$NON-NLS-1$