• R/O
  • SSH
  • HTTPS

charactermanaj: コミット


コミットメタ情報

リビジョン93 (tree)
日時2014-01-05 08:11:40
作者seraphy

ログメッセージ

ver0.995 release

変更サマリ

差分

--- trunk/src/charactermanaj/model/CharacterDataChangeListener.java (nonexistent)
+++ trunk/src/charactermanaj/model/CharacterDataChangeListener.java (revision 93)
@@ -0,0 +1,9 @@
1+package charactermanaj.model;
2+
3+import java.util.EventListener;
4+
5+public interface CharacterDataChangeListener extends EventListener {
6+
7+ void notifyChangeCharacterData(CharacterDataChangeEvent e);
8+
9+}
--- trunk/src/charactermanaj/model/CharacterDataChangeObserver.java (nonexistent)
+++ trunk/src/charactermanaj/model/CharacterDataChangeObserver.java (revision 93)
@@ -0,0 +1,64 @@
1+package charactermanaj.model;
2+
3+import javax.swing.event.EventListenerList;
4+
5+
6+/**
7+ * キャラクターデータが変更されたことを通知するためのメカニズム
8+ *
9+ * @author seraphy
10+ *
11+ */
12+public abstract class CharacterDataChangeObserver {
13+
14+ private static CharacterDataChangeObserver inst = new CharacterDataChangeObserverImpl();
15+
16+ public static CharacterDataChangeObserver getDefault() {
17+ return inst;
18+ }
19+
20+ public abstract void addCharacterDataChangeListener(
21+ CharacterDataChangeListener l);
22+
23+ public abstract void removeCharacterDataChangeListener(
24+ CharacterDataChangeListener l);
25+
26+ public abstract void notifyCharacterDataChange(CharacterDataChangeEvent e);
27+
28+ public void notifyCharacterDataChange(Object wnd, CharacterData cd,
29+ boolean changeStructure, boolean reloadPartsAndFavorites) {
30+ if (cd == null) {
31+ throw new IllegalArgumentException();
32+ }
33+ notifyCharacterDataChange(new CharacterDataChangeEvent(wnd, cd,
34+ changeStructure, reloadPartsAndFavorites));
35+ }
36+}
37+
38+class CharacterDataChangeObserverImpl extends CharacterDataChangeObserver {
39+
40+ private EventListenerList listeners = new EventListenerList();
41+
42+ @Override
43+ public void addCharacterDataChangeListener(CharacterDataChangeListener l) {
44+ listeners.add(CharacterDataChangeListener.class, l);
45+ }
46+
47+ @Override
48+ public void removeCharacterDataChangeListener(CharacterDataChangeListener l) {
49+ listeners.remove(CharacterDataChangeListener.class, l);
50+ }
51+
52+ @Override
53+ public void notifyCharacterDataChange(CharacterDataChangeEvent e) {
54+ if (e == null) {
55+ throw new IllegalArgumentException();
56+ }
57+ CharacterDataChangeListener[] lst = listeners
58+ .getListeners(CharacterDataChangeListener.class);
59+ for (CharacterDataChangeListener l : lst) {
60+ l.notifyChangeCharacterData(e);
61+ }
62+ }
63+}
64+
--- trunk/src/charactermanaj/model/CharacterDataChangeEvent.java (nonexistent)
+++ trunk/src/charactermanaj/model/CharacterDataChangeEvent.java (revision 93)
@@ -0,0 +1,34 @@
1+package charactermanaj.model;
2+
3+import java.util.EventObject;
4+
5+public class CharacterDataChangeEvent extends EventObject {
6+
7+ private static final long serialVersionUID = -99746684880598436L;
8+
9+ private CharacterData characterData;
10+
11+ private boolean changeStructure;
12+
13+ private boolean reloadPartsAndFavorites;
14+
15+ public CharacterDataChangeEvent(Object src, CharacterData characterData,
16+ boolean changeStructure, boolean reloadPartsAndFavorites) {
17+ super(src);
18+ this.characterData = characterData;
19+ this.changeStructure = changeStructure;
20+ this.reloadPartsAndFavorites = reloadPartsAndFavorites;
21+ }
22+
23+ public CharacterData getCharacterData() {
24+ return characterData;
25+ }
26+
27+ public boolean isChangeStructure() {
28+ return changeStructure;
29+ }
30+
31+ public boolean isReloadPartsAndFavorites() {
32+ return reloadPartsAndFavorites;
33+ }
34+}
--- trunk/src/charactermanaj/Main.java (revision 92)
+++ trunk/src/charactermanaj/Main.java (revision 93)
@@ -2,6 +2,7 @@
22
33 import java.awt.Font;
44 import java.io.File;
5+import java.lang.Thread.UncaughtExceptionHandler;
56 import java.lang.reflect.Method;
67 import java.util.logging.Level;
78 import java.util.logging.Logger;
@@ -74,10 +75,32 @@
7475 // ログの設定を読み取る.(OSにより、設定ファイルの位置が異なることに注意)
7576 ApplicationLoggerConfigurator.configure();
7677
77- // SwingのEDT内の例外ハンドラの設定 (ロギングするだけ)
78- System.setProperty("sun.awt.exception.handler",
79- AWTExceptionLoggingHandler.class.getName());
78+ if (getJavaVersion() >= 1.7) {
79+ // java7以降は、sun.awt.exception.handlerが使えないので、
80+ // EDTスレッドで未処理例外ハンドラを明示的に設定する.
81+ final AWTExceptionLoggingHandler logHandler = new AWTExceptionLoggingHandler();
82+ SwingUtilities.invokeLater(new Runnable() {
83+ public void run() {
84+ final UncaughtExceptionHandler handler = Thread
85+ .getDefaultUncaughtExceptionHandler();
86+ Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
87+ public void uncaughtException(Thread t, Throwable ex) {
88+ logHandler.handle(ex);
89+ if (handler != null) {
90+ handler.uncaughtException(t, ex);
91+ }
92+ }
93+ });
94+ }
95+ });
8096
97+ } else {
98+ // SwingのEDT内の例外ハンドラの設定 (ロギングするだけ)
99+ // (ただし、unofficial trickである.)
100+ System.setProperty("sun.awt.exception.handler",
101+ AWTExceptionLoggingHandler.class.getName());
102+ }
103+
81104 } catch (Throwable ex) {
82105 // ロガーの準備に失敗した場合はロガーがないかもなので
83106 // コンソールに出力する.
@@ -92,7 +115,7 @@
92115 *
93116 * @return バージョン
94117 */
95- private static double getJavaVersion() {
118+ public static double getJavaVersion() {
96119 try {
97120 String version = System.getProperty("java.version");
98121 String[] versions = version.split("\\.");
--- trunk/src/charactermanaj/ui/MainFrame.java (revision 92)
+++ trunk/src/charactermanaj/ui/MainFrame.java (revision 93)
@@ -70,6 +70,9 @@
7070 import charactermanaj.graphics.io.UkagakaImageSaveHelper;
7171 import charactermanaj.model.AppConfig;
7272 import charactermanaj.model.CharacterData;
73+import charactermanaj.model.CharacterDataChangeEvent;
74+import charactermanaj.model.CharacterDataChangeListener;
75+import charactermanaj.model.CharacterDataChangeObserver;
7376 import charactermanaj.model.ColorGroup;
7477 import charactermanaj.model.IndependentPartsSetInfo;
7578 import charactermanaj.model.PartsCategory;
@@ -120,7 +123,10 @@
120123 *
121124 * @author seraphy
122125 */
123-public class MainFrame extends JFrame implements FavoritesChangeListener {
126+public class MainFrame extends JFrame
127+ implements
128+ FavoritesChangeListener,
129+ CharacterDataChangeListener {
124130
125131 private static final long serialVersionUID = 1L;
126132
@@ -272,157 +278,43 @@
272278 }
273279
274280 /**
275- * インポートされパーツが増減した可能性がある場合に呼び出される.
276- *
277- * @param cd
278- * 対象
279- * @param newCd
280- * インポートされたcd
281- * @param caller
282- * 呼び出しもとメインフレーム
283- * @throws IOException
284- * 例外
281+ * キャラクターデータが変更された場合に通知される.
285282 */
286- public static void notifyImportedPartsOrFavorites(
287- final CharacterData cd,
288- final CharacterData newCd,
289- final Component caller
290- ) throws IOException {
291- if (cd == null || newCd == null || caller == null) {
292- throw new IllegalArgumentException();
293- }
283+ public void notifyChangeCharacterData(final CharacterDataChangeEvent e) {
284+ final CharacterData cd = e.getCharacterData();
285+ if (cd != null
286+ && cd.getDocBase().equals(
287+ MainFrame.this.characterData.getDocBase())) {
288+ SwingUtilities.invokeLater(new Runnable() {
289+ public void run() {
290+ try {
291+ Cursor oldCur = getCursor();
292+ setCursor(Cursor
293+ .getPredefinedCursor(Cursor.WAIT_CURSOR));
294+ try {
295+ if (e.isChangeStructure()) {
296+ // 現在情報の保存
297+ saveWorkingSet();
294298
295- if (!cd.isValid() || !newCd.isValid()) {
296- // 変更前もしくは変更後が無効なキャラクターデータであれば
297- // 反映する必要ない.
298- return;
299- }
300- logger.log(Level.FINE, "parts imported for active profiles: " + newCd);
299+ // 画面構成の再構築
300+ initComponent(cd);
301+ }
301302
303+ if (e.isReloadPartsAndFavorites()) {
304+ // パーツとお気に入りのリロード
305+ reloadPartsAndFavorites(cd, true);
306+ }
302307
303- if ( !cd.isSameStructure(newCd)) {
304- // キャラクターデータそのものが変更されている場合
305- notifyChangeCharacterData(cd, newCd, caller);
306-
307- } else {
308- // パーツ構成は変更されていない場合
309-
310- // Frameのうち、ネイティブリソースと関連づけられているアクティブなフレームを調査
311- for (Frame frame : JFrame.getFrames()) {
312- if (frame.isDisplayable() && frame instanceof MainFrame) {
313- final MainFrame mainFrame = (MainFrame) frame;
314- if (mainFrame.characterData == null || !mainFrame.characterData.isValid()) {
315- // 無効なキャラクターデータを保持している場合は、そのメインフレームは処理対象外
316- continue;
317- }
318- SwingUtilities.invokeLater(new Runnable() {
319- public void run() {
320- // パーツ及びお気に入りを再取得する場合.
321- try {
322- Cursor oldCur = mainFrame.getCursor();
323- mainFrame.setCursor(Cursor
324- .getPredefinedCursor(Cursor.WAIT_CURSOR));
325- try {
326- mainFrame.reloadPartsAndFavorites(newCd, true);
327-
328- } finally {
329- mainFrame.setCursor(oldCur != null ? oldCur : Cursor.getDefaultCursor());
330- }
331-
332- } catch (Exception ex) {
333- ErrorMessageHelper.showErrorDialog(mainFrame, ex);
334- }
308+ } finally {
309+ setCursor(oldCur != null ? oldCur : Cursor
310+ .getDefaultCursor());
335311 }
336- });
337- }
338- }
339- }
340- }
341312
342- /**
343- * キャラクターデータが変更されたことを通知される.<br>
344- *
345- * @param cd
346- * キャラクターデータ(変更前)
347- * @param newCd
348- * キャラクターデータ(変更後)
349- * @param caller
350- * 呼び出しもとコンポーネント(ウェイトカーソル表示用)
351- * @param structureCompatible
352- * 構造が同一であるか?
353- * @throws IOException
354- * 新しいキャラクターデータのパーツセットのロードに失敗した場合 (メインフレームは変更されていません.)
355- */
356- public static void notifyChangeCharacterData(
357- final CharacterData cd,
358- final CharacterData newCd,
359- final Component caller
360- ) throws IOException {
361- if (cd == null || newCd == null || caller == null) {
362- throw new IllegalArgumentException();
363- }
364-
365- if (!cd.isValid() || !newCd.isValid()) {
366- // 変更前もしくは変更後が無効なキャラクターデータであれば
367- // 反映する必要ない.
368- return;
369- }
370- logger.log(Level.FINE, "change active profile: " + newCd);
371-
372- if (!ProfileListManager.isUsingCharacterData(cd)) {
373- // 使用中のプロファイルではないので何もしない.
374- return;
375- }
376-
377- caller.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
378- try {
379- // キャラクターデータが、まだ読み込まれていなければ読み込む.
380- if (!newCd.isPartsLoaded()) {
381- ProfileListManager.loadCharacterData(newCd);
382- ProfileListManager.loadFavorites(newCd);
383- }
384-
385- // Frameのうち、ネイティブリソースと関連づけられているアクティブなフレームを調査
386- for (Frame frame : JFrame.getFrames()) {
387- if (frame.isDisplayable() && frame instanceof MainFrame) {
388- final MainFrame mainFrame = (MainFrame) frame;
389- if (mainFrame.characterData == null || !mainFrame.characterData.isValid()) {
390- // 無効なキャラクターデータを保持している場合は、そのメインフレームは処理対象外
391- continue;
313+ } catch (Exception ex) {
314+ ErrorMessageHelper.showErrorDialog(MainFrame.this, ex);
392315 }
393-
394- // メインフレームが保持しているキャラクターデータのdocbaseと
395- // 変更対象となったキャラクターデータのdocbaseが等しければ、メインフレームを更新する必要がある.
396- String docbaseOrg = cd.getDocBase().toString();
397- String docbaseMine = mainFrame.characterData.getDocBase().toString();
398- if (docbaseOrg.equals(docbaseMine)) {
399- SwingUtilities.invokeLater(new Runnable() {
400- public void run() {
401- try {
402- Cursor oldCur = mainFrame.getCursor();
403- mainFrame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
404- try {
405- // 現在情報の保存
406- mainFrame.saveWorkingSet();
407-
408- // 画面構成の再構築
409- mainFrame.initComponent(newCd);
410-
411- } finally {
412- mainFrame.setCursor(oldCur != null ? oldCur : Cursor.getDefaultCursor());
413- }
414-
415- } catch (RuntimeException ex) {
416- ErrorMessageHelper.showErrorDialog(mainFrame, ex);
417- }
418- }
419- });
420- }
421316 }
422- }
423-
424- } finally {
425- caller.setCursor(Cursor.getDefaultCursor());
317+ });
426318 }
427319 }
428320
@@ -433,11 +325,19 @@
433325 */
434326 public void notifyChangeFavorites(FavoritesChangeEvent e) {
435327 CharacterData cd = e.getCharacterData();
436- if (cd.getDocBase().equals(MainFrame.this.characterData.getDocBase())) {
437- if (!MainFrame.this.equals(e.getSource())) {
438- // お気に入りを最新化する.
439- // (ただし、自分自身から送信したイベントの場合はリロードの必要はない)
440- refreshFavorites();
328+ if (cd != null
329+ && cd.getDocBase().equals(
330+ MainFrame.this.characterData.getDocBase())) {
331+ if (!MainFrame.this.equals(e.getSource())
332+ && !characterData.equals(cd)) {
333+ // プリセットとお気に入りを最新化する.
334+ // ただし、自分自身から送信したイベントの場合は最新化は不要.
335+ characterData.clearPartsSets(false);
336+ for (Map.Entry<String, PartsSet> entry : cd.getPartsSets()
337+ .entrySet()) {
338+ PartsSet partsSet = entry.getValue();
339+ characterData.addPartsSet(partsSet);
340+ }
441341 }
442342
443343 // お気に入り管理ダイアログ上のお気に入り一覧を最新に更新する.
@@ -492,6 +392,9 @@
492392 // お気に入り変更通知を受け取る
493393 FavoritesChangeObserver.getDefault().addFavoritesChangeListener(
494394 this);
395+ // キャラクターデータの変更通知を受け取る
396+ CharacterDataChangeObserver.getDefault()
397+ .addCharacterDataChangeListener(this);
495398
496399 // メインスクリーンサイズを取得する.
497400 GraphicsEnvironment genv = GraphicsEnvironment.getLocalGraphicsEnvironment();
@@ -600,6 +503,8 @@
600503 public void dispose() {
601504 FavoritesChangeObserver.getDefault()
602505 .removeFavoritesChangeListener(this);
506+ CharacterDataChangeObserver.getDefault()
507+ .removeCharacterDataChangeListener(this);
603508 imageLoader.close();
604509 stopAgents();
605510 super.dispose();
@@ -1725,7 +1630,8 @@
17251630 CharacterData cd = this.characterData;
17261631 CharacterData newCd = ProfileListManager.editProfile(this, cd);
17271632 if (newCd != null) {
1728- MainFrame.notifyChangeCharacterData(cd, newCd, this);
1633+ CharacterDataChangeObserver.getDefault()
1634+ .notifyCharacterDataChange(this, newCd, true, true);
17291635 }
17301636
17311637 } catch (Exception ex) {
@@ -1900,7 +1806,9 @@
19001806
19011807 if (importWizDialog.getExitCode() == ImportWizardDialog.EXIT_PROFILE_UPDATED) {
19021808 CharacterData importedCd = importWizDialog.getImportedCharacterData();
1903- notifyImportedPartsOrFavorites(characterData, importedCd, this);
1809+ CharacterDataChangeObserver.getDefault()
1810+ .notifyCharacterDataChange(this, importedCd,
1811+ false, true);
19041812 }
19051813
19061814 } finally {
@@ -2269,11 +2177,6 @@
22692177 ManageFavoriteDialog dlg = new ManageFavoriteDialog(this, characterData);
22702178 dlg.setFavoriteManageCallback(new FavoriteManageCallback() {
22712179
2272- public void refreshFavorites(CharacterData cd) {
2273- // お気に入りの状態を最新にリフレッシュする.
2274- MainFrame.this.refreshFavorites();
2275- }
2276-
22772180 public void selectFavorites(PartsSet partsSet) {
22782181 // お気に入り編集ダイアログで選択されたパーツを選択表示する.
22792182 selectPresetParts(partsSet);
@@ -2312,26 +2215,6 @@
23122215 lastUseManageFavoritesDialog = dlg;
23132216 }
23142217
2315- /**
2316- * 最新のお気に入りの状態を取り出す.<br>
2317- */
2318- protected void refreshFavorites() {
2319- logger.log(Level.FINE, "refresh Favorites.: " + characterData);
2320- try {
2321- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
2322- try {
2323- CharacterDataPersistent persiste = CharacterDataPersistent.getInstance();
2324- characterData.clearPartsSets(true);
2325- persiste.loadFavorites(characterData);
2326- } finally {
2327- setCursor(Cursor.getDefaultCursor());
2328- }
2329-
2330- } catch (Exception ex) {
2331- logger.log(Level.WARNING, "can't refresh favorites: " + characterData, ex);
2332- }
2333- }
2334-
23352218 protected void onRegisterFavorite() {
23362219 if (!characterData.isValid()) {
23372220 Toolkit tk = Toolkit.getDefaultToolkit();
--- trunk/src/charactermanaj/ui/ManageFavoriteDialog.java (revision 92)
+++ trunk/src/charactermanaj/ui/ManageFavoriteDialog.java (revision 93)
@@ -180,13 +180,6 @@
180180 public interface FavoriteManageCallback {
181181
182182 /**
183- * キャラクターデータのお気に入り状態を最新にする.
184- *
185- * @param cd
186- */
187- void refreshFavorites(CharacterData cd);
188-
189- /**
190183 * 引数で指定されたパーツセットを表示する.
191184 *
192185 * @param partsSet
@@ -367,10 +360,6 @@
367360 }
368361 });
369362
370- if (callback != null) {
371- callback.refreshFavorites(this.characterData);
372- }
373-
374363 initListModel();
375364
376365 updateButtonUI();
--- trunk/src/charactermanaj/ui/ProfileSelectorDialog.java (revision 92)
+++ trunk/src/charactermanaj/ui/ProfileSelectorDialog.java (revision 93)
@@ -81,6 +81,7 @@
8181 import charactermanaj.graphics.io.LoadedImage;
8282 import charactermanaj.model.AppConfig;
8383 import charactermanaj.model.CharacterData;
84+import charactermanaj.model.CharacterDataChangeObserver;
8485 import charactermanaj.model.io.CharacterDataDefaultProvider;
8586 import charactermanaj.model.io.CharacterDataPersistent;
8687 import charactermanaj.model.io.PartsImageDirectoryWatchAgent;
@@ -95,7 +96,7 @@
9596
9697 /**
9798 * プロファイルを選択するためのダイアログ、およびデフォルトプロファイルを開く
98- *
99+ *
99100 * @author seraphy
100101 */
101102 public class ProfileSelectorDialog extends JDialog {
@@ -170,7 +171,7 @@
170171
171172 /**
172173 * プロファイルの選択ダイアログを構築する.
173- *
174+ *
174175 * @param parent
175176 * 親フレーム、もしくはnull
176177 * @param characterDatas
@@ -729,7 +730,7 @@
729730
730731 /**
731732 * サンプルピクチャパネルにドロップされた画像ファイルをサンプルピクチャとしてコピーします.<br>
732- *
733+ *
733734 * @param dtde
734735 * ドロップイベント
735736 */
@@ -822,7 +823,7 @@
822823
823824 /**
824825 * プロファイルの作成
825- *
826+ *
826827 * @param makeDefault
827828 * デフォルトのプロファイルで作成する場合
828829 */
@@ -952,7 +953,8 @@
952953 }
953954
954955 // 現在開いているメインフレームに対してキャラクター定義が変更されたことを通知する.
955- MainFrame.notifyChangeCharacterData(cd, newCd, this);
956+ CharacterDataChangeObserver.getDefault().notifyCharacterDataChange(
957+ this, newCd, true, true);
956958
957959 // プロファイル一覧画面も更新する.
958960 characterListModel.set(selRow, newCd);
@@ -1131,7 +1133,8 @@
11311133 } else if (importWizDialog.getExitCode() == ImportWizardDialog.EXIT_PROFILE_UPDATED) {
11321134
11331135 // 更新されたプロファイルを通知する
1134- MainFrame.notifyImportedPartsOrFavorites(cd, newCd, this);
1136+ CharacterDataChangeObserver.getDefault()
1137+ .notifyCharacterDataChange(this, newCd, true, true);
11351138 }
11361139
11371140 } finally {
--- trunk/dist/charactermanaj.l4j.ini (revision 92)
+++ trunk/dist/charactermanaj.l4j.ini (revision 93)
@@ -1,4 +1,4 @@
11 -Xms64m
22 -Xmx128m
3--DcharactersDir=%EXEDIR%\characters
4--DappConfigFile=%EXEDIR%\appConfig.xml
3+"-DcharactersDir=%EXEDIR%\characters"
4+"-DappConfigFile=%EXEDIR%\appConfig.xml"
--- trunk/launch4j.xml (revision 92)
+++ trunk/launch4j.xml (revision 93)
@@ -1,8 +1,8 @@
11 <launch4jConfig>
22 <dontWrapJar>false</dontWrapJar>
33 <headerType>gui</headerType>
4- <jar>dist/CharacterManaJ.jar</jar>
5- <outfile>dist/charactermanaj.exe</outfile>
4+ <jar>dist\CharacterManaJ.jar</jar>
5+ <outfile>dist\charactermanaj.exe</outfile>
66 <errTitle></errTitle>
77 <cmdLine></cmdLine>
88 <chdir></chdir>
@@ -21,4 +21,16 @@
2121 <initialHeapSize>64</initialHeapSize>
2222 <maxHeapSize>128</maxHeapSize>
2323 </jre>
24+ <versionInfo>
25+ <fileVersion>0.9.9.5</fileVersion>
26+ <txtFileVersion>0.995</txtFileVersion>
27+ <fileDescription>CharacterManaJ</fileDescription>
28+ <copyright>http://sourceforge.jp/projects/charactermanaj/</copyright>
29+ <productVersion>0.9.9.5</productVersion>
30+ <txtProductVersion>0.995</txtProductVersion>
31+ <productName>CharacterManaJ</productName>
32+ <companyName>seraphy@users.sourceforge.jp</companyName>
33+ <internalName>CharacterManaJ</internalName>
34+ <originalFilename>charactermanaj.exe</originalFilename>
35+ </versionInfo>
2436 </launch4jConfig>
\ No newline at end of file
--- trunk/resources/appinfo/about_ja.html (revision 92)
+++ trunk/resources/appinfo/about_ja.html (revision 93)
@@ -61,9 +61,11 @@
6161 <li>10.5 Leopard (Intel) JavaSE6</li>
6262 <li>10.6 Snow Leopard (Intel) JavaSE6</li>
6363 <li>10.7 Lion (Intel) JavaSE6 (Java for Mac OS X 10.7 is required.)</li>
64- <li>10.7 Lion (Intel) Java7 (Oracle, Java7u17 or later)</li>
65- <li>10.8 Mountain Lion (Intel) JavaSE6 (Java for Mac OS X 10.7 is required.)</li>
66- <li>10.8 Mountain Lion (Intel) Java7 (Oracle, java7u17 or later)</li>
64+ <li>10.7 Lion (Intel) Java7 (Oracle, Java7u45 or later)</li>
65+ <li>10.8 Mountain Lion (Intel) JavaSE6u65 or later (Java for OS X 2013-005 is required.)</li>
66+ <li>10.8 Mountain Lion (Intel) Java7 (Oracle, java7u45 or later)</li>
67+ <li>10.9 Marvericks (Intel) JavaSE6u65 or later (Java for OS X 2013-005 is required.)</li>
68+ <li>10.9 Marvericks (Intel) Java7 (Oracle, java7u45 or later)</li>
6769 </ul>
6870 </li>
6971 <li>Microsoft Windows
@@ -71,8 +73,9 @@
7173 <li>Windows 2000 SP4 (32Bit) JavaSE6 (日本語版のみ)</li>
7274 <li>Windows XP SP2+ (32Bit) JavaSE6 (日本語版、それ以外はEast asian languagesをコンパネからインストール済みのこと)</li>
7375 <li>Windows Vista SP1以降 (32/64Bit) JavaSE6</li>
74- <li>Windows 7 (32/64Bit) JavaSE6, Java7u10 or later</li>
75- <li>Windows 8 (32/64Bit) JavaSE6, Java7u10 or later</li>
76+ <li>Windows 7 (32/64Bit) JavaSE6, Java7u45 or later</li>
77+ <li>Windows 8 (32/64Bit) JavaSE6, Java7u45 or later</li>
78+ <li>Windows 8.1 (32/64Bit) JavaSE6, Java7u45 or later</li>
7679 </ul>
7780 </li>
7881 <li>Linux
@@ -86,6 +89,7 @@
8689 <p>J2SE5で記述しているため、J2SE5のデスクトップをサポートした実行環境があれば基本的には動作すると思います。</p>
8790 <p>Windows環境ではJ2SE5でも動作しますが、Java7を推奨します。</p>
8891 <p>Mac OS Xも同様にJava7(Oracle)を推奨します。(AppleのJavaSE5/JavaSE6でも動作します。)</p>
92+<p>OS X 10.7以降は標準ではJavaはインストールされていません。AppleのサイトからJava6をインストールするか、OracleのサイトからJava7をインストールする必要があります.<p>
8993 <p>Mac OS X上での本アプリケーションは、AppleのJava5/6用と、OracleのJava7用と、それぞれ専用版のアプリケーションに分けています。</p>
9094 <p>メモリは、Mac OS Xのアプリケーションバンドル形式、またはWindowsのEXE形式での配布形式では、初期状態で96MB、最大で128MBの設定を行っています。</p>
9195 <p>実行可能JAR形式ではJREのデフォルトのサイズが使われます。これは搭載している物理メモリによって割り当てられるサイズが64MBあるいは256MBのように変わります。</p>
--- trunk/resources/appinfo/about.html (revision 92)
+++ trunk/resources/appinfo/about.html (revision 93)
@@ -27,9 +27,11 @@
2727 <li>10.5 Leopard (Intel) JavaSE6</li>
2828 <li>10.6 Snow Leopard (Intel) JavaSE6</li>
2929 <li>10.7 Lion (Intel) JavaSE6 (Java for Mac OS X 10.7 is required.)</li>
30- <li>10.7 Lion (Intel) Java7 (Oracle, Java7u17 or later)</li>
31- <li>10.8 Mountain Lion (Intel) JavaSE6 (Java for Mac OS X 10.7 is required.)</li>
32- <li>10.8 Mountain Lion (Intel) Java7 (Oracle, java7u17 or later)</li>
30+ <li>10.7 Lion (Intel) Java7 (Oracle, Java7u45 or later)</li>
31+ <li>10.8 Mountain Lion (Intel) JavaSE6u65 or later (Java for OS X 2013-005 is required.)</li>
32+ <li>10.8 Mountain Lion (Intel) Java7 (Oracle, java7u45 or later)</li>
33+ <li>10.9 Marvericks (Intel) JavaSE6u65 or later (Java for OS X 2013-005 is required.)</li>
34+ <li>10.9 Marvericks (Intel) Java7 (Oracle, java7u45 or later)</li>
3335 </ul>
3436 </li>
3537 <li>Microsoft Windows
@@ -37,8 +39,9 @@
3739 <li>Windows 2000 SP4 (32Bit) JavaSE6 (<font color="red">Japanese Only</font>)</li>
3840 <li>Windows XP SP2 or later (32Bit) JavaSE6</li>
3941 <li>Windows Vista SP1 or later (32/64Bit) JavaSE6</li>
40- <li>Windows 7 (32/64Bit) JavaSE6, Java7u10 or later</li>
41- <li>Windows 8 (32/64Bit) JavaSE6, Java7u10 or later</li>
42+ <li>Windows 7 (32/64Bit) JavaSE6, Java7u45 or later</li>
43+ <li>Windows 8 (32/64Bit) JavaSE6, Java7u45 or later</li>
44+ <li>Windows 8.1 (32/64Bit) JavaSE6, Java7u45 or later</li>
4245 </ul>
4346 <span style="color: red; font-weight: bold;">Installation of language support of East Asia is indispensable.</span><br>
4447 (Control Panel / Regional and Language Options / Language Tab / Install files for East Asian languages)
旧リポジトリブラウザで表示