OSDN Git Service

GUIからavfilterオプションを設定できるようにする
[coroid/inqubus.git] / frontend / src / saccubus / properties / InputCommentSetting.java
1 /* $Id$ */
2 package saccubus.properties;
3
4 import java.io.File;
5 import java.util.Properties;
6
7 /**
8  * 入力コメント設定.
9  * @author yuki
10  */
11 public class InputCommentSetting extends InputFileSetting<Boolean> {
12
13     /** コメントをダウンロードする. */
14     private static final String PROP_SAVE_COMMENT = "SaveCommentFile";
15     /** 変換後にコメントファイルを削除する. */
16     private static final String PROP_DEL_COMMENT_AFTER_CONV = "DeleteCommentAfterConv";
17     /** コメント取得数は自動で調整する. */
18     private static final String PROP_FIX_COMMENT_NUM = "FixCommentSize";
19     /** 取得コメント数. */
20     private static final String PROP_BACK_COMMENT = "BackComment";
21     /** フォルダ/ファイル保存選択ラジオボタン. */
22     private static final String PROP_COMMENT_FIX_FILE_NAME = "CommentFixFileName";
23     /** フォルダ名. */
24     private static final String PROP_COMMENT_FOLDER = "CommentFixFileNameFolder";
25     /** ファイル名. */
26     private static final String PROP_COMMENT_FILE = "CommentFile";
27     private final boolean selfAdjustNumOfComment;
28     private final int numOfComment;
29
30     public InputCommentSetting(boolean download, boolean autoNaming, File folder, File file, boolean deleteAfterConvert,
31             boolean adjust, int numOfCom) {
32         super(Boolean.valueOf(download), autoNaming, folder, file, deleteAfterConvert);
33         this.selfAdjustNumOfComment = adjust;
34         this.numOfComment = numOfCom;
35     }
36
37     public void save(Properties prop) {
38         prop.setProperty(PROP_SAVE_COMMENT, getProcessKind().toString());
39         prop.setProperty(PROP_DEL_COMMENT_AFTER_CONV, Boolean.toString(isDeleteAfterConvert()));
40         prop.setProperty(PROP_FIX_COMMENT_NUM, Boolean.toString(isSelfAdjustNumOfComment()));
41         prop.setProperty(PROP_BACK_COMMENT, Integer.toString(getNumOfComment()));
42         prop.setProperty(PROP_COMMENT_FIX_FILE_NAME, Boolean.toString(isAutoNaming()));
43         prop.setProperty(PROP_COMMENT_FOLDER, getFolder().getPath());
44         prop.setProperty(PROP_COMMENT_FILE, getFile().getPath());
45
46     }
47
48     public static InputCommentSetting load(Properties prop) {
49         boolean download = Boolean.parseBoolean(prop.getProperty(PROP_SAVE_COMMENT, "true"));
50         boolean delete = Boolean.parseBoolean(prop.getProperty(PROP_DEL_COMMENT_AFTER_CONV, "false"));
51         boolean adjustNumOfComment = Boolean.parseBoolean(prop.getProperty(PROP_FIX_COMMENT_NUM, "true"));
52         String numOfComment = prop.getProperty(PROP_BACK_COMMENT, "500");
53         boolean autoNaming = Boolean.parseBoolean(prop.getProperty(PROP_COMMENT_FIX_FILE_NAME, "true"));
54         String folder = prop.getProperty(PROP_COMMENT_FOLDER, "out/comment");
55         String file = prop.getProperty(PROP_COMMENT_FILE, "comment.xml");
56
57         return new InputCommentSetting(download, autoNaming, new File(folder), new File(file), delete,
58                 adjustNumOfComment,
59                 Integer.parseInt(numOfComment));
60     }
61
62     public final boolean isSelfAdjustNumOfComment() {
63         return selfAdjustNumOfComment;
64     }
65
66     public final int getNumOfComment() {
67         return numOfComment;
68     }
69 }