OSDN Git Service

FIX: FileChooser TEXTFIELDに直接ファイルパスを入力した後に「選択」ボタンを押しても入力されたフォルダをcurrent directoryとして開...
authoryuuhayashi <hayashi.yuu@gmail.com>
Mon, 27 Jun 2016 14:51:53 +0000 (23:51 +0900)
committeryuuhayashi <hayashi.yuu@gmail.com>
Mon, 27 Jun 2016 14:51:53 +0000 (23:51 +0900)
importPicture/src/osm/jp/gpx/AppParameters.java
importPicture/src/osm/jp/gpx/matchtime/gui/AdjustTime.java
importPicture/src/osm/jp/gpx/matchtime/gui/ParameterPanelFolder.java

index a58a49a..e3230f1 100644 (file)
@@ -23,12 +23,15 @@ public class AppParameters extends Properties {
        // GPX: 基準時刻 {FILE_UPDATE | EXIF}
        public static String GPX_BASETIME = "GPX.BASETIME";
        
-       // 対象フォルダ:(位置情報を付加したい画像ファイルが格納されているフォルダ)
+       // 対象IMGフォルダ:(位置情報を付加したい画像ファイルが格納されているフォルダ)
        public static String IMG_SOURCE_FOLDER = "IMG.SOURCE_FOLDER";
        
        // 基準時刻画像(正確な撮影時刻が判明できる画像)
        public static String IMG_BASE_FILE = "IMG.BASE_FILE";
        
+       // 対象GPXフォルダ:(GPXファイルが格納されているフォルダ)
+       public static String GPX_SOURCE_FOLDER = "GPX.SOURCE_FOLDER";
+       
        // 出力フォルダ:(変換した画像ファイルとGPXファイルを出力するフォルダ)
        public static String IMG_OUTPUT_FOLDER = "IMG.OUTPUT_FOLDER";
        
@@ -65,6 +68,14 @@ public class AppParameters extends Properties {
                }
 
                //------------------------------------------------
+               // 対象フォルダ:(GPXファイルが格納されているフォルダ)
+               valueStr = this.getProperty(GPX_SOURCE_FOLDER);
+               if (valueStr == null) {
+                       update = true;
+                       this.setProperty(GPX_SOURCE_FOLDER, (new File(".")).getAbsolutePath());
+               }
+
+               //------------------------------------------------
                // 基準時刻画像(正確な撮影時刻が判明できる画像)
                valueStr = this.getProperty(IMG_BASE_FILE);
                if (valueStr == null) {
index 55b2bf3..dbf4f3c 100644 (file)
@@ -166,7 +166,7 @@ public class AdjustTime extends JFrame
         int cardNo = 0;
         cards[cardNo].setLayout(new BorderLayout());
         JLabel label1 = new JLabel();
-        label1.setText("<html><p>位置情報を付加したい画像ファイルが格納されているフォルダを選択してください。</p><ul><li>コピー動作を行うと、ファイル更新時刻がコピーを実行した時刻に書き換わってしまうことがあります。オリジナルのカメラUSB内のフォルダを直接指定することをおすすめします。</li></ul>");
+        label1.setText("<html><p>1. 位置情報を付加したい画像ファイルが格納されているフォルダを選択してください。</p><ul><li>コピー動作を行うと、ファイル更新時刻がコピーを実行した時刻に書き換わってしまうことがあります。オリジナルのカメラUSB内のフォルダを直接指定することをおすすめします。</li></ul>");
         cards[cardNo].add(label1, BorderLayout.NORTH);
         
         argsPanel = new JPanel();
@@ -180,7 +180,7 @@ public class AdjustTime extends JFrame
         cardNo++;
         cards[cardNo].setLayout(new BorderLayout());
         JLabel label2 = new JLabel();
-        label2.setText("<html><p>正確な撮影時刻が判明できる画像を選んでください。</p><ul><li>スマートフォンの時計画面(秒が判別できること)を撮影した画像</li><li>カメラの時計が正確ならば、どの画像を選んでも構いません。</li></ul>");
+        label2.setText("<html><p>2. 正確な撮影時刻が判明できる画像を選んでください。</p><ul><li>スマートフォンの時計画面(秒が判別できること)を撮影した画像</li><li>カメラの時計が正確ならば、どの画像を選んでも構いません。</li></ul>");
         cards[cardNo].add(label2, BorderLayout.NORTH);
 
         argsPanel = new JPanel();
@@ -213,7 +213,7 @@ public class AdjustTime extends JFrame
         argsPanel.setLayout(new GridLayout(2, 1));
 
         JLabel label3 = new JLabel();
-        label3.setText("<html><p>正確な撮影時刻を入力してください。</p><ul><li>カメラの時計が正確ならば、設定を変更する必要はありません。</li></ul>");
+        label3.setText("<html><p>3. 正確な撮影時刻を入力してください。</p><ul><li>カメラの時計が正確ならば、設定を変更する必要はありません。</li></ul>");
         argsPanel.add(label3);
         arg3_basetiome = new ParameterPanel("  基準時刻: ", ImportPicture.TIME_FORMAT_STRING);
         argsPanel.add(arg3_basetiome);
@@ -240,13 +240,12 @@ public class AdjustTime extends JFrame
         cardNo++;
         cards[cardNo].setLayout(new BorderLayout());
         JLabel label4 = new JLabel();
-        label4.setText("<html><p>ヒモ付を行うGPXファイルを選択してください。</p><ul><li>フォルダを指定すると、フォルダ内にあるすべてのGPXファイルを対象とします。</li><li>カメラの時計が正確ならば、どの画像を選んでも構いません。</li></ul>");
+        label4.setText("<html><p>4. ヒモ付を行うGPXファイルを選択してください。</p><ul><li>フォルダを指定すると、フォルダ内にあるすべてのGPXファイルを対象とします。</li><li>カメラの時計が正確ならば、どの画像を選んでも構いません。</li></ul>");
         cards[cardNo].add(label4, BorderLayout.NORTH);
         
         JPanel tmpPanel4a = new JPanel();
         tmpPanel4a.setLayout(new BoxLayout(tmpPanel4a, BoxLayout.Y_AXIS));
-        File gpxDir = new File(".");
-        arg4_gpxFolder = new ParameterPanelFolder("GPXフォルダ: ", gpxDir.getAbsolutePath(), JFileChooser.FILES_AND_DIRECTORIES);
+        arg4_gpxFolder = new ParameterPanelFolder("GPXフォルダ: ", params.getProperty(AppParameters.IMG_SOURCE_FOLDER), JFileChooser.FILES_AND_DIRECTORIES);
         tmpPanel4a.add(arg4_gpxFolder);
         noFirstNode = new JCheckBox("<trkseg>セグメントの最初の1ノードは無視する。", params.getProperty(AppParameters.GPX_NO_FIRST_NODE).equals("ON"));
         tmpPanel4a.add(noFirstNode);
@@ -260,7 +259,7 @@ public class AdjustTime extends JFrame
         cardNo++;
         cards[cardNo].setLayout(new BorderLayout());
         JLabel label5 = new JLabel();
-        label5.setText("<html><p>EXIF変換を行うかどうかを選択してください。</p><ul><li>EXIF変換を行う場合には、変換ファイルを出力するフォルダも指定する必要があります。</li><li>出力フォルダには、書き込み権限と、十分な空き容量が必要です。</li></ul>");
+        label5.setText("<html><p>5. EXIF変換を行うかどうかを選択してください。</p><ul><li>EXIF変換を行う場合には、変換ファイルを出力するフォルダも指定する必要があります。</li><li>出力フォルダには、書き込み権限と、十分な空き容量が必要です。</li></ul>");
         cards[cardNo].add(label5, BorderLayout.NORTH);
         
         JPanel tmpPanel5 = new JPanel();
@@ -269,8 +268,7 @@ public class AdjustTime extends JFrame
         exifON = new JCheckBox("EXIFの変換をする", false);
         tmpPanel5.add(exifON);
         
-        File outputDir = new File(".");
-        arg5_outputFolder = new ParameterPanelFolder("書き出しフォルダ: ", outputDir.getAbsolutePath());
+        arg5_outputFolder = new ParameterPanelFolder("書き出しフォルダ: ", params.getProperty(AppParameters.IMG_OUTPUT_FOLDER));
         tmpPanel5.add(arg5_outputFolder);
         cards[cardNo].add(tmpPanel5, BorderLayout.CENTER);
         
@@ -543,6 +541,7 @@ public class AdjustTime extends JFrame
         
         this.params.setProperty(AppParameters.GPX_NO_FIRST_NODE, (noFirstNode.isSelected() ? "ON" : "OFF"));
         this.params.setProperty(AppParameters.GPX_REUSE, (gpxReuse.isSelected() ? "ON" : "OFF"));
+        this.params.setProperty(AppParameters.GPX_SOURCE_FOLDER, arg4_gpxFolder.getText());
         this.params.setProperty(AppParameters.IMG_SOURCE_FOLDER, arg1_srcFolder.getText());
         this.params.setProperty(AppParameters.IMG_BASE_FILE, arg2_baseTimeImg.getText());
         this.params.setProperty(AppParameters.GPX_BASETIME, arg3_basetiome.getText());
index eaf5268..9b243fe 100644 (file)
@@ -10,13 +10,15 @@ import javax.swing.JFileChooser;
 public class ParameterPanelFolder extends ParameterPanel implements ActionListener {
        JFileChooser fc;
        JButton openButton;
+       int chooser;
 
        public ParameterPanelFolder(String label, String text, int chooser) {
                super(label, text);
 
         //Create a file chooser
+               this.chooser = chooser;
                File sdir = new File(text);
-               
+               System.out.println("sdir="+ sdir.getAbsolutePath());
                if (sdir.exists()) {
                fc = new JFileChooser(sdir);
                }
@@ -42,6 +44,7 @@ public class ParameterPanelFolder extends ParameterPanel implements ActionListen
        
     public void actionPerformed(ActionEvent e) {
                if (e.getSource() == openButton){
+                       fc = new JFileChooser(new File(this.argField.getText()));
                        int returnVal = fc.showOpenDialog(ParameterPanelFolder.this);
                        
                        if (returnVal == JFileChooser.APPROVE_OPTION) {