• R/O
  • HTTP
  • SSH
  • HTTPS

importpicture: Commit


Commit MetaInfo

Revision2111be290505df4aabc616398e8ef13dc81f1821 (tree)
Time2019-10-20 22:45:14
Authorhaya4 <hayashi.yuu@gmai...>
Commiterhaya4

Log Message

タブパネル「3.GPXファイルの選択」

Change Summary

Incremental Difference

--- a/src/osm/jp/gpx/matchtime/gui/AdjustTime.java
+++ b/src/osm/jp/gpx/matchtime/gui/AdjustTime.java
@@ -12,6 +12,7 @@ import java.util.logging.Logger;
1212 import javax.swing.*;
1313 import javax.swing.event.DocumentEvent;
1414 import osm.jp.gpx.*;
15+import osm.jp.gpx.matchtime.gui.restamp.CardGpxFile;
1516 import osm.jp.gpx.matchtime.gui.restamp.CardImageFile;
1617 import osm.jp.gpx.matchtime.gui.restamp.CardSourceFolder;
1718
@@ -39,11 +40,11 @@ public class AdjustTime extends JFrame
3940 JPanel argsPanel; // パラメータ設定パネル (上部)
4041 JScrollPane imageSPane; // スクロールパネル
4142 JLabel imageLabel; // 基準時刻画像表示
42- JCheckBox noFirstNode; // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
43- JCheckBox gpxReuse; // 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
43+ //JCheckBox noFirstNode; // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
44+ //JCheckBox gpxReuse; // 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
4445 JTextArea textArea; // 実行結果表示領域
4546
46- ParameterPanel arg3_basetime; // 基準時刻:
47+ //ParameterPanel arg3_basetime; // 基準時刻:
4748 JCheckBox outputIMG; // IMGの変換 する/しない
4849 JCheckBox outputIMG_all; // 'out of GPX time'でもIMGの変換をする {ON | OFF}
4950 JCheckBox exifON; // EXIF 書き出しモード / !(EXIFの書き換えはしない)
@@ -51,7 +52,6 @@ public class AdjustTime extends JFrame
5152 JCheckBox gpxOverwriteMagvar; // ソースGPXの<MAGVAR>を無視する
5253 JCheckBox gpxOutputSpeed; // GPXに<SPEED>を書き出す
5354 ParameterPanelFolder arg5_outputFolder; // EXIF 書き出しフォルダ
54- ParameterPanelGpx arg4_gpxFolder; // GPXファイル・フォルダ
5555
5656 JPanel buttonPanel; // ボタンパネル (下部)
5757
@@ -61,7 +61,8 @@ public class AdjustTime extends JFrame
6161 //---入力フィールド----------------------------------------------------
6262 ParameterPanelFolder arg1_srcFolder; // 対象フォルダ
6363 ParameterPanelImageFile arg2_baseTimeImg; // 開始画像ファイルパス
64- ParameterPanelTime arg2_basetime; // 開始画像の基準時刻:
64+ ParameterPanelTime arg2_basetime; // 開始画像の基準時刻:
65+ ParameterPanelGpx arg3_gpxFile; // GPX file or Folder
6566
6667 //{{DECLARE_MENUS
6768 java.awt.MenuBar mainMenuBar;
@@ -110,18 +111,6 @@ public class AdjustTime extends JFrame
110111 else if (object == outputIMG) {
111112 outputIMG_Action(event);
112113 }
113- else if (object == outputIMG_all) {
114- outputIMGall_Action(event);
115- }
116- else if (object == exifON) {
117- exifON_Action(event);
118- }
119- else if (object == gpxOutputWpt) {
120- gpxOutputWpt_Action(event);
121- }
122- else if (object == gpxOutputSpeed) {
123- gpxOutputSpeed_Action(event);
124- }
125114 else if (object == doButton) {
126115 doButton_Action(event);
127116 }
@@ -168,7 +157,7 @@ public class AdjustTime extends JFrame
168157 cardPanel = new JTabbedPane(JTabbedPane.LEFT);
169158 mainPanel.add(cardPanel, BorderLayout.CENTER);
170159
171- cards = new Card[5];
160+ cards = new Card[4];
172161 int cardNo = 0;
173162
174163 //---------------------------------------------------------------------
@@ -240,42 +229,33 @@ public class AdjustTime extends JFrame
240229 //---------------------------------------------------------------------
241230 // 3.GPXファイル設定画面
242231 {
243- // 3. GPXファイルを選択
244- Card card = new Card(cardPanel, i18n.getString("tab.400"), 2, 4);
245- cardPanel.addTab(card.getTitle(), card);
246- cards[cardNo] = card;
247-
248- // 4. ヒモ付を行うGPXファイルを選択してください。
249- // - フォルダを指定すると、フォルダ内のすべてのGPXファイルを対象とします。
250- JLabel label4 = new JLabel();
251- label4.setText(i18n.getString("label.400"));
252- card.mainPanel.add(label4, BorderLayout.NORTH);
253-
254- JPanel tmpPanel4a = new JPanel();
255- tmpPanel4a.setLayout(new BoxLayout(tmpPanel4a, BoxLayout.Y_AXIS));
256-
257- // "GPXフォルダ: "
258- arg4_gpxFolder = new ParameterPanelGpx(
232+ // 3. GPXファイル選択パラメータ
233+ arg3_gpxFile = new ParameterPanelGpx(
259234 i18n.getString("label.410") + ": ",
260235 params.getProperty(AppParameters.GPX_SOURCE_FOLDER)
261236 );
262- tmpPanel4a.add(arg4_gpxFolder);
237+ arg3_gpxFile.argField.getDocument().addDocumentListener(
238+ new SimpleDocumentListener() {
239+ @Override
240+ public void update(DocumentEvent e) {
241+ toEnable(2, arg3_gpxFile.isEnable());
242+ }
243+ }
244+ );
263245
264246 // "セグメント'trkseg'の最初の1ノードは無視する。"
265- noFirstNode = new JCheckBox(
266- i18n.getString("label.420"),
267- params.getProperty(AppParameters.GPX_NO_FIRST_NODE).equals("ON")
268- );
269- tmpPanel4a.add(noFirstNode);
247+ arg3_gpxFile.addNoFirstNode(i18n.getString("label.420"), params);
270248
271249 // "生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も変換の対象にする"
272- gpxReuse = new JCheckBox(
273- i18n.getString("label.430"),
274- params.getProperty(AppParameters.GPX_REUSE).equals("ON")
275- );
276- gpxReuse.setEnabled(true);
277- tmpPanel4a.add(gpxReuse);
278- card.mainPanel.add(tmpPanel4a, BorderLayout.CENTER);
250+ arg3_gpxFile.addGpxReuse(i18n.getString("label.430"), params);
251+
252+ // 3. GPXファイルを選択
253+ CardGpxFile card = new CardGpxFile(
254+ cardPanel, arg3_gpxFile, (Window)this,
255+ AdjustTime.i18n.getString("tab.400"), 1, 3);
256+ cardPanel.addTab(card.getTitle(), card);
257+ cardPanel.setEnabledAt(cardNo, false);
258+ cards[cardNo] = card;
279259 cardNo++;
280260 }
281261
@@ -406,8 +386,6 @@ public class AdjustTime extends JFrame
406386 outputIMG_all.addActionListener(lSymAction);
407387 exifON.addActionListener(lSymAction);
408388 gpxOutputSpeed.addActionListener(lSymAction);
409- noFirstNode.addActionListener(lSymAction);
410- gpxReuse.addActionListener(lSymAction);
411389 //}}
412390 }
413391
@@ -533,34 +511,6 @@ public class AdjustTime extends JFrame
533511 }
534512
535513 /**
536- * checkbox[GPXファイル時間外のファイルもコピーする]を変更した場合のアクション
537- * @param event
538- */
539- void outputIMGall_Action (ActionEvent event) {
540- }
541-
542- /**
543- * checkbox[EXIF書き出し]を変更した場合のアクション
544- * @param event
545- */
546- void exifON_Action (ActionEvent event) {
547- }
548-
549- /**
550- * checkbox[GPXの<WPT>を出力する]を変更した場合のアクション
551- * @param event
552- */
553- void gpxOutputWpt_Action (ActionEvent event) {
554- }
555-
556- /**
557- * checkbox[GPXの<SPPED>を書き換える]を変更した場合のアクション
558- * @param event
559- */
560- void gpxOutputSpeed_Action (ActionEvent event) {
561- }
562-
563- /**
564514 * [実行]ボタンをクリックしたときの動作
565515 * @param event
566516 */
@@ -569,21 +519,19 @@ public class AdjustTime extends JFrame
569519 doButton.setEnabled(false);
570520
571521 String[] argv = new String[0];
572- this.params.setProperty(AppParameters.GPX_NO_FIRST_NODE, String.valueOf(noFirstNode.isSelected()));
573- this.params.setProperty(AppParameters.GPX_REUSE, String.valueOf(gpxReuse.isSelected()));
574- this.params.setProperty(AppParameters.GPX_SOURCE_FOLDER, arg4_gpxFolder.getText());
575- /*
576- if (exifBase.isSelected()) {
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()) {
577526 this.params.setProperty(AppParameters.GPX_BASETIME, "EXIF_TIME");
578527 }
579528 else {
580529 this.params.setProperty(AppParameters.GPX_BASETIME, "FILE_UPDATE");
581530 }
582- */
583531 try {
584532 this.params.setProperty(AppParameters.IMG_SOURCE_FOLDER, arg1_srcFolder.getText());
585533 this.params.setProperty(AppParameters.IMG_BASE_FILE, arg2_baseTimeImg.getText());
586- this.params.setProperty(AppParameters.IMG_TIME, ImportPicture.toUTCString(dfjp.parse(arg3_basetime.getText())));
534+ this.params.setProperty(AppParameters.IMG_TIME, ImportPicture.toUTCString(dfjp.parse(arg2_basetime.getText())));
587535 this.params.setProperty(AppParameters.IMG_OUTPUT, String.valueOf(outputIMG.isSelected()));
588536 this.params.setProperty(AppParameters.IMG_OUTPUT_FOLDER, arg5_outputFolder.getText());
589537 this.params.setProperty(AppParameters.IMG_OUTPUT_ALL, String.valueOf(outputIMG_all.isSelected()));
--- a/src/osm/jp/gpx/matchtime/gui/ParameterPanelFolder.java
+++ b/src/osm/jp/gpx/matchtime/gui/ParameterPanelFolder.java
@@ -14,6 +14,16 @@ public class ParameterPanelFolder extends ParameterPanel implements ActionListen
1414 JButton selectButton;
1515 int chooser;
1616
17+ /**
18+ * コンストラクタ
19+ * ディレクトリのみ選択可能なダイアログ
20+ * @param label
21+ * @param text
22+ */
23+ public ParameterPanelFolder(String label, String text) {
24+ this(label, text, JFileChooser.DIRECTORIES_ONLY);
25+ }
26+
1727 @SuppressWarnings({"OverridableMethodCallInConstructor", "LeakingThisInConstructor"})
1828 public ParameterPanelFolder(String label, String text, int chooser) {
1929 super(label, text);
@@ -30,10 +40,6 @@ public class ParameterPanelFolder extends ParameterPanel implements ActionListen
3040 this.add(selectButton);
3141 }
3242
33- public ParameterPanelFolder(String label, String text) {
34- this(label, text, JFileChooser.DIRECTORIES_ONLY);
35- }
36-
3743 public void setEnable(boolean f) {
3844 super.setEnabled(f);
3945 selectButton.setEnabled(f);
--- a/src/osm/jp/gpx/matchtime/gui/ParameterPanelGpx.java
+++ b/src/osm/jp/gpx/matchtime/gui/ParameterPanelGpx.java
@@ -5,27 +5,39 @@ import java.awt.event.ActionListener;
55 import java.io.File;
66
77 import javax.swing.JButton;
8+import javax.swing.JCheckBox;
89 import javax.swing.JFileChooser;
10+import osm.jp.gpx.AppParameters;
911
1012 @SuppressWarnings("serial")
1113 public class ParameterPanelGpx extends ParameterPanel implements ActionListener
1214 {
1315 JFileChooser fc;
14- JButton openButton;
15-
16+ JButton selectButton;
17+ public JCheckBox noFirstNode; // CheckBox: "セグメント'trkseg'の最初の1ノードは無視する。"
18+ public JCheckBox gpxReuse; // CheckBox: "生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も変換の対象にする"
19+
20+ /**
21+ * コンストラクタ
22+ * @param label
23+ * @param text
24+ */
1625 @SuppressWarnings({"OverridableMethodCallInConstructor", "LeakingThisInConstructor"})
1726 public ParameterPanelGpx(String label, String text) {
1827 super(label, text);
1928
2029 // "選択..."
21- openButton = new JButton(i18n.getString("button.select"), AdjustTime.createImageIcon("images/Open16.gif"));
22- openButton.addActionListener(this);
23- this.add(openButton);
30+ selectButton = new JButton(
31+ i18n.getString("button.select"),
32+ AdjustTime.createImageIcon("images/Open16.gif")
33+ );
34+ selectButton.addActionListener(this);
35+ this.add(selectButton);
2436 }
2537
2638 @Override
2739 public void actionPerformed(ActionEvent e) {
28- if (e.getSource() == openButton){
40+ if (e.getSource() == selectButton){
2941 System.out.println("ParameterPanelGpx.actionPerformed(openButton)");
3042 File sdir = new File(this.argField.getText());
3143 if (sdir.exists()) {
@@ -55,6 +67,40 @@ public class ParameterPanelGpx extends ParameterPanel implements ActionListener
5567 }
5668
5769 /**
70+ * "セグメント'trkseg'の最初の1ノードは無視する。"
71+ * @param label テキスト
72+ * @param params プロパティ
73+ */
74+ public void addNoFirstNode(String label, AppParameters params) {
75+ boolean selected = false;
76+ if (params.getProperty(AppParameters.GPX_NO_FIRST_NODE).equals("ON")) {
77+ selected = true;
78+ }
79+ noFirstNode = new JCheckBox(label, selected);
80+ }
81+
82+ public boolean isNoFirstNodeSelected() {
83+ return (noFirstNode != null) && noFirstNode.isSelected();
84+ }
85+
86+ /**
87+ * "生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も変換の対象にする"
88+ * @param label テキスト
89+ * @param params プロパティ
90+ */
91+ public void addGpxReuse(String label, AppParameters params) {
92+ boolean selected = false;
93+ if (params.getProperty(AppParameters.GPX_REUSE).equals("ON")) {
94+ selected = true;
95+ }
96+ gpxReuse = new JCheckBox(label, selected);
97+ }
98+
99+ public boolean isGpxReuseSelected() {
100+ return (gpxReuse != null) && gpxReuse.isSelected();
101+ }
102+
103+ /**
58104 * このフィールドに有効な値が設定されているかどうか
59105 * @return
60106 */
--- a/src/osm/jp/gpx/matchtime/gui/restamp/CardGpxFile.java
+++ b/src/osm/jp/gpx/matchtime/gui/restamp/CardGpxFile.java
@@ -2,12 +2,11 @@ package osm.jp.gpx.matchtime.gui.restamp;
22
33 import java.awt.BorderLayout;
44 import java.awt.Dimension;
5+import java.awt.Window;
56 import javax.swing.BoxLayout;
6-import javax.swing.JCheckBox;
77 import javax.swing.JLabel;
88 import javax.swing.JPanel;
99 import javax.swing.JTabbedPane;
10-import osm.jp.gpx.matchtime.gui.AdjustTime;
1110 import static osm.jp.gpx.matchtime.gui.AdjustTime.i18n;
1211 import osm.jp.gpx.matchtime.gui.Card;
1312 import osm.jp.gpx.matchtime.gui.PanelAction;
@@ -20,42 +19,47 @@ import osm.jp.gpx.matchtime.gui.ParameterPanelGpx;
2019 public class CardGpxFile extends Card implements PanelAction {
2120 //JPanel argsPanel; // パラメータ設定パネル (上部)
2221 ParameterPanelGpx arg_gpxFile;
23- JCheckBox noFirstNode; // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
24- JCheckBox gpxReuse; // 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
25- private final boolean gpxReuseV;
22+ //JCheckBox noFirstNode; // GPX: <trkseg>セグメントの最初の1ノードは無視する。 {ON | OFF}
23+ //JCheckBox gpxReuse; // 生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も対象にする。 {ON | OFF}
24+ //private final boolean gpxReuseV;
2625
2726 /**
2827 * コンストラクタ
2928 * @param tabbe parent panel
3029 * @param arg_gpxFile // 開始画像の基準時刻:
31- * @param noFirstNodeV
32- * @param gpxReuseV
30+ * @param owner
31+ * @param text
32+ * @param pre
33+ * @param next
3334 */
3435 public CardGpxFile(
3536 JTabbedPane tabbe,
3637 ParameterPanelGpx arg_gpxFile,
37- boolean noFirstNodeV,
38- boolean gpxReuseV
38+ Window owner,
39+ String text,
40+ int pre, int next
41+ //boolean noFirstNodeV,
42+ //boolean gpxReuseV
3943 ) {
40- super(tabbe, AdjustTime.i18n.getString("tab.400"), 2, 4);
44+ super(tabbe, text, 2, 4);
4145 this.arg_gpxFile = arg_gpxFile;
4246
47+ // 4. ヒモ付を行うGPXファイルを選択してください。
48+ // - フォルダを指定すると、フォルダ内のすべてのGPXファイルを対象とします。
4349 JPanel argsPanel = new JPanel();
4450 argsPanel.setLayout(new BoxLayout(argsPanel, BoxLayout.PAGE_AXIS));
4551 argsPanel.add(packLine(new JLabel(i18n.getString("label.400")), new JPanel()));
4652 argsPanel.add(arg_gpxFile);
4753
4854 // "セグメント'trkseg'の最初の1ノードは無視する。"
49- noFirstNode = new JCheckBox(
50- i18n.getString("label.420"),
51- noFirstNodeV
52- );
53- argsPanel.add(noFirstNode);
55+ if (arg_gpxFile.noFirstNode != null) {
56+ argsPanel.add(arg_gpxFile.noFirstNode);
57+ }
5458
5559 // "生成されたGPXファイル(ファイル名が'_.gpx'で終わるもの)も変換の対象にする"
56- gpxReuse = new JCheckBox(i18n.getString("label.430"), gpxReuseV);
57- gpxReuse.setEnabled(true);
58- argsPanel.add(gpxReuse);
60+ if (arg_gpxFile.gpxReuse != null) {
61+ argsPanel.add(arg_gpxFile.gpxReuse);
62+ }
5963
6064 JPanel space = new JPanel();
6165 space.setMinimumSize(new Dimension(40, 20));
@@ -63,17 +67,8 @@ public class CardGpxFile extends Card implements PanelAction {
6367 argsPanel.add(space);
6468
6569 this.mainPanel.add(argsPanel, BorderLayout.CENTER);
66- this.gpxReuseV = gpxReuseV;
6770 }
68-
69- /**
70- * "セグメント'trkseg'の最初の1ノードは無視する。"
71- * @return
72- */
73- public boolean getNoFirstNode() {
74- return noFirstNode.isSelected();
75- }
76-
71+
7772 /**
7873 * 入力条件が満たされているかどうか
7974 * @return
Show on old repository browser