diff --git a/src/main/java/osm/jp/gpx/matchtime/gui/SimpleCardListener.java b/src/main/java/osm/jp/gpx/matchtime/gui/SimpleCardListener.java index 691c776..4ff55b8 100644 --- a/src/main/java/osm/jp/gpx/matchtime/gui/SimpleCardListener.java +++ b/src/main/java/osm/jp/gpx/matchtime/gui/SimpleCardListener.java @@ -13,6 +13,7 @@ import osm.jp.gpx.AppParameters; import osm.jp.gpx.matchtime.gui.parameters.ParameterPanel; +import osm.jp.gpx.matchtime.gui.parameters.ParameterPanelTime; public class SimpleCardListener implements PropertyChangeListener { int cardNo; @@ -33,6 +34,9 @@ if (propertyName.equals(AppParameters.IMG_SOURCE_FOLDER)) { toEnable(cardNo, checkImgSource(param.argField.getText())); } + else if (propertyName.equals(AppParameters.GPX_BASETIME)) { + toEnable(cardNo, checkBasetime(param.argField.getText())); + } } /** @@ -64,7 +68,18 @@ return false; } - void toEnable(final int cardNo, final boolean enable) { + + /** + * "GPX_BASETIME"の設定内容が有効かどうかを判別する + * ・時刻フォーマット + * @param str + * @return + */ + boolean checkBasetime(String str) { + return ParameterPanelTime.isValid(str); + } + + void toEnable(final int cardNo, final boolean enable) { if ((cardNo >= 0) && (cardNo < cards.length)) { cardPanel.setEnabledAt(cardNo, enable); if ((cardNo -1) >= 0) { diff --git a/src/main/java/osm/jp/gpx/matchtime/gui/parameters/ParameterPanelTime.java b/src/main/java/osm/jp/gpx/matchtime/gui/parameters/ParameterPanelTime.java index 07c6ab8..7093ba3 100644 --- a/src/main/java/osm/jp/gpx/matchtime/gui/parameters/ParameterPanelTime.java +++ b/src/main/java/osm/jp/gpx/matchtime/gui/parameters/ParameterPanelTime.java @@ -31,7 +31,7 @@ */ public class ParameterPanelTime extends ParameterPanel { private static final long serialVersionUID = 1683226418990348336L; - SimpleDateFormat sdf = (SimpleDateFormat)DateFormat.getDateTimeInstance(); + static SimpleDateFormat sdf = (SimpleDateFormat)DateFormat.getDateTimeInstance(); ParameterPanelImageFile imageFile; // 基準時刻画像 @@ -211,14 +211,25 @@ if (text == null) { return false; } - - try { - sdf.applyPattern(Restamp.TIME_PATTERN); - sdf.parse(text); - return true; - } - catch (ParseException e) { - return false; - } + return isValid(text); + } + + /** + * 時刻フォーマットに適合しているか判定する + * @param str + * @return + */ + public static boolean isValid(String str) { + if (str != null) { + try { + sdf.applyPattern(Restamp.TIME_PATTERN); + sdf.parse(str); + return true; + } + catch (ParseException ex) { + return false; + } + } + return false; } } diff --git a/src/main/resources/i18n_ja_JP.properties b/src/main/resources/i18n_ja_JP.properties index 2385d63..920d0f3 100644 --- a/src/main/resources/i18n_ja_JP.properties +++ b/src/main/resources/i18n_ja_JP.properties @@ -1,68 +1,68 @@ -dialog.quit=\u7d42\u4e86 -dialog.cancel=\u30ad\u30e3\u30f3\u30bb\u30eb -dialog.msg1=\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d42\u4e86\u3057\u307e\u3059\u3002 -dialog.select=\u9078\u629e +dialog.quit=\u7D42\u4E86 +dialog.cancel=\u30AD\u30E3\u30F3\u30BB\u30EB +dialog.msg1=\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002 +dialog.select=\u9078\u629E -menu.tools=\u30c4\u30fc\u30eb +menu.tools=\u30C4\u30FC\u30EB menu.restamp=Restamp -button.close=\u9589\u3058\u308b +button.close=\u9589\u3058\u308B -menu.quit=\u7d42\u4e86... -button.next=\u6b21\u3078 -button.previous=\u623b\u308b -button.execute=\u51e6\u7406\u5b9f\u884c -button.select=\u9078\u629e... -button.update=\u5909\u66f4... -button.reset=\u518d\u8a2d\u5b9a... +menu.quit=\u7D42\u4E86... +button.next=\u6B21\u3078 +button.previous=\u623B\u308B +button.execute=\u51E6\u7406\u5B9F\u884C +button.select=\u9078\u629E... +button.update=\u5909\u66F4... +button.reset=\u518D\u8A2D\u5B9A... -tab.100=1. \u753b\u50cf\u5143\u306e\u30d5\u30a1\u30a4\u30eb\u30d5\u30a9\u30eb\u30c0 -label.100=

1. \u4f4d\u7f6e\u60c5\u5831\u3092\u4ed8\u52a0\u3057\u305f\u3044\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u30d5\u30a9\u30eb\u30c0\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002

-label.110=\u5bfe\u8c61\u30d5\u30a9\u30eb\u30c0 +tab.100=1. \u753B\u50CF\u30D5\u30A9\u30EB\u30C0\u306E\u9078\u629E +label.100=

1. \u4F4D\u7F6E\u60C5\u5831\u3092\u4ED8\u52A0\u3057\u305F\u3044\u753B\u50CF\u30D5\u30A1\u30A4\u30EB\u304C\u683C\u7D0D\u3055\u308C\u3066\u3044\u308B\u30D5\u30A9\u30EB\u30C0\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002

+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=

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 -label.230=\u30d5\u30a1\u30a4\u30eb\u66f4\u65b0\u65e5\u6642\u3092\u57fa\u6e96\u306b\u3059\u308b +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 +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=

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) +tab.300=2a. \u57FA\u6E96\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) -tab.400=3. GPX\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e -label.400=

4. \u30d2\u30e2\u4ed8\u3092\u884c\u3046GPX\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002

-label.410=GPX\u30d5\u30a9\u30eb\u30c0 -label.420=\u30bb\u30b0\u30e1\u30f3\u30c8'trkseg'\u306e\u6700\u521d\u306e\uff11\u30ce\u30fc\u30c9\u306f\u7121\u8996\u3059\u308b -label.430=\u751f\u6210\u3055\u308c\u305fGPX\u30d5\u30a1\u30a4\u30eb\uff08\u30d5\u30a1\u30a4\u30eb\u540d\u304c'_.gpx'\u3067\u7d42\u308f\u308b\u3082\u306e\uff09\u3082\u5909\u63db\u306e\u5bfe\u8c61\u306b\u3059\u308b +tab.400=3. GPX\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E +label.400=

4. \u30D2\u30E2\u4ED8\u3092\u884C\u3046GPX\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002

+label.410=GPX\u30D5\u30A9\u30EB\u30C0 +label.420=\u30BB\u30B0\u30E1\u30F3\u30C8'trkseg'\u306E\u6700\u521D\u306E\uFF11\u30CE\u30FC\u30C9\u306F\u7121\u8996\u3059\u308B +label.430=\u751F\u6210\u3055\u308C\u305FGPX\u30D5\u30A1\u30A4\u30EB\uFF08\u30D5\u30A1\u30A4\u30EB\u540D\u304C'_.gpx'\u3067\u7D42\u308F\u308B\u3082\u306E\uFF09\u3082\u5909\u63DB\u306E\u5BFE\u8C61\u306B\u3059\u308B -tab.500=4. EXIF\u5909\u63db\u306e\u5b9f\u884c -label.500=EXIF\u5909\u63db\u3092\u884c\u3046\u304b\u3069\u3046\u304b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 -label.501=EXIF\u5909\u63db\u3092\u884c\u3046\u5834\u5408\u306b\u306f\u3001\u5909\u63db\u30d5\u30a1\u30a4\u30eb\u3092\u51fa\u529b\u3059\u308b\u30d5\u30a9\u30eb\u30c0\u3082\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 -label.502=\u51fa\u529b\u30d5\u30a9\u30eb\u30c0\u306b\u306f\u3001\u66f8\u304d\u8fbc\u307f\u6a29\u9650\u3068\u3001\u5341\u5206\u306a\u7a7a\u304d\u5bb9\u91cf\u304c\u5fc5\u8981\u3067\u3059\u3002 -label.510=IMG\u306e\u5909\u63db\u3092\u3059\u308b -label.520=GPX\u30d5\u30a1\u30a4\u30eb\u6642\u9593\u5916\u306e\u30d5\u30a1\u30a4\u30eb\u3082\u30b3\u30d4\u30fc\u3059\u308b -label.530=\u51fa\u529b\u30d5\u30a9\u30eb\u30c0 -label.540=EXIF\u306e\u5909\u63db\u3092\u3059\u308b -label.550=\u30dd\u30a4\u30f3\u30c8\u30de\u30fc\u30ab\u30fc\u3092GPX\u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\u3059\u308b -label.560=\u30bd\u30fc\u30b9GPX\u306e\u3092\u7121\u8996\u3059\u308b -label.570=\u51fa\u529bGPX\u306b\u3092\u4e0a\u66f8\u304d\u3059\u308b +tab.500=4. EXIF\u5909\u63DB\u306E\u5B9F\u884C +label.500=EXIF\u5909\u63DB\u3092\u884C\u3046\u304B\u3069\u3046\u304B\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +label.501=EXIF\u5909\u63DB\u3092\u884C\u3046\u5834\u5408\u306B\u306F\u3001\u5909\u63DB\u30D5\u30A1\u30A4\u30EB\u3092\u51FA\u529B\u3059\u308B\u30D5\u30A9\u30EB\u30C0\u3082\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +label.502=\u51FA\u529B\u30D5\u30A9\u30EB\u30C0\u306B\u306F\u3001\u66F8\u304D\u8FBC\u307F\u6A29\u9650\u3068\u3001\u5341\u5206\u306A\u7A7A\u304D\u5BB9\u91CF\u304C\u5FC5\u8981\u3067\u3059\u3002 +label.510=IMG\u306E\u5909\u63DB\u3092\u3059\u308B +label.520=GPX\u30D5\u30A1\u30A4\u30EB\u6642\u9593\u5916\u306E\u30D5\u30A1\u30A4\u30EB\u3082\u30B3\u30D4\u30FC\u3059\u308B +label.530=\u51FA\u529B\u30D5\u30A9\u30EB\u30C0 +label.540=EXIF\u306E\u5909\u63DB\u3092\u3059\u308B +label.550=\u30DD\u30A4\u30F3\u30C8\u30DE\u30FC\u30AB\u30FC\u3092GPX\u30D5\u30A1\u30A4\u30EB\u306B\u51FA\u529B\u3059\u308B +label.560=\u30BD\u30FC\u30B9GPX\u306E\u3092\u7121\u8996\u3059\u308B +label.570=\u51FA\u529BGPX\u306B\u3092\u4E0A\u66F8\u304D\u3059\u308B -tab.restamp.400=4. \u5909\u63db\u306e\u5b9f\u884c +tab.restamp.400=4. \u5909\u63DB\u306E\u5B9F\u884C -msg.100=GPX\u30d5\u30a1\u30a4\u30eb\u307e\u305f\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002('%s') -msg.110=\u5bfe\u8c61\u3068\u306a\u308bGPX\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093('%s') -msg.120=\u8907\u6570\u306eGPX\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u3068\u304d\u306b\u306f\u3001'IMG.OUTPUT_ALL'\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002 -msg.130='%s'\u306e\u66f8\u5f0f\u304c\u9055\u3044\u307e\u3059(%s) -msg.140='%s'\u306bEXIF\u60c5\u5831\u304c\u3042\u308a\u307e\u305b\u3093 +msg.100=GPX\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3002('%s') +msg.110=\u5BFE\u8C61\u3068\u306A\u308BGPX\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093('%s') +msg.120=\u8907\u6570\u306EGPX\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308B\u3068\u304D\u306B\u306F\u3001'IMG.OUTPUT_ALL'\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002 +msg.130='%s'\u306E\u66F8\u5F0F\u304C\u9055\u3044\u307E\u3059(%s) +msg.140='%s'\u306BEXIF\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093 -msg.200=[error] \u304c\u5b58\u5728\u3057\u307e\u305b\u3093 -msg.210=[error] \u304c\u30d5\u30a9\u30eb\u30c0\u3058\u3083\u306a\u3044 -msg.220=[error] \u304c\u5b58\u5728\u3057\u307e\u305b\u3093 -msg.230=[error] \u304c\u30d5\u30a1\u30a4\u30eb\u3058\u3083\u306a\u3044 -msg.240=[error] \u304c\u5b58\u5728\u3057\u307e\u305b\u3093 -msg.250=[error] \u304c\u30d5\u30a1\u30a4\u30eb\u3058\u3083\u306a\u3044 +msg.200=[error] \u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +msg.210=[error] \u304C\u30D5\u30A9\u30EB\u30C0\u3058\u3083\u306A\u3044 +msg.220=[error] \u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +msg.230=[error] \u304C\u30D5\u30A1\u30A4\u30EB\u3058\u3083\u306A\u3044 +msg.240=[error] \u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +msg.250=[error] \u304C\u30D5\u30A1\u30A4\u30EB\u3058\u3083\u306A\u3044