• R/O
  • HTTP
  • SSH
  • HTTPS

importpicture: Commit


Commit MetaInfo

Revision265cfa4cf96e6ec81779fce3f22b393309af9dcd (tree)
Time2019-10-22 11:28:02
Authorhaya4 <hayashi.yuu@gmai...>
Commiterhaya4

Log Message

fixed: GUIを一新した

Change Summary

Incremental Difference

--- a/src/osm/jp/gpx/matchtime/gui/AdjustTime.java
+++ b/src/osm/jp/gpx/matchtime/gui/AdjustTime.java
@@ -2,7 +2,6 @@ package osm.jp.gpx.matchtime.gui;
22
33 import osm.jp.gpx.matchtime.gui.restamp.RestampDialog;
44 import java.awt.*;
5-import java.awt.event.ActionEvent;
65 import java.io.IOException;
76 import java.text.SimpleDateFormat;
87 import java.util.ResourceBundle;
@@ -12,7 +11,6 @@ import java.util.logging.Logger;
1211 import javax.swing.*;
1312 import javax.swing.event.DocumentEvent;
1413 import osm.jp.gpx.*;
15-import osm.jp.gpx.matchtime.gui.restamp.CardGpxFile;
1614 import osm.jp.gpx.matchtime.gui.restamp.CardImageFile;
1715 import osm.jp.gpx.matchtime.gui.restamp.CardSourceFolder;
1816
@@ -23,8 +21,8 @@ import osm.jp.gpx.matchtime.gui.restamp.CardSourceFolder;
2321 public class AdjustTime extends JFrame
2422 {
2523 public static final String PROGRAM_NAME = "AdjustTime for JOSM";
26- public static final String PROGRAM_VARSION = "5.01";
27- public static final String PROGRAM_UPDATE = "2019/09/11";
24+ public static final String PROGRAM_VARSION = "5.02";
25+ public static final String PROGRAM_UPDATE = "2019/10/22";
2826
2927 AppParameters params;
3028 public static SimpleDateFormat dfjp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
@@ -36,26 +34,6 @@ public class AdjustTime extends JFrame
3634 //{{DECLARE_CONTROLS
3735 JTabbedPane cardPanel; // ウィザード形式パネル(タブ型)
3836 Card[] cards;
39- int cardPanelNo = 0;
40- JPanel argsPanel; // パラメータ設定パネル (上部)
41- JScrollPane imageSPane; // スクロールパネル
42- JLabel imageLabel; // 基準時刻画像表示
43- //JCheckBox noFirstNode; // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
44- //JCheckBox gpxReuse; // 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
45- JTextArea textArea; // 実行結果表示領域
46-
47- //ParameterPanel arg3_basetime; // 基準時刻:
48- JCheckBox outputIMG; // IMGの変換 する/しない
49- JCheckBox outputIMG_all; // 'out of GPX time'でもIMGの変換をする {ON | OFF}
50- JCheckBox exifON; // EXIF 書き出しモード / !(EXIFの書き換えはしない)
51- JCheckBox gpxOutputWpt; // GPXに<WPT>を書き出す
52- JCheckBox gpxOverwriteMagvar; // ソースGPXの<MAGVAR>を無視する
53- JCheckBox gpxOutputSpeed; // GPXに<SPEED>を書き出す
54- ParameterPanelFolder arg5_outputFolder; // EXIF 書き出しフォルダ
55-
56- JPanel buttonPanel; // ボタンパネル (下部)
57-
58- JButton doButton; // [処理実行]ボタン
5937 //}}
6038
6139 //---入力フィールド----------------------------------------------------
@@ -63,6 +41,7 @@ public class AdjustTime extends JFrame
6341 ParameterPanelImageFile arg2_baseTimeImg; // 開始画像ファイルパス
6442 ParameterPanelTime arg2_basetime; // 開始画像の基準時刻:
6543 ParameterPanelGpx arg3_gpxFile; // GPX file or Folder
44+ ParameterPanelOutput arg4_output; // EXIF & 書き出しフォルダ
6645
6746 //{{DECLARE_MENUS
6847 java.awt.MenuBar mainMenuBar;
@@ -108,12 +87,6 @@ public class AdjustTime extends JFrame
10887 else if (object == miExit) {
10988 miExit_Action(event);
11089 }
111- else if (object == outputIMG) {
112- outputIMG_Action(event);
113- }
114- else if (object == doButton) {
115- doButton_Action(event);
116- }
11790 }
11891 }
11992
@@ -251,7 +224,7 @@ public class AdjustTime extends JFrame
251224
252225 // 3. GPXファイルを選択
253226 CardGpxFile card = new CardGpxFile(
254- cardPanel, arg3_gpxFile, (Window)this,
227+ cardPanel, arg3_gpxFile,
255228 AdjustTime.i18n.getString("tab.400"), 1, 3);
256229 cardPanel.addTab(card.getTitle(), card);
257230 cardPanel.setEnabledAt(cardNo, false);
@@ -260,90 +233,51 @@ public class AdjustTime extends JFrame
260233 }
261234
262235 //---------------------------------------------------------------------
263- // 4.EXIF更新設定画面
236+ // 4.EXIF更新設定画面 & 実行画面
264237 {
265- Card card = new Card(cardPanel, i18n.getString("tab.500"), 3, -1);
266- cardPanel.addTab(card.getTitle(), card);
267- cards[cardNo] = card;
268-
269- // 5. EXIF変換を行うかどうかを選択してください。
270- // - EXIF変換を行う場合には、変換ファイルを出力するフォルダも指定する必要があります。
271- // - 出力フォルダには、書き込み権限と、十分な空き容量が必要です。
272- JLabel label5 = new JLabel();
273- label5.setText(
274- String.format(
275- "<html><p>5. %s</p><ul><li>%s</li><li>%s</li></ul>",
276- i18n.getString("label.500"),
277- i18n.getString("label.501"),
278- i18n.getString("label.502")
279- )
238+ // 4. ファイル変換・実行パラメータ
239+ // "出力フォルダ: "
240+ arg4_output = new ParameterPanelOutput(
241+ i18n.getString("label.530") + ": ",
242+ params.getProperty(AppParameters.IMG_OUTPUT_FOLDER)
243+ );
244+ arg4_output.argField.getDocument().addDocumentListener(
245+ new SimpleDocumentListener() {
246+ @Override
247+ public void update(DocumentEvent e) {
248+ toEnable(3, arg4_output.isEnable());
249+ }
250+ }
280251 );
281- card.mainPanel.add(label5, BorderLayout.NORTH);
282-
283- JPanel tmpPanel5 = new JPanel();
284- tmpPanel5.setLayout(new BoxLayout(tmpPanel5, BoxLayout.Y_AXIS));
285252
286253 // "IMGの変換をする"
287- outputIMG = new JCheckBox(
288- i18n.getString("label.510"),
289- Boolean.parseBoolean(params.getProperty(AppParameters.IMG_OUTPUT))
290- );
291- tmpPanel5.add(outputIMG);
254+ arg4_output.addCheckChangeImage(i18n.getString("label.510"), params);
292255
293256 // "GPXファイル時間外のファイルもコピーする"
294- outputIMG_all = new JCheckBox(
295- i18n.getString("label.520"),
296- Boolean.parseBoolean(params.getProperty(AppParameters.IMG_OUTPUT_ALL))
297- );
298- tmpPanel5.add(outputIMG_all);
299-
300- // "出力フォルダ: "
301- arg5_outputFolder = new ParameterPanelFolder(
302- i18n.getString("label.530") + ": ",
303- params.getProperty(AppParameters.IMG_OUTPUT_FOLDER)
304- );
305- tmpPanel5.add(arg5_outputFolder);
257+ arg4_output.addCheckOutofGpxTime(i18n.getString("label.520"), params);
306258
307259 // "EXIFの変換をする"
308- exifON = new JCheckBox(
309- i18n.getString("label.540"),
310- Boolean.parseBoolean(params.getProperty(AppParameters.IMG_OUTPUT_EXIF))
311- );
312- tmpPanel5.add(exifON);
260+ arg4_output.addCheckOutputExif(i18n.getString("label.540"), params);
313261
314262 // "ポイントマーカー<WPT>をGPXファイルに出力する"
315- gpxOutputWpt = new JCheckBox(
316- i18n.getString("label.550"),
317- Boolean.parseBoolean(params.getProperty(AppParameters.GPX_OUTPUT_WPT))
318- );
319- gpxOutputWpt.setEnabled(true);
320- tmpPanel5.add(gpxOutputWpt);
263+ arg4_output.addCheckOutputWpt(i18n.getString("label.550"), params);
321264
322265 // "ソースGPXの<MAGVAR>を無視する"
323- gpxOverwriteMagvar = new JCheckBox(
324- i18n.getString("label.560"),
325- Boolean.parseBoolean(params.getProperty(AppParameters.GPX_OVERWRITE_MAGVAR))
326- );
327- gpxOverwriteMagvar.setEnabled(true);
328- tmpPanel5.add(gpxOverwriteMagvar);
266+ arg4_output.addCheckIgnoreMagvar(i18n.getString("label.560"), params);
329267
330- // "出力GPXに<SPEED>を上書きする"
331- gpxOutputSpeed = new JCheckBox(
332- i18n.getString("label.570"),
333- Boolean.parseBoolean(params.getProperty(AppParameters.GPX_OUTPUT_SPEED))
334- );
335- gpxOutputSpeed.setEnabled(true);
336- tmpPanel5.add(gpxOutputSpeed);
337-
338- card.mainPanel.add(tmpPanel5, BorderLayout.CENTER);
268+ // "出力GPXに[SPEED]を上書きする"
269+ arg4_output.addCheckOutputSpeed(i18n.getString("label.570"), params);
339270
340- // "処理実行"
341- doButton = new JButton(
342- i18n.getString("button.execute"),
343- AdjustTime.createImageIcon("images/media_playback_start.png")
271+ // パネル表示
272+ CardExifPerform card = new CardExifPerform(
273+ cardPanel,
274+ arg2_basetime, arg3_gpxFile, arg4_output,
275+ AdjustTime.i18n.getString("tab.500"),
276+ 2, -1
344277 );
345- card.mainPanel.add(doButton, BorderLayout.SOUTH);
346- cardNo++;
278+ cardPanel.addTab(card.getTitle(), card);
279+ cardPanel.setEnabledAt(cardNo, false);
280+ cards[cardNo] = card;
347281 }
348282
349283 //---------------------------------------------------------------------
@@ -382,10 +316,6 @@ public class AdjustTime extends JFrame
382316 miRestamp.addActionListener(lSymAction);
383317 miExit.addActionListener(lSymAction);
384318 arg2_baseTimeImg.openButton.addActionListener(lSymAction);
385- doButton.addActionListener(lSymAction);
386- outputIMG_all.addActionListener(lSymAction);
387- exifON.addActionListener(lSymAction);
388- gpxOutputSpeed.addActionListener(lSymAction);
389319 //}}
390320 }
391321
@@ -477,15 +407,7 @@ public class AdjustTime extends JFrame
477407 }
478408 }
479409
480- ImageIcon refImage;
481-
482- /**
483- * ソースディレクトリが選択された時のアクション
484- * → AdjustTime.ini に書き込む
485- * @param ev
486- */
487- public void selectSource_Action(ActionEvent ev) {
488- }
410+ //ImageIcon refImage;
489411
490412 /** Returns an ImageIcon, or null if the path was invalid.
491413 * @param path
@@ -499,54 +421,4 @@ public class AdjustTime extends JFrame
499421 return null;
500422 }
501423 }
502-
503- /**
504- * checkbox[IMG変換]を変更した場合のアクション
505- * ON ー> IMG出力フォルダのフィールドを有効にする
506- * OFF -> IMG出力フォルダのフィールドを無効にする
507- * @param event
508- */
509- void outputIMG_Action (ActionEvent event) {
510- arg5_outputFolder.setEnabled(outputIMG.isEnabled());
511- }
512-
513- /**
514- * [実行]ボタンをクリックしたときの動作
515- * @param event
516- */
517- @SuppressWarnings("UseSpecificCatch")
518- void doButton_Action(java.awt.event.ActionEvent event) {
519- doButton.setEnabled(false);
520-
521- String[] argv = new String[0];
522- this.params.setProperty(AppParameters.GPX_NO_FIRST_NODE, String.valueOf(arg3_gpxFile.isNoFirstNodeSelected()));
523- this.params.setProperty(AppParameters.GPX_REUSE, String.valueOf(arg3_gpxFile.isGpxReuseSelected()));
524- this.params.setProperty(AppParameters.GPX_SOURCE_FOLDER, arg3_gpxFile.getText());
525- if ((arg2_basetime.exifBase != null) && arg2_basetime.exifBase.isSelected()) {
526- this.params.setProperty(AppParameters.GPX_BASETIME, "EXIF_TIME");
527- }
528- else {
529- this.params.setProperty(AppParameters.GPX_BASETIME, "FILE_UPDATE");
530- }
531- try {
532- this.params.setProperty(AppParameters.IMG_SOURCE_FOLDER, arg1_srcFolder.getText());
533- this.params.setProperty(AppParameters.IMG_BASE_FILE, arg2_baseTimeImg.getText());
534- this.params.setProperty(AppParameters.IMG_TIME, ImportPicture.toUTCString(dfjp.parse(arg2_basetime.getText())));
535- this.params.setProperty(AppParameters.IMG_OUTPUT, String.valueOf(outputIMG.isSelected()));
536- this.params.setProperty(AppParameters.IMG_OUTPUT_FOLDER, arg5_outputFolder.getText());
537- this.params.setProperty(AppParameters.IMG_OUTPUT_ALL, String.valueOf(outputIMG_all.isSelected()));
538- this.params.setProperty(AppParameters.IMG_OUTPUT_EXIF, String.valueOf(exifON.isSelected()));
539- this.params.setProperty(AppParameters.GPX_OVERWRITE_MAGVAR, String.valueOf(gpxOverwriteMagvar.isSelected()));
540- this.params.setProperty(AppParameters.GPX_OUTPUT_SPEED, String.valueOf(gpxOutputSpeed.isSelected()));
541- this.params.setProperty(AppParameters.GPX_OUTPUT_WPT, String.valueOf(gpxOutputWpt.isSelected()));
542- this.params.store();
543- }
544- catch(Exception e) {
545- e.printStackTrace();
546- }
547-
548- (new DoDialog(argv)).setVisible(true);
549-
550- doButton.setEnabled(true);
551- }
552424 }
--- /dev/null
+++ b/src/osm/jp/gpx/matchtime/gui/CardExifPerform.java
@@ -0,0 +1,191 @@
1+package osm.jp.gpx.matchtime.gui;
2+
3+import java.awt.BorderLayout;
4+import java.awt.event.ActionEvent;
5+import javax.swing.BoxLayout;
6+import javax.swing.JButton;
7+import javax.swing.JLabel;
8+import javax.swing.JPanel;
9+import javax.swing.JTabbedPane;
10+import osm.jp.gpx.AppParameters;
11+import osm.jp.gpx.ImportPicture;
12+import static osm.jp.gpx.matchtime.gui.AdjustTime.dfjp;
13+import static osm.jp.gpx.matchtime.gui.AdjustTime.i18n;
14+
15+/**
16+ * 実行パネル
17+ * @author yuu
18+ */
19+public class CardExifPerform extends Card implements PanelAction {
20+ ParameterPanelTime arg_basetime; // 画像の基準時刻:
21+ ParameterPanelGpx arg_gpxFile; // GPX file or Folder
22+ ParameterPanelOutput arg_output; // EXIF & 書き出しフォルダ
23+ JButton doButton; // [処理実行]ボタン
24+
25+ /**
26+ * コンストラクタ
27+ * @param tabbe parent panel
28+ * @param arg_basetime // 開始画像の基準時刻:
29+ * @param arg_gpxFile // GPX file or Folder:
30+ * @param arg_output // EXIF & 書き出しフォルダ
31+ * @param text
32+ * @param pre
33+ * @param next
34+ */
35+ public CardExifPerform(
36+ JTabbedPane tabbe,
37+ ParameterPanelTime arg_basetime, ParameterPanelGpx arg_gpxFile, ParameterPanelOutput arg_output,
38+ String text,
39+ int pre, int next
40+ ) {
41+ super(tabbe, text, pre, next);
42+ this.arg_basetime = arg_basetime;
43+ this.arg_gpxFile = arg_gpxFile;
44+ this.arg_output = arg_output;
45+
46+ SymAction lSymAction = new SymAction();
47+ JPanel argsPanel = new JPanel();
48+ argsPanel.setLayout(new BoxLayout(argsPanel, BoxLayout.PAGE_AXIS));
49+
50+ // 5. EXIF変換を行うかどうかを選択してください。
51+ // - EXIF変換を行う場合には、変換ファイルを出力するフォルダも指定する必要があります。
52+ // - 出力フォルダには、書き込み権限と、十分な空き容量が必要です。
53+ JLabel label5 = new JLabel();
54+ label5.setText(
55+ String.format(
56+ "<html><p>5. %s</p><ul><li>%s</li><li>%s</li></ul>",
57+ i18n.getString("label.500"),
58+ i18n.getString("label.501"),
59+ i18n.getString("label.502")
60+ )
61+ );
62+ argsPanel.add(packLine(label5, new JPanel()));
63+
64+ // チェックボックス "IMGの変換をする"
65+ if (arg_output.outputIMG != null) {
66+ arg_output.outputIMG.addActionListener(lSymAction);
67+ argsPanel.add(arg_output.outputIMG);
68+ }
69+
70+ // チェックボックス "IMGの変換をする"
71+ if (arg_output.outputIMG_all != null) {
72+ argsPanel.add(arg_output.outputIMG_all);
73+ }
74+
75+ // チェックボックス "EXIFの変換をする"
76+ if (arg_output.exifON != null) {
77+ argsPanel.add(arg_output.exifON);
78+ }
79+
80+ // チェックボックス "ポイントマーカー<WPT>をGPXファイルに出力する"
81+ if (arg_output.gpxOutputWpt != null) {
82+ argsPanel.add(arg_output.gpxOutputWpt);
83+ }
84+
85+ // チェックボックス "ソースGPXの<MAGVAR>を無視する"
86+ if (arg_output.gpxOverwriteMagvar != null) {
87+ argsPanel.add(arg_output.gpxOverwriteMagvar);
88+ }
89+
90+ // チェックボックス "出力GPXに[SPEED]を上書きする"
91+ if (arg_output.gpxOutputSpeed != null) {
92+ argsPanel.add(arg_output.gpxOutputSpeed);
93+ }
94+
95+ // [処理実行]ボタン
96+ doButton = new JButton(
97+ i18n.getString("button.execute"),
98+ AdjustTime.createImageIcon("images/media_playback_start.png")
99+ );
100+ argsPanel.add(doButton);
101+
102+ this.mainPanel.add(argsPanel, BorderLayout.CENTER);
103+
104+ //{{REGISTER_LISTENERS
105+ doButton.addActionListener(lSymAction);
106+ //}}
107+ }
108+
109+ class SymAction implements java.awt.event.ActionListener {
110+ @Override
111+ public void actionPerformed(java.awt.event.ActionEvent event) {
112+ Object object = event.getSource();
113+ if (object == doButton) {
114+ doButton_Action(event);
115+ }
116+ else if (object == arg_output.outputIMG) {
117+ outputIMG_Action(event);
118+ }
119+ }
120+ }
121+
122+ /**
123+ * checkbox[IMG変換]を変更した場合のアクション
124+ * ON ー> IMG出力フォルダのフィールドを有効にする
125+ * OFF -> IMG出力フォルダのフィールドを無効にする
126+ * @param event
127+ */
128+ void outputIMG_Action (ActionEvent event) {
129+ setEnabled(isEnabled());
130+ }
131+
132+ /**
133+ * [実行]ボタンをクリックしたときの動作
134+ * @param event
135+ */
136+ @SuppressWarnings("UseSpecificCatch")
137+ void doButton_Action(java.awt.event.ActionEvent event) {
138+ doButton.setEnabled(false);
139+
140+ ParameterPanelImageFile arg_baseTimeImg = arg_basetime.imageFile; // 基準時刻画像
141+ ParameterPanelFolder arg_srcFolder = arg_baseTimeImg.paramDir;
142+
143+ try {
144+ AppParameters params = new AppParameters();
145+
146+ String[] argv = new String[0];
147+ params.setProperty(AppParameters.GPX_NO_FIRST_NODE, String.valueOf(arg_gpxFile.isNoFirstNodeSelected()));
148+ params.setProperty(AppParameters.GPX_REUSE, String.valueOf(arg_gpxFile.isGpxReuseSelected()));
149+ params.setProperty(AppParameters.GPX_SOURCE_FOLDER, arg_gpxFile.getText());
150+ if ((arg_basetime.exifBase != null) && arg_basetime.exifBase.isSelected()) {
151+ params.setProperty(AppParameters.GPX_BASETIME, "EXIF_TIME");
152+ }
153+ else {
154+ params.setProperty(AppParameters.GPX_BASETIME, "FILE_UPDATE");
155+ }
156+ params.setProperty(AppParameters.IMG_SOURCE_FOLDER, arg_srcFolder.getText());
157+ params.setProperty(AppParameters.IMG_BASE_FILE, arg_baseTimeImg.getText());
158+ params.setProperty(AppParameters.IMG_TIME, ImportPicture.toUTCString(dfjp.parse(arg_basetime.getText())));
159+ params.setProperty(AppParameters.IMG_OUTPUT, String.valueOf(arg_output.outputIMG.isSelected()));
160+ params.setProperty(AppParameters.IMG_OUTPUT_ALL, String.valueOf(arg_output.outputIMG_all.isSelected()));
161+ params.setProperty(AppParameters.IMG_OUTPUT_FOLDER, arg_output.getText());
162+ params.setProperty(AppParameters.IMG_OUTPUT_EXIF, String.valueOf(arg_output.exifON.isSelected()));
163+ params.setProperty(AppParameters.GPX_OVERWRITE_MAGVAR, String.valueOf(arg_output.gpxOverwriteMagvar.isSelected()));
164+ params.setProperty(AppParameters.GPX_OUTPUT_SPEED, String.valueOf(arg_output.gpxOutputSpeed.isSelected()));
165+ params.setProperty(AppParameters.GPX_OUTPUT_WPT, String.valueOf(arg_output.gpxOutputWpt.isSelected()));
166+ params.store();
167+ }
168+ catch(Exception e) {
169+ e.printStackTrace();
170+ }
171+
172+ (new DoDialog(new String[0])).setVisible(true);
173+
174+ doButton.setEnabled(true);
175+ }
176+
177+ /**
178+ * 入力条件が満たされているかどうか
179+ * @return
180+ */
181+ @Override
182+ public boolean isEnable() {
183+ return (arg_basetime.isEnable() && arg_gpxFile.isEnable());
184+ }
185+
186+ @Override
187+ @SuppressWarnings("empty-statement")
188+ public void openAction() {
189+ ; // 何もしない
190+ }
191+}
--- a/src/osm/jp/gpx/matchtime/gui/restamp/CardGpxFile.java
+++ b/src/osm/jp/gpx/matchtime/gui/CardGpxFile.java
@@ -1,33 +1,24 @@
1-package osm.jp.gpx.matchtime.gui.restamp;
1+package osm.jp.gpx.matchtime.gui;
22
33 import java.awt.BorderLayout;
44 import java.awt.Dimension;
5-import java.awt.Window;
65 import javax.swing.BoxLayout;
76 import javax.swing.JLabel;
87 import javax.swing.JPanel;
98 import javax.swing.JTabbedPane;
109 import static osm.jp.gpx.matchtime.gui.AdjustTime.i18n;
11-import osm.jp.gpx.matchtime.gui.Card;
12-import osm.jp.gpx.matchtime.gui.PanelAction;
13-import osm.jp.gpx.matchtime.gui.ParameterPanelGpx;
1410
1511 /**
1612 * [GPXファイル]選択パネル
1713 * @author yuu
1814 */
1915 public class CardGpxFile extends Card implements PanelAction {
20- //JPanel argsPanel; // パラメータ設定パネル (上部)
2116 ParameterPanelGpx arg_gpxFile;
22- //JCheckBox noFirstNode; // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
23- //JCheckBox gpxReuse; // 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
24- //private final boolean gpxReuseV;
2517
2618 /**
2719 * コンストラクタ
2820 * @param tabbe parent panel
2921 * @param arg_gpxFile // 開始画像の基準時刻:
30- * @param owner
3122 * @param text
3223 * @param pre
3324 * @param next
@@ -35,13 +26,10 @@ public class CardGpxFile extends Card implements PanelAction {
3526 public CardGpxFile(
3627 JTabbedPane tabbe,
3728 ParameterPanelGpx arg_gpxFile,
38- Window owner,
3929 String text,
4030 int pre, int next
41- //boolean noFirstNodeV,
42- //boolean gpxReuseV
4331 ) {
44- super(tabbe, text, 2, 4);
32+ super(tabbe, text, pre, next);
4533 this.arg_gpxFile = arg_gpxFile;
4634
4735 // 4. ヒモ付を行うGPXファイルを選択してください。
--- a/src/osm/jp/gpx/matchtime/gui/ParameterPanelFolder.java
+++ b/src/osm/jp/gpx/matchtime/gui/ParameterPanelFolder.java
@@ -48,14 +48,14 @@ public class ParameterPanelFolder extends ParameterPanel implements ActionListen
4848 public File getDirectory() throws FileNotFoundException {
4949 String path = this.argField.getText();
5050 if (path == null) {
51- throw new FileNotFoundException("Image folder is Not specifiyed yet.");
51+ throw new FileNotFoundException("Folder is Not specifiyed yet.");
5252 }
5353 File sdir = new File(path);
5454 if (!sdir.exists()) {
55- throw new FileNotFoundException(String.format("Image folder '%s' is Not exists.", path));
55+ throw new FileNotFoundException(String.format("Folder '%s' is Not exists.", path));
5656 }
5757 if (!sdir.isDirectory()) {
58- throw new FileNotFoundException(String.format("Image folder '%s' is Not directory.", path));
58+ throw new FileNotFoundException(String.format("Folder '%s' is Not directory.", path));
5959 }
6060 return sdir;
6161 }
@@ -63,7 +63,6 @@ public class ParameterPanelFolder extends ParameterPanel implements ActionListen
6363 @Override
6464 public void actionPerformed(ActionEvent e) {
6565 if (e.getSource() == selectButton){
66- System.out.println("ParameterPanelFolder.actionPerformed(openButton)");
6766 File sdir;
6867 try {
6968 sdir = getDirectory();
--- a/src/osm/jp/gpx/matchtime/gui/ParameterPanelGpx.java
+++ b/src/osm/jp/gpx/matchtime/gui/ParameterPanelGpx.java
@@ -99,7 +99,7 @@ public class ParameterPanelGpx extends ParameterPanel implements ActionListener
9999 public boolean isGpxReuseSelected() {
100100 return (gpxReuse != null) && gpxReuse.isSelected();
101101 }
102-
102+
103103 /**
104104 * このフィールドに有効な値が設定されているかどうか
105105 * @return
--- /dev/null
+++ b/src/osm/jp/gpx/matchtime/gui/ParameterPanelOutput.java
@@ -0,0 +1,123 @@
1+package osm.jp.gpx.matchtime.gui;
2+
3+import javax.swing.JCheckBox;
4+import javax.swing.JFileChooser;
5+import osm.jp.gpx.AppParameters;
6+
7+@SuppressWarnings("serial")
8+public class ParameterPanelOutput extends ParameterPanelFolder
9+{
10+ JCheckBox outputIMG; // IMGの変換 する/しない
11+ JCheckBox outputIMG_all; // 'out of GPX time'でもIMGの変換をする {ON | OFF}
12+ JCheckBox exifON; // EXIF 書き出しモード / !(EXIFの書き換えはしない)
13+ JCheckBox gpxOutputWpt; // GPXに<WPT>を書き出す
14+ JCheckBox gpxOverwriteMagvar; // ソースGPXの<MAGVAR>を無視する
15+ JCheckBox gpxOutputSpeed; // GPXに<SPEED>を書き出す
16+
17+ /**
18+ * コンストラクタ
19+ * ディレクトリのみ選択可能なダイアログ
20+ * @param label
21+ * @param text
22+ */
23+ public ParameterPanelOutput(String label, String text) {
24+ super(label, text, JFileChooser.DIRECTORIES_ONLY);
25+ }
26+
27+ /**
28+ * チェックボックス "IMGの変換をする"
29+ * @param label テキスト
30+ * @param params プロパティ
31+ */
32+ public void addCheckChangeImage(String label, AppParameters params) {
33+ boolean selected = false;
34+ if (params.getProperty(AppParameters.IMG_OUTPUT).equals("true")) {
35+ selected = true;
36+ }
37+ outputIMG = new JCheckBox(label, selected);
38+ }
39+
40+ /**
41+ * チェックボックス "GPXファイル時間外のファイルもコピーする"
42+ * @param label
43+ * @param params
44+ */
45+ public void addCheckOutofGpxTime(String label, AppParameters params) {
46+ boolean selected = false;
47+ if (params.getProperty(AppParameters.IMG_OUTPUT_ALL).equals("true")) {
48+ selected = true;
49+ }
50+ outputIMG_all = new JCheckBox(label, selected);
51+ }
52+
53+ /**
54+ * チェックボックス "EXIFの変換をする"
55+ * @param label
56+ * @param params
57+ */
58+ public void addCheckOutputExif(String label, AppParameters params) {
59+ boolean selected = false;
60+ if (params.getProperty(AppParameters.IMG_OUTPUT_EXIF).equals("true")) {
61+ selected = true;
62+ }
63+ exifON = new JCheckBox(label, selected);
64+ }
65+
66+ /**
67+ * チェックボックス "ポイントマーカー[WPT]をGPXファイルに出力する"
68+ * @param label
69+ * @param params
70+ */
71+ public void addCheckOutputWpt(String label, AppParameters params) {
72+ boolean selected = false;
73+ if (params.getProperty(AppParameters.GPX_OUTPUT_WPT).equals("true")) {
74+ selected = true;
75+ }
76+ gpxOutputWpt = new JCheckBox(label, selected);
77+ gpxOutputWpt.setEnabled(true);
78+ }
79+
80+ /**
81+ * チェックボックス "ソースGPXの<MAGVAR>を無視する"
82+ * @param label
83+ * @param params
84+ */
85+ public void addCheckIgnoreMagvar(String label, AppParameters params) {
86+ boolean selected = false;
87+ if (params.getProperty(AppParameters.GPX_OVERWRITE_MAGVAR).equals("true")) {
88+ selected = true;
89+ }
90+ gpxOverwriteMagvar = new JCheckBox(label, selected);
91+ gpxOverwriteMagvar.setEnabled(true);
92+ }
93+
94+ /**
95+ * チェックボックス "出力GPXに[SPEED]を上書きする"
96+ * @param label
97+ * @param params
98+ */
99+ public void addCheckOutputSpeed(String label, AppParameters params) {
100+ boolean selected = false;
101+ if (params.getProperty(AppParameters.GPX_OUTPUT_SPEED).equals("true")) {
102+ selected = true;
103+ }
104+ gpxOutputSpeed = new JCheckBox(label, selected);
105+ gpxOutputSpeed.setEnabled(true);
106+ }
107+
108+ /**
109+ * checkbox[IMG変換]を変更した場合のアクション
110+ * ON ー> IMG出力フォルダのフィールドを有効にする
111+ * OFF -> IMG出力フォルダのフィールドを無効にする
112+ * @param event
113+ */
114+ class ChangeImageAction implements java.awt.event.ActionListener {
115+ @Override
116+ public void actionPerformed(java.awt.event.ActionEvent event) {
117+ Object object = event.getSource();
118+ if (object == outputIMG) {
119+ setEnabled(outputIMG.isEnabled());
120+ }
121+ }
122+ }
123+}
\ No newline at end of file
--- a/test/AdjustTime.ini
+++ b/test/AdjustTime.ini
@@ -1,17 +1,17 @@
11 #by AdjustTime
2-#Sun Aug 25 16:00:56 JST 2019
2+#Tue Oct 22 11:27:01 JST 2019
33 GPX.OVERWRITE_MAGVAR=false
44 IMG.BASE_FILE=00009.jpg
5-GPX.SOURCE_FOLDER=/home/yuu/work/mapping/Unmapped_2019-08-24_\u4E2D\u5C71\u9053_\u7B20\u53D6\u5CE0/GPX
5+GPX.SOURCE_FOLDER=/home/yuu/work/mapping/Unmapped_2019-08-24_\u4E2D\u5C71\u9053_\u7B20\u53D6\u5CE0/GPX/2019-08-24 15.44.09 Day.gpx
66 IMG.SOURCE_FOLDER=/home/yuu/work/mapping/Unmapped_2019-08-24_\u4E2D\u5C71\u9053_\u7B20\u53D6\u5CE0/img/20190824_132842A
77 GPX.OUTPUT_SPEED=false
88 IMG.OUTPUT_FOLDER=/home/yuu/work/mapping/Unmapped_2019-08-24_\u4E2D\u5C71\u9053_\u7B20\u53D6\u5CE0/Movie
9-GPX.noFirstNode=false
9+GPX.noFirstNode=true
1010 GPX.gpxSplit=true
1111 IMG.OUTPUT=true
1212 GPX.OUTPUT_WPT=false
1313 GPX.REUSE=false
14-IMG.TIME=2019-08-24T04\:29\:23Z
14+IMG.TIME=2019-08-24T04\:29\:17Z
1515 IMG.OUTPUT_EXIF=true
1616 IMG.OUTPUT_ALL=false
1717 GPX.BASETIME=FILE_UPDATE
Show on old repository browser