7 import java.util.ArrayList;
9 import javax.swing.DefaultComboBoxModel;
16 public final class OptionComboBoxModel extends DefaultComboBoxModel<FFmpegSelectedItem> {
20 private static final long serialVersionUID = -8948187216195366156L;
22 private final ArrayList<FFmpegSelectedItem> List = new ArrayList<>(
27 private int Index = 0;
29 public OptionComboBoxModel() {
30 File original_file = getSelectedItem().getFile();
31 reload(original_file);
37 private static final File OPTION_FOLDER = new File("option");
39 private static final FFmpegSelectedItem DEFAULT_ITEM = new FFmpegSelectedItem(
40 0, null, "外部ファイルを用いず、下に直接入力する。");
42 public void reload() {
43 final File original_file = getSelectedItem().getFile();
44 reload(original_file);
47 public void reload(File original_file) {
48 int original_index = -1;
53 File[] file_array = OPTION_FOLDER.listFiles();
54 if(file_array != null){
55 for (int i = 0; i < file_array.length; i++) {
56 File file = file_array[i];
57 if (file.getName().endsWith(".xml")) {
58 List.add(new FFmpegSelectedItem(index, file, null));
59 // 前回示していたのと同じファイルを発見。
60 if (original_index < 0 && file.equals(original_file)) {
61 original_index = index;
68 if (original_index < 0) {
71 Index = original_index;
74 this.fireContentsChanged(this, 0, Size);
81 public FFmpegSelectedItem getSelectedItem() {
82 return getElementAt(Index);
85 public File getSelectedFile() {
89 return List.get(Index - 1).getFile();
97 public void setSelectedItem(Object anItem) {
102 FFmpegSelectedItem item = (FFmpegSelectedItem) anItem;
103 Index = item.getIndex();
110 public FFmpegSelectedItem getElementAt(int index) {
113 } else if (index < Size) {
114 return List.get(index - 1);
125 public int getSize() {
129 public boolean isFile() {