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$