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.

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

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

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();