Restamp 終了の画像選択と時刻の設定画面
1 parent a26dcd4 commit d306702ac3cf27944a750ddea6526c5ad575ff8e
@haya4 haya4 authored on 14 Oct 2019
Showing 5 changed files
View
1
■■■■
src/i18n.properties
label.110=Image Folder
 
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=<html><p>2. Choose an image whose exact shooting time can be known.</p><ul><li>If the camera's clock is accurate, you can choose any image.</li></ul>
label.210=Reference time image
label.220=Based on EXIF date and time
label.230=Based on FILE UPDATE time
View
2
■■■
src/i18n_ja_JP.properties
label.110=\u5bfe\u8c61\u30d5\u30a9\u30eb\u30c0
 
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=<html><p>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</p><ul><li>\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</li><li>\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</li></ul>
label.210=\u57fa\u6e96\u6642\u523b\u753b\u50cf
label.220=EXIF\u306e\u65e5\u6642\u3092\u57fa\u6e96\u306b\u3059\u308b
label.230=\u30d5\u30a1\u30a4\u30eb\u66f4\u65b0\u65e5\u6642\u3092\u57fa\u6e96\u306b\u3059\u308b
 
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=<html><p>3. \u6b63\u78ba\u306a\u64ae\u5f71\u6642\u523b\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002</p><ul><li>\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</li></ul>
label.310=\u57fa\u6e96\u6642\u523b
label.restamp.310=\u57fa\u6e96\u6642\u523b(\u958b\u59cb\u753b\u50cf)
 
View
96
src/osm/jp/gpx/matchtime/gui/restamp/CardFirstFile.java
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
* @param arg_basetime // 開始画像の基準時刻:
JTabbedPane tabbe,
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);
}
}
View
84
src/osm/jp/gpx/matchtime/gui/restamp/CardImageFile.java 0 → 100644
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() {
; // 何もしない
}
}
View
src/osm/jp/gpx/matchtime/gui/restamp/RestampDialog.java