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;
18 import com.quantum.ui.dialog.SQLExceptionDialog;
20 import org.eclipse.jface.dialogs.MessageDialog;
21 import org.eclipse.swt.SWT;
22 import org.eclipse.swt.widgets.FileDialog;
23 import org.eclipse.swt.widgets.Shell;
24 import org.eclipse.ui.IViewPart;
30 public class ViewHelper {
33 public static SQLResults tryGetResults(IViewPart view, Bookmark bookmark, Connection con, String query) {
34 return tryGetResults(view.getSite().getShell(), bookmark, con, query);
38 public static SQLResults tryGetResults(Shell shell, Bookmark bookmark, Connection con, String query) {
40 MultiSQLServer server = MultiSQLServer.getInstance();
41 return server.execute(bookmark, con, query);
42 } catch (SQLException e) {
43 LogProxy log = LogProxy.getInstance();
44 log.addText(LogProxy.ERROR, e.getLocalizedMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$
45 SQLExceptionDialog.openException(shell, bookmark, e);
50 public static FileOutputStream askSaveFile(String key, Shell shell) {
51 return askSaveFile(key, shell, null, null);
54 * Asks the user for a file to be saved. Uses a key to get the preferences and save the path.
55 * The preferences should be defined in the Messages file.
60 * @return - An already opened FileOutputStream, or NULL if nothing selected, dialog canceled or some error.
62 public static FileOutputStream askSaveFile(String key, Shell shell, String[] filterExt, String[] filterNames) {
64 FileDialog dialog = new FileDialog(shell, SWT.SAVE);
66 if (filterExt == null) {
67 dialog.setFilterExtensions(new String[]{Messages.getString("filedialog."+key+".filter"),
68 Messages.getString("filedialog.allfiles.filter")}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
69 dialog.setFilterNames(new String[]{ Messages.getString("filedialog."+key+".name"),
70 Messages.getString("filedialog.allfiles.name")}); //$NON-NLS-1$ //$NON-NLS-2$
72 dialog.setFilterExtensions(filterExt);
73 dialog.setFilterNames(filterNames);
76 dialog.setFilterPath(QuantumPlugin.getDefault().getPreferenceStore().getString("quantum.dialogs."+ key + ".path"));
77 String filename = dialog.open();
78 if (filename == null) return null;
79 // We save the used path
80 QuantumPlugin.getDefault().getPreferenceStore().setValue("quantum.dialogs."+ key + ".path", filename);
82 FileOutputStream out = null;
83 File target = new File(filename);
84 if (target.exists() && Messages.getString("filedialog.options.ConfirmOverwrite").equals("y")) {
85 boolean confirmOverwrite =
86 MessageDialog.openConfirm(shell, Messages.getString("filedialog.message.ConfirmOverwriteTitle"), //$NON-NLS-1$
87 Messages.getString("filedialog.message.ConfirmOverwriteMessage") + target.getName() + //$NON-NLS-1$
88 Messages.getString("filedialog.message.ConfirmOverwriteQuestion")); //$NON-NLS-1$
89 if (!confirmOverwrite) return null;
93 out = new FileOutputStream(target);
94 } catch (FileNotFoundException e) {
95 MessageDialog.openConfirm(shell, Messages.getString("filedialog.message.CannotOpenFileTitle"), //$NON-NLS-1$
96 Messages.getString("filedialog.message.CannotOpenFileMessage") + filename+ //$NON-NLS-1$
97 Messages.getString("filedialog.message.CannotOpenFileExplain")); //$NON-NLS-1$