/**
* @version $Id: FileChooser.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $
*
* 2013/02/22 17:56:32
* @author kousuke-morishima
*
* Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved.
*/
package com.tida_okinawa.corona.dashboard.export;
import java.io.File;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
/**
* ファイルダイアログで、出力ファイルを取得
*
* @author kousuke-morishima
*/
class FileChooser {
/**
* 保存するファイルをダイアログで選択する
*
* @param shell
* parent shell
* @param title
* file select dialog title
* @param defaultFileName
* default save file name
* @param extensions
* 選択できる拡張子の一覧
* @return 選択をキャンセルしたらnull
*/
public static File getSaveFile(Shell shell, String title, final String defaultFileName, String... extensions) {
FileDialog dialog = new FileDialog(shell, SWT.SAVE);
if (extensions.length > 0) {
dialog.setFilterExtensions(extensions);
}
dialog.setOverwrite(true);
dialog.setFileName(defaultFileName);
dialog.setText(title);
String filePath = dialog.open();
if (filePath == null) {
return null;
}
return new File(filePath);
}
/**
* 保存するファイルをダイアログで選択する
*
* @param shell
* parent shell
* @param title
* file select dialog title
* @param defaultFileName
* default save file name
* @return 選択をキャンセルしたらnull
*/
public static File getSaveFile(Shell shell, String title, final String defaultFileName) {
return getSaveFile(shell, title, defaultFileName, "*.*"); //$NON-NLS-1$
}
/**
* 開くファイルをダイアログで選択する
*
* @param shell
* parent shell
* @param title
* file select dialog title
* @param defaultFileName
* default save file name
* @param extensions
* 選択できる拡張子の一覧
* @return キャンセルしたり、存在しないファイルを選んだりしたらnull
*/
public static File getOpenFile(Shell shell, String title, final String defaultFileName, String... extensions) {
FileDialog dialog = new FileDialog(shell, SWT.OPEN);
dialog.setFileName(defaultFileName);
if (extensions.length > 0) {
dialog.setFilterExtensions(extensions);
}
dialog.setText(title);
String fileName = dialog.open();
if (fileName == null) {
return null;
}
File file = new File(fileName);
if (!file.isFile()) {
return null;
}
return file;
}
/**
* 開くファイルをダイアログで選択する
*
* @param shell
* parent shell
* @param title
* file select dialog title
* @param defaultFileName
* default save file name
* @return キャンセルしたり、存在しないファイルを選んだりしたらnull
*/
public static File getOpenFile(Shell shell, String title, final String defaultFileName) {
return getOpenFile(shell, title, defaultFileName, "*.*"); //$NON-NLS-1$
}
}