7 import java.util.ArrayList;
9 import javax.swing.DefaultComboBoxModel;
16 public class OptionComboBoxModel extends DefaultComboBoxModel {
20 private static final long serialVersionUID = -8948187216195366156L;
22 private final ArrayList<FFmpegSelectedItem> List = new ArrayList<FFmpegSelectedItem>(
27 private int Index = 0;
29 public OptionComboBoxModel() {
36 private static final File OPTION_FOLDER = new File("option");
38 private static final FFmpegSelectedItem DEFAULT_ITEM = new FFmpegSelectedItem(
39 0, null, "外部ファイルを用いず、下に直接入力する。");
41 protected void reload() {
42 File original_file = ((FFmpegSelectedItem) getSelectedItem()).getFile();
43 reload(original_file);
46 protected void reload(File original_file) {
47 int original_index = -1;
52 File[] file_array = OPTION_FOLDER.listFiles();
53 if(file_array != null){
54 for (int i = 0; i < file_array.length; i++) {
55 File file = file_array[i];
56 if (file.getName().endsWith(".xml")) {
57 List.add(new FFmpegSelectedItem(index, file, null));
58 // 前回示していたのと同じファイルを発見。
59 if (original_index < 0 && file.equals(original_file)) {
60 original_index = index;
67 if (original_index < 0) {
70 Index = original_index;
73 this.fireContentsChanged(this, 0, Size);
79 public Object getSelectedItem() {
80 return getElementAt(Index);
83 public File getSelectedFile() {
87 return List.get(Index - 1).getFile();
94 public void setSelectedItem(Object anItem) {
99 FFmpegSelectedItem item = (FFmpegSelectedItem) anItem;
100 Index = item.getIndex();
106 public Object getElementAt(int index) {
109 } else if (index < Size) {
110 return List.get(index - 1);
120 public int getSize() {
124 public boolean isFile() {
133 class FFmpegSelectedItem {
134 private final int Index;
136 private final File File;
138 private final String Name;
140 protected FFmpegSelectedItem(int index, File file, String name) {
144 String tmp = file.getName();
145 Name = tmp.substring(0, tmp.lastIndexOf("."));
151 public String toString() {
155 protected File getFile() {
164 protected int getIndex() {