OSDN Git Service

更新履歴
[coroid/inqubus.git] / frontend / src / saccubus / OptionComboBoxModel.java
index 739a13d..b7d1aa5 100644 (file)
@@ -13,13 +13,13 @@ import javax.swing.DefaultComboBoxModel;
  * @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;
@@ -27,7 +27,8 @@ public class OptionComboBoxModel extends DefaultComboBoxModel {
        private int Index = 0;
 
        public OptionComboBoxModel() {
-               reload();
+               File original_file = getSelectedItem().getFile();
+               reload(original_file);
        }
 
        /**
@@ -38,12 +39,12 @@ public class OptionComboBoxModel extends DefaultComboBoxModel {
        private static final FFmpegSelectedItem DEFAULT_ITEM = new FFmpegSelectedItem(
                        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;
                // リストクリア
@@ -76,7 +77,8 @@ public class OptionComboBoxModel extends DefaultComboBoxModel {
        /**
         * 選ばれているオブジェクトを返す
         */
-       public Object getSelectedItem() {
+    @Override
+       public FFmpegSelectedItem getSelectedItem() {
                return getElementAt(Index);
        }
 
@@ -91,6 +93,7 @@ public class OptionComboBoxModel extends DefaultComboBoxModel {
        /**
         * オブジェクトから、インデックスを探す。
         */
+    @Override
        public void setSelectedItem(Object anItem) {
                if (anItem == null) {
                        Index = 0;
@@ -103,7 +106,8 @@ public class OptionComboBoxModel extends DefaultComboBoxModel {
        /**
         * インデックスからオブジェクトを返す。
         */
-       public Object getElementAt(int index) {
+    @Override
+       public FFmpegSelectedItem getElementAt(int index) {
                if (index == 0) {
                        return DEFAULT_ITEM;
                } else if (index < Size) {
@@ -117,6 +121,7 @@ public class OptionComboBoxModel extends DefaultComboBoxModel {
         * サイズを返す。
         */
 
+    @Override
        public int getSize() {
                return Size;
        }
@@ -130,38 +135,3 @@ public class OptionComboBoxModel extends DefaultComboBoxModel {
        }
 
 }
-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;
-       }
-
-       /**
-        * 識別に使う
-        *
-        * @return
-        */
-       protected int getIndex() {
-               return Index;
-       }
-}