/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- FileFilterNime
- accept
- getDescription
- getExtension
- getExtension
package jp.ac.nime.computer.grpsimulator;
import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.*;
/** filechooserの為のファイル拡張子設定クラス
*/
public class FileFilterNime extends FileFilter {
private String[] ext_;
private String msg_;
private int numExt_;
/** コンストラクタ
* @param ext 拡張子 ex '.png'
* @param msg ファイルの説明 ex 'PNGファイル'
*/
public FileFilterNime(String ext , String msg) {
ext_ = new String[1];
ext_[0] = ext;
numExt_ = 1;
msg_ = msg;
}
/** コンストラクタ
* @param ext 拡張子 ex {".png", ".jpg"}
* @param msg ファイルの説明 ex 'PNGファイル'
*/
public FileFilterNime(String[] ext , String msg) {
ext_ = new String[ext.length];
for (int i = 0; i < ext.length; i ++)
ext_[i] = ext[i];
numExt_ = ext.length;
msg_ = msg;
}
/** Dialogのファイル一覧に表示すべきかどうかチェック
* @param f ファイルクラス
* @return 表示していいものなら true
*/
public boolean accept(File f) {
if(f != null) {
if(f.isDirectory()) {
return true;
}
boolean ret;
for (int i = 0; i < numExt_; i ++) {
ret = f.getName().endsWith(ext_[i]);
if (ret) return ret;
}
}
return false;
}
/** 説明文取得
* @return 説明文
*/
public String getDescription() {
String des = new String(msg_);
des += " (";
for (int i = 0; i < numExt_; i ++) {
des += ext_[i];
if (i < (numExt_ - 1))
des += ", ";
}
des += ")";
return des;
}
/** 拡張子取得(最初のみ)
* @return 拡張子
*/
public String getExtension() { return ext_[0]; }
/** 拡張子取得 登録した順番を指定して拡張子を取得する
* @return 拡張子(番号が範囲を超えたときnull)
*/
public String getExtension(int num) {
if (num >= numExt_) return null;
return ext_[num];
}
}