OSDN Git Service

FIX: GPXフォルダを選択できない
[importpicture/importpicture.git] / importPicture / src / osm / jp / gpx / AppParameters.java
index 64b2e49..a58a49a 100644 (file)
@@ -11,11 +11,28 @@ import java.util.Properties;
 public class AppParameters extends Properties {
        static final String FILE_PATH = "AdjustTime.ini";
        
-       // GPX出力: 時間的に間隔が開いたGPXログを別の<>セグメントに分割する。 {ON | OFF}
+       // GPX: 時間的に間隔が開いたGPXログを別の<trkseg>セグメントに分割する。 {ON | OFF}
        public static String GPX_GPXSPLIT = "GPX.gpxSplit";
        
-       // EXIF出力: 画像ファイルのEXIF情報を変更する {ON | OFF}
-       public static String EXIF_GPXSPLIT = "EXIF.noEXIF";
+       // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
+       public static String GPX_NO_FIRST_NODE = "GPX.noFirstNode";
+       
+       // GPX: 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
+       public static String GPX_REUSE = "GPX.REUSE";
+       
+       // GPX: 基準時刻 {FILE_UPDATE | EXIF}
+       public static String GPX_BASETIME = "GPX.BASETIME";
+       
+       // 対象フォルダ:(位置情報を付加したい画像ファイルが格納されているフォルダ)
+       public static String IMG_SOURCE_FOLDER = "IMG.SOURCE_FOLDER";
+       
+       // 基準時刻画像(正確な撮影時刻が判明できる画像)
+       public static String IMG_BASE_FILE = "IMG.BASE_FILE";
+       
+       // 出力フォルダ:(変換した画像ファイルとGPXファイルを出力するフォルダ)
+       public static String IMG_OUTPUT_FOLDER = "IMG.OUTPUT_FOLDER";
+       
+       File file;
        
        public AppParameters() throws FileNotFoundException, IOException {
                super();
@@ -30,35 +47,79 @@ public class AppParameters extends Properties {
        void syncFile() throws FileNotFoundException, IOException {
                boolean update = false;
                
-               File file = new File(FILE_PATH);
+               this.file = new File(FILE_PATH);
                if (file.exists()) {
-                       update = true;
+                       // ファイルが存在すれば、その内容をロードする。
+                       this.load(new FileInputStream(file));
                }
                else {
-                       // ファイルがあれば、その内容をロードする。
-                       this.load(new FileInputStream(file));
+                       update = true;
                }
                
                //------------------------------------------------
-               // GPX出力: 時間的に間隔が開いたGPXログを別の<>セグメントに分割する。 {ON | OFF}
-               String valueStr = this.getProperty(GPX_GPXSPLIT);
+               // 対象フォルダ:(位置情報を付加したい画像ファイルが格納されているフォルダ)
+               String valueStr = this.getProperty(IMG_SOURCE_FOLDER);
+               if (valueStr == null) {
+                       update = true;
+                       this.setProperty(IMG_SOURCE_FOLDER, (new File(".")).getAbsolutePath());
+               }
+
+               //------------------------------------------------
+               // 基準時刻画像(正確な撮影時刻が判明できる画像)
+               valueStr = this.getProperty(IMG_BASE_FILE);
+               if (valueStr == null) {
+                       update = true;
+                       this.setProperty(IMG_BASE_FILE, "");
+               }
+
+               //------------------------------------------------
+               // 出力フォルダ:(変換した画像ファイルとGPXファイルを出力するフォルダ)
+               valueStr = this.getProperty(IMG_OUTPUT_FOLDER);
+               if (valueStr == null) {
+                       update = true;
+                       this.setProperty(IMG_OUTPUT_FOLDER, (new File(".")).getAbsolutePath());
+               }
+
+               //------------------------------------------------
+               // GPX出力: 時間的に間隔が開いたGPXログを別の<trkseg>セグメントに分割する。 {ON | OFF}
+               valueStr = this.getProperty(GPX_GPXSPLIT);
                if (valueStr == null) {
                        update = true;
                        this.setProperty(GPX_GPXSPLIT, "ON");           
                }
 
                //------------------------------------------------
-               //  EXIF出力: 画像ファイルのEXIF情報を変更する {ON | OFF}
-               valueStr = this.getProperty(EXIF_GPXSPLIT);
+               // GPX出力: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
+               valueStr = this.getProperty(GPX_NO_FIRST_NODE);
+               if (valueStr == null) {
+                       update = true;
+                       this.setProperty(GPX_NO_FIRST_NODE, "ON");              
+               }
+
+               //------------------------------------------------
+               // GPX出力: 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
+               valueStr = this.getProperty(GPX_REUSE);
                if (valueStr == null) {
                        update = true;
-                       this.setProperty(EXIF_GPXSPLIT, "ON");
+                       this.setProperty(GPX_REUSE, "OFF");
+               }
+
+               //------------------------------------------------
+               //  GPX: 基準時刻 {FILE_UPDATE | EXIF}
+               valueStr = this.getProperty(GPX_BASETIME);
+               if (valueStr == null) {
+                       update = true;
+                       this.setProperty(GPX_BASETIME, "FILE_UPDATE");
                }
 
                if (update) {
                        // ・ファイルがなければ新たに作る
                        // ・項目が足りない時は書き足す。
-                       this.store(new FileOutputStream(file), "defuilt settings");     
+                       this.store(new FileOutputStream(this.file), "defuilt settings");        
                }
        }
+       
+       public void store() throws FileNotFoundException, IOException {
+               this.store(new FileOutputStream(this.file), "by AdjustTime");
+       }
 }