X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/ViewHelper.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/ViewHelper.java new file mode 100644 index 0000000..e460e44 --- /dev/null +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/view/ViewHelper.java @@ -0,0 +1,101 @@ +/* + * Created on 22-jul-2003 + * + */ +package com.quantum.view; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.sql.Connection; +import java.sql.SQLException; + +import com.quantum.Messages; +import com.quantum.QuantumPlugin; +import com.quantum.sql.MultiSQLServer; +import com.quantum.sql.SQLResults; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IViewPart; + +/** + * @author panic + * + */ +public class ViewHelper { + + public static SQLResults tryGetResults(IViewPart view, Connection con, String query) { + return tryGetResults(view.getSite().getShell(), con, query); + } + + public static SQLResults tryGetResults(Shell shell, Connection con, String query) { + SQLResults results = null; + MultiSQLServer server = MultiSQLServer.getInstance(); + try { + results = server.execute(con, query); + } catch (SQLException e) { + LogProxy log = LogProxy.getInstance(); + log.addText(LogProxy.ERROR, e.getLocalizedMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ + results = new SQLResults(); + results.setIsError(true); + MessageDialog.openConfirm(shell, "Database returned error", e.getLocalizedMessage()); //$NON-NLS-1$ + } + return results; + } + + public static FileOutputStream askSaveFile(String key, Shell shell) { + return askSaveFile(key, shell, null, null); + } + /** + * Asks the user for a file to be saved. Uses a key to get the preferences and save the path. + * The preferences should be defined in the Messages file. + * @param key + * @param shell + * @param filterExt + * @param filterNames + * @return - An already opened FileOutputStream, or NULL if nothing selected, dialog canceled or some error. + */ + public static FileOutputStream askSaveFile(String key, Shell shell, String[] filterExt, String[] filterNames) { + + FileDialog dialog = new FileDialog(shell, SWT.SAVE); + + if (filterExt == null) { + dialog.setFilterExtensions(new String[]{Messages.getString("filedialog."+key+".filter"), + Messages.getString("filedialog.allfiles.filter")}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + dialog.setFilterNames(new String[]{ Messages.getString("filedialog."+key+".name"), + Messages.getString("filedialog.allfiles.name")}); //$NON-NLS-1$ //$NON-NLS-2$ + } else { + dialog.setFilterExtensions(filterExt); + dialog.setFilterNames(filterNames); + } + + dialog.setFilterPath(QuantumPlugin.getDefault().getPreferenceStore().getString("quantum.dialogs."+ key + ".path")); + String filename = dialog.open(); + if (filename == null) return null; + // We save the used path + QuantumPlugin.getDefault().getPreferenceStore().setValue("quantum.dialogs."+ key + ".path", filename); + + FileOutputStream out = null; + File target = new File(filename); + if (target.exists() && Messages.getString("filedialog.options.ConfirmOverwrite").equals("y")) { + boolean confirmOverwrite = + MessageDialog.openConfirm(shell, Messages.getString("filedialog.message.ConfirmOverwriteTitle"), //$NON-NLS-1$ + Messages.getString("filedialog.message.ConfirmOverwriteMessage") + target.getName() + //$NON-NLS-1$ + Messages.getString("filedialog.message.ConfirmOverwriteQuestion")); //$NON-NLS-1$ + if (!confirmOverwrite) return null; + } + + try { + out = new FileOutputStream(target); + } catch (FileNotFoundException e) { + MessageDialog.openConfirm(shell, Messages.getString("filedialog.message.CannotOpenFileTitle"), //$NON-NLS-1$ + Messages.getString("filedialog.message.CannotOpenFileMessage") + filename+ //$NON-NLS-1$ + Messages.getString("filedialog.message.CannotOpenFileExplain")); //$NON-NLS-1$ + + } + return out; + } +}