/**
- *
+ *
*/
package saccubus;
/**
* @author Account01
- *
+ *
*/
-public class OptionComboBoxModel extends DefaultComboBoxModel {
+public final class OptionComboBoxModel extends DefaultComboBoxModel<FFmpegSelectedItem> {
/**
- *
+ *
*/
private static final long serialVersionUID = -8948187216195366156L;
- private final ArrayList<FFmpegSelectedItem> List = new ArrayList<FFmpegSelectedItem>(
+ private final ArrayList<FFmpegSelectedItem> List = new ArrayList<>(
20);
private int Size = 0;
private int Index = 0;
public OptionComboBoxModel() {
- reload();
+ File original_file = getSelectedItem().getFile();
+ reload(original_file);
}
/**
- * \83t\83@\83C\83\8b\93Ç\82Ý\8d\9e\82Ý\82»\82Ì\91¼\82ð\8ds\82¤
+ * ファイル読み込みその他を行う
*/
private static final File OPTION_FOLDER = new File("option");
private static final FFmpegSelectedItem DEFAULT_ITEM = new FFmpegSelectedItem(
- 0, null, "\8aO\95\94\83t\83@\83C\83\8b\82ð\97p\82¢\82¸\81A\89º\82É\92¼\90Ú\93ü\97Í\82·\82é\81B");
+ 0, null, "外部ファイルを用いず、下に直接入力する。");
- protected void reload() {
- File original_file = ((FFmpegSelectedItem) getSelectedItem()).getFile();
+ public void reload() {
+ final File original_file = getSelectedItem().getFile();
reload(original_file);
}
- protected void reload(File original_file) {
+ public void reload(File original_file) {
int original_index = -1;
int index = 1;
- // \83\8a\83X\83g\83N\83\8a\83A
+ // リストクリア
List.clear();
- // \83t\83@\83C\83\8b\83\8a\83X\83g\8dX\90V
+ // ファイルリスト更新
File[] file_array = OPTION_FOLDER.listFiles();
if(file_array != null){
for (int i = 0; i < file_array.length; i++) {
File file = file_array[i];
if (file.getName().endsWith(".xml")) {
List.add(new FFmpegSelectedItem(index, file, null));
- // \91O\89ñ\8e¦\82µ\82Ä\82¢\82½\82Ì\82Æ\93¯\82¶\83t\83@\83C\83\8b\82ð\94\8c©\81B
+ // 前回示していたのと同じファイルを発見。
if (original_index < 0 && file.equals(original_file)) {
original_index = index;
}
}
}
}
- // \8f\89\8aú\89»
+ // 初期化
if (original_index < 0) {
Index = 0;
} else {
}
/**
- * \91I\82Î\82ê\82Ä\82¢\82é\83I\83u\83W\83F\83N\83g\82ð\95Ô\82·
+ * 選ばれているオブジェクトを返す
*/
- public Object getSelectedItem() {
+ @Override
+ public FFmpegSelectedItem getSelectedItem() {
return getElementAt(Index);
}
}
/**
- * \83I\83u\83W\83F\83N\83g\82©\82ç\81A\83C\83\93\83f\83b\83N\83X\82ð\92T\82·\81B
+ * オブジェクトから、インデックスを探す。
*/
+ @Override
public void setSelectedItem(Object anItem) {
if (anItem == null) {
Index = 0;
}
/**
- * \83C\83\93\83f\83b\83N\83X\82©\82ç\83I\83u\83W\83F\83N\83g\82ð\95Ô\82·\81B
+ * インデックスからオブジェクトを返す。
*/
- public Object getElementAt(int index) {
+ @Override
+ public FFmpegSelectedItem getElementAt(int index) {
if (index == 0) {
return DEFAULT_ITEM;
} else if (index < Size) {
}
/**
- * \83T\83C\83Y\82ð\95Ô\82·\81B
+ * サイズを返す。
*/
+ @Override
public int getSize() {
return Size;
}
}
}
-class FFmpegSelectedItem {
- private final int Index;
-
- private final File File;
-
- private final String Name;
-
- protected FFmpegSelectedItem(int index, File file, String name) {
- Index = index;
- File = file;
- if (name == null) {
- String tmp = file.getName();
- Name = tmp.substring(0, tmp.lastIndexOf("."));
- } else {
- Name = name;
- }
- }
-
- public String toString() {
- return Name;
- }
-
- protected File getFile() {
- return File;
- }
-
- /**
- * \8e¯\95Ê\82É\8eg\82¤
- *
- * @return
- */
- protected int getIndex() {
- return Index;
- }
-}