diff --git a/src/i18n.properties b/src/i18n.properties
index 9603e80..ff22af5 100644
--- a/src/i18n.properties
+++ b/src/i18n.properties
@@ -21,6 +21,7 @@
tab.200=2. Set correct shooting time
tab.restamp.200=2. Set correct shooting time (start)
+tab.restamp.250=3. Set correct shooting time (end)
label.200=
2. Choose an image whose exact shooting time can be known.
- If the camera's clock is accurate, you can choose any image.
label.210=Reference time image
label.220=Based on EXIF date and time
diff --git a/src/i18n_ja_JP.properties b/src/i18n_ja_JP.properties
index e5c58c1..e7d3070 100644
--- a/src/i18n_ja_JP.properties
+++ b/src/i18n_ja_JP.properties
@@ -21,6 +21,7 @@
tab.200=2. \u57fa\u6e96\u3068\u3059\u308b\u753b\u50cf\u306e\u9078\u629e
tab.restamp.200=2. \u57fa\u6e96\u3068\u3059\u308b\u753b\u50cf(\u958b\u59cb\u753b\u50cf)\u306e\u9078\u629e
+tab.restamp.250=3. \u57fa\u6e96\u3068\u3059\u308b\u753b\u50cf(\u7d42\u4e86\u753b\u50cf)\u306e\u9078\u629e
label.200=2. \u6b63\u78ba\u306a\u64ae\u5f71\u6642\u523b\u304c\u5224\u660e\u3067\u304d\u308b\u753b\u50cf\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002
- \u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u306e\u6642\u8a08\u753b\u9762\uff08\u79d2\u304c\u5224\u5225\u3067\u304d\u308b\u3053\u3068\uff09\u3092\u64ae\u5f71\u3057\u305f\u753b\u50cf
- \u30ab\u30e1\u30e9\u306e\u6642\u8a08\u304c\u6b63\u78ba\u306a\u3089\u3070\u3001\u3069\u306e\u753b\u50cf\u3092\u9078\u3093\u3067\u3082\u69cb\u3044\u307e\u305b\u3093\u3002
label.210=\u57fa\u6e96\u6642\u523b\u753b\u50cf
label.220=EXIF\u306e\u65e5\u6642\u3092\u57fa\u6e96\u306b\u3059\u308b
@@ -28,6 +29,7 @@
tab.300=2a. \u672c\u5f53\u306e\u6642\u523b\u3092\u8a2d\u5b9a
tab.restamp.300=2a. \u958b\u59cb\u753b\u50cf\u306e\u672c\u5f53\u306e\u6642\u523b\u3092\u8a2d\u5b9a
+tab.restamp.350=3a. \u7d42\u4e86\u753b\u50cf\u306e\u672c\u5f53\u306e\u6642\u523b\u3092\u8a2d\u5b9a
label.300=3. \u6b63\u78ba\u306a\u64ae\u5f71\u6642\u523b\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
- \u30ab\u30e1\u30e9\u306e\u6642\u8a08\u304c\u6b63\u78ba\u306a\u3089\u3070\u3001\u8a2d\u5b9a\u3092\u5909\u66f4\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002
label.310=\u57fa\u6e96\u6642\u523b
label.restamp.310=\u57fa\u6e96\u6642\u523b(\u958b\u59cb\u753b\u50cf)
diff --git a/src/osm/jp/gpx/matchtime/gui/restamp/CardFirstFile.java b/src/osm/jp/gpx/matchtime/gui/restamp/CardFirstFile.java
index 9913029..cf2dcf5 100644
--- a/src/osm/jp/gpx/matchtime/gui/restamp/CardFirstFile.java
+++ b/src/osm/jp/gpx/matchtime/gui/restamp/CardFirstFile.java
@@ -1,28 +1,14 @@
package osm.jp.gpx.matchtime.gui.restamp;
-import java.awt.BorderLayout;
-import java.awt.Dimension;
import java.awt.Dialog;
-import javax.swing.BoxLayout;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
import javax.swing.JTabbedPane;
-import osm.jp.gpx.matchtime.gui.AdjustTime;
-import static osm.jp.gpx.matchtime.gui.AdjustTime.i18n;
-import osm.jp.gpx.matchtime.gui.Card;
-import osm.jp.gpx.matchtime.gui.PanelAction;
-import osm.jp.gpx.matchtime.gui.ParameterPanelImageFile;
import osm.jp.gpx.matchtime.gui.ParameterPanelTime;
/**
* [基準画像(開始)]選択パネル
* @author yuu
*/
-public class CardFirstFile extends Card implements PanelAction {
- //JPanel argsPanel; // パラメータ設定パネル (上部)
- ParameterPanelImageFile arg_baseTimeImg;
- ParameterPanelTime arg_basetime;
-
+public class CardFirstFile extends CardImageFile {
/**
* コンストラクタ
* @param tabbe parent panel
@@ -34,43 +20,6 @@
ParameterPanelTime arg_basetime,
Dialog owner
) {
- super(tabbe, AdjustTime.i18n.getString("tab.restamp.200"), 0, 2);
- arg_basetime.setOwner(owner);
- this.arg_baseTimeImg = arg_basetime.getImageFile();
- this.arg_basetime = arg_basetime;
-
- JPanel argsPanel = new JPanel();
- argsPanel.setLayout(new BoxLayout(argsPanel, BoxLayout.PAGE_AXIS));
- argsPanel.add(packLine(new JLabel(i18n.getString("label.200")), new JPanel()));
- argsPanel.add(arg_baseTimeImg);
-
- JPanel separater = new JPanel();
- separater.setMinimumSize(new Dimension(40, 20));
- argsPanel.add(separater);
-
- argsPanel.add(packLine(new JLabel(i18n.getString("label.300")), new JPanel()));
- argsPanel.add(arg_basetime);
-
- JPanel space = new JPanel();
- space.setMinimumSize(new Dimension(40, 20));
- space.setMaximumSize(new Dimension(40, Short.MAX_VALUE));
- argsPanel.add(space);
-
- this.mainPanel.add(argsPanel, BorderLayout.CENTER);
- }
-
- /**
- * 入力条件が満たされているかどうか
- * @return
- */
- @Override
- public boolean isEnable() {
- return (arg_baseTimeImg.isEnable() && arg_basetime.isEnable());
- }
-
- @Override
- @SuppressWarnings("empty-statement")
- public void openAction() {
- ; // 何もしない
+ super(tabbe, arg_basetime, owner, true);
}
}
diff --git a/src/osm/jp/gpx/matchtime/gui/restamp/CardImageFile.java b/src/osm/jp/gpx/matchtime/gui/restamp/CardImageFile.java
new file mode 100644
index 0000000..ca65bf0
--- /dev/null
+++ b/src/osm/jp/gpx/matchtime/gui/restamp/CardImageFile.java
@@ -0,0 +1,83 @@
+package osm.jp.gpx.matchtime.gui.restamp;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.Dialog;
+import javax.swing.BoxLayout;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+import osm.jp.gpx.matchtime.gui.AdjustTime;
+import static osm.jp.gpx.matchtime.gui.AdjustTime.i18n;
+import osm.jp.gpx.matchtime.gui.Card;
+import osm.jp.gpx.matchtime.gui.PanelAction;
+import osm.jp.gpx.matchtime.gui.ParameterPanelImageFile;
+import osm.jp.gpx.matchtime.gui.ParameterPanelTime;
+
+/**
+ * [基準画像(開始/終了)]選択パネル
+ * @author yuu
+ */
+public class CardImageFile extends Card implements PanelAction {
+ //JPanel argsPanel; // パラメータ設定パネル (上部)
+ ParameterPanelImageFile arg_baseTimeImg;
+ ParameterPanelTime arg_basetime;
+
+ /**
+ * コンストラクタ
+ * @param tabbe parent panel
+ * @param arg_basetime // 開始画像の基準時刻:
+ * @param owner
+ * @param first // true=開始画像, false=終了画像
+ */
+ public CardImageFile(
+ JTabbedPane tabbe,
+ ParameterPanelTime arg_basetime,
+ Dialog owner,
+ boolean first
+ ) {
+ super(
+ tabbe,
+ AdjustTime.i18n.getString(first ? "tab.restamp.200" : "tab.restamp.250"),
+ (first ? 0 : 1),
+ (first ? 2 : 3)
+ );
+ arg_basetime.setOwner(owner);
+ this.arg_baseTimeImg = arg_basetime.getImageFile();
+ this.arg_basetime = arg_basetime;
+
+ JPanel argsPanel = new JPanel();
+ argsPanel.setLayout(new BoxLayout(argsPanel, BoxLayout.PAGE_AXIS));
+ argsPanel.add(packLine(new JLabel(i18n.getString("label.200")), new JPanel()));
+ argsPanel.add(arg_baseTimeImg);
+
+ JPanel separater = new JPanel();
+ separater.setMinimumSize(new Dimension(40, 20));
+ argsPanel.add(separater);
+
+ argsPanel.add(packLine(new JLabel(i18n.getString("label.300")), new JPanel()));
+ argsPanel.add(arg_basetime);
+
+ JPanel space = new JPanel();
+ space.setMinimumSize(new Dimension(40, 20));
+ space.setMaximumSize(new Dimension(40, Short.MAX_VALUE));
+ argsPanel.add(space);
+
+ this.mainPanel.add(argsPanel, BorderLayout.CENTER);
+ }
+
+ /**
+ * 入力条件が満たされているかどうか
+ * @return
+ */
+ @Override
+ public boolean isEnable() {
+ return (arg_baseTimeImg.isEnable() && arg_basetime.isEnable());
+ }
+
+ @Override
+ @SuppressWarnings("empty-statement")
+ public void openAction() {
+ ; // 何もしない
+ }
+}
diff --git a/src/osm/jp/gpx/matchtime/gui/restamp/RestampDialog.java b/src/osm/jp/gpx/matchtime/gui/restamp/RestampDialog.java
index 81640aa..39ffe29 100644
--- a/src/osm/jp/gpx/matchtime/gui/restamp/RestampDialog.java
+++ b/src/osm/jp/gpx/matchtime/gui/restamp/RestampDialog.java
@@ -34,6 +34,8 @@
ParameterPanelFolder arg1_srcFolder; // 対象フォルダ
ParameterPanelImageFile arg2_baseTimeImg; // 開始画像ファイルパス
ParameterPanelTime arg2_basetime; // 開始画像の基準時刻:
+ ParameterPanelImageFile arg3_baseTimeImg; // 終了画像ファイルパス
+ ParameterPanelTime arg3_basetime; // 終了画像の基準時刻:
AppParameters params;
//}}
@@ -116,7 +118,7 @@
//---------------------------------------------------------------------
params = new AppParameters();
- cards = new Card[2];
+ cards = new Card[3];
cardPanel = new JTabbedPane(JTabbedPane.LEFT);
mainPanel.add(cardPanel, BorderLayout.CENTER);
int cardNo = 0;
@@ -171,7 +173,7 @@
}
);
- CardFirstFile card = new CardFirstFile(cardPanel, arg2_basetime, this);
+ CardImageFile card = new CardImageFile(cardPanel, arg2_basetime, this, true);
cardPanel.addTab(card.getTitle(), card);
cardPanel.setEnabledAt(cardNo, false);
cards[cardNo] = card;
@@ -179,16 +181,36 @@
}
//---------------------------------------------------------------------
- // 2a. 開始画像の本当の時刻を設定の入力画面
- /*
+ // 3. 最終画像の本当の時刻を設定の入力画面
{
- CardCorectTime card = new CardCorectTime(cardPanel, arg2_basetime);
+ // 基準時刻画像
+ arg3_baseTimeImg = new ParameterPanelImageFile(
+ i18n.getString("label.210") +": ",
+ null,
+ arg1_srcFolder
+ );
+
+ // 3a. 基準時刻:
+ arg3_basetime = new ParameterPanelTime(
+ i18n.getString("label.310"),
+ null,
+ arg3_baseTimeImg
+ );
+ arg3_basetime.argField.getDocument().addDocumentListener(
+ new SimpleDocumentListener() {
+ @Override
+ public void update(DocumentEvent e) {
+ toEnable(2, arg3_basetime.isEnable());
+ }
+ }
+ );
+
+ CardImageFile card = new CardImageFile(cardPanel, arg3_basetime, this, false);
cardPanel.addTab(card.getTitle(), card);
cardPanel.setEnabledAt(cardNo, false);
cards[cardNo] = card;
cardNo++;
}
- */
//{{REGISTER_LISTENERS
SymWindow aSymWindow = new SymWindow();