OSDN Git Service

put avatarCache.json in config directory.
authorOlyutorskii <olyutorskii@users.osdn.me>
Sat, 28 Mar 2020 16:20:54 +0000 (01:20 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Sat, 28 Mar 2020 16:20:54 +0000 (01:20 +0900)
pom.xml
src/main/java/jp/sfjp/jindolf/config/ConfigFile.java
src/main/java/jp/sfjp/jindolf/config/ConfigStore.java
src/main/resources/jp/sfjp/jindolf/resources/image/avatarCache.json [new file with mode: 0644]

diff --git a/pom.xml b/pom.xml
index 6d2b063..0c3d40f 100644 (file)
--- a/pom.xml
+++ b/pom.xml
                     <include>**/*.gif</include>
                     <include>**/*.jpeg</include>
                     <include>**/*.jpg</include>
+
+                    <include>**/*.json</include>
                 </includes>
                 <excludes>
                     <exclude>**/version.properties</exclude>
index 6679934..cf45dcf 100644 (file)
@@ -10,13 +10,18 @@ package jp.sfjp.jindolf.config;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.io.Writer;
 import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import javax.swing.JDialog;
 import javax.swing.JOptionPane;
+import jp.sfjp.jindolf.ResourceManager;
 import jp.sfjp.jindolf.VerInfo;
 import jp.sfjp.jindolf.view.LockErrorPane;
 
@@ -165,6 +170,36 @@ public final class ConfigFile{
     }
 
     /**
+     * ローカル画像キャッシュディレクトリを作る。
+     *
+     * <p>作られたディレクトリ内に
+     * ファイルavatarCache.jsonが作られる。
+     *
+     * @param imgCacheDir ローカル画像キャッシュディレクトリ
+     */
+    public static void buildImageCacheDir(File imgCacheDir){
+        if(imgCacheDir.exists()) return;
+
+        String jsonRes = "resources/image/avatarCache.json";
+        InputStream is = ResourceManager.getResourceAsStream(jsonRes);
+        if(is == null) return;
+
+        imgCacheDir.mkdirs();
+        ConfigFile.checkAccessibility(imgCacheDir);
+
+        Path cachePath = imgCacheDir.toPath();
+        Path jsonLeaf = Paths.get("avatarCache.json");
+        Path path = cachePath.resolve(jsonLeaf);
+        try{
+            Files.copy(is, path);
+        }catch(IOException e){
+            abortCantAccessConfigDir(path.toFile());
+        }
+
+        return;
+    }
+
+    /**
      * 設定ディレクトリ操作の
      * 共通エラーメッセージ確認ダイアログを表示する。
      *
index d1fe372..f816641 100644 (file)
@@ -122,6 +122,11 @@ public class ConfigStore {
             ConfigFile.checkAccessibility(this.configDir);
         }
 
+        File imgDir = new File(this.configDir, "img");
+        if( ! imgDir.exists()){
+            ConfigFile.buildImageCacheDir(imgDir);
+        }
+
         return;
     }
 
diff --git a/src/main/resources/jp/sfjp/jindolf/resources/image/avatarCache.json b/src/main/resources/jp/sfjp/jindolf/resources/image/avatarCache.json
new file mode 100644 (file)
index 0000000..e1a13ab
--- /dev/null
@@ -0,0 +1,51 @@
+{
+
+  "avatarFace" : {
+    "gerd"      : "face01.jpg" ,
+    "walter"    : "face02.jpg" ,
+    "moritz"    : "face03.jpg" ,
+    "simson"    : "face04.jpg" ,
+    "thomas"    : "face05.jpg" ,
+    "nicolas"   : "face06.jpg" ,
+    "dieter"    : "face07.jpg" ,
+    "peter"     : "face08.jpg" ,
+    "liesa"     : "face09.jpg" ,
+    "albin"     : "face10.jpg" ,
+    "katharina" : "face11.jpg" ,
+    "otto"      : "face12.jpg" ,
+    "joachim"   : "face13.jpg" ,
+    "pamela"    : "face14.jpg" ,
+    "jacob"     : "face15.jpg" ,
+    "regina"    : "face16.jpg" ,
+    "fridel"    : "face17.jpg" ,
+    "erna"      : "face18.jpg" ,
+    "clara"     : "face19.jpg" ,
+    "simon"     : "face20.jpg" ,
+    "tomb"      : "face99.jpg"
+  } ,
+
+  "avatarBody" : {
+    "gerd"      : "body01.jpg" ,
+    "walter"    : "body02.jpg" ,
+    "moritz"    : "body03.jpg" ,
+    "simson"    : "body04.jpg" ,
+    "thomas"    : "body05.jpg" ,
+    "nicolas"   : "body06.jpg" ,
+    "dieter"    : "body07.jpg" ,
+    "peter"     : "body08.jpg" ,
+    "liesa"     : "body09.jpg" ,
+    "albin"     : "body10.jpg" ,
+    "katharina" : "body11.jpg" ,
+    "otto"      : "body12.jpg" ,
+    "joachim"   : "body13.jpg" ,
+    "pamela"    : "body14.jpg" ,
+    "jacob"     : "body15.jpg" ,
+    "regina"    : "body16.jpg" ,
+    "fridel"    : "body17.jpg" ,
+    "erna"      : "body18.jpg" ,
+    "clara"     : "body19.jpg" ,
+    "simon"     : "body20.jpg" ,
+    "tomb"      : "body99.jpg"
+  }
+
+}