• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

OmegaT の背景に画像を表示します。


Commit MetaInfo

Revision9 (tree)
Time2014-05-06 00:52:03
Authoryu-tang

Log Message

change plug-in registration

Change Summary

Incremental Difference

--- trunk/manifest.mf (revision 8)
+++ trunk/manifest.mf (revision 9)
@@ -1,5 +1,10 @@
11 Manifest-Version: 1.0
2+Main-Class: org.omegat.Main
3+License: GNU Public License version 3 or later
4+Specification-Version: 1.0
5+Implementation-Version: 0.2
6+Permissions: all-permissions
7+Class-Path: lib/lib-mnemonics.jar
8+OmegaT-Plugins:
9+ jp.sourceforge.users.yutang.omegat.plugin.moenizer.Moenizer
210 OmegaT-Plugin: true
3-
4-Name: org.omegat.plugin.moenizer.Moenizer
5-OmegaT-Plugin: base
\ No newline at end of file
--- trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/Moenizer.java (revision 8)
+++ trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/Moenizer.java (revision 9)
@@ -17,19 +17,17 @@
1717 package jp.sourceforge.users.yutang.omegat.plugin.moenizer;
1818
1919 import java.awt.image.BufferedImage;
20-import java.io.IOException;
2120 import java.util.concurrent.TimeUnit;
22-import java.util.logging.Level;
23-import java.util.logging.Logger;
2421 import javax.swing.SwingUtilities;
2522 import javax.swing.SwingWorker;
23+
2624 import org.omegat.core.CoreEvents;
2725 import org.omegat.core.events.IApplicationEventListener;
2826 import org.omegat.core.events.IProjectEventListener;
2927 import jp.sourceforge.users.yutang.omegat.plugin.moenizer.imageloader.IImageLoader;
3028 import jp.sourceforge.users.yutang.omegat.plugin.moenizer.imageloader.ImageLoader;
29+import org.omegat.core.Core;
3130 import org.omegat.util.Log;
32-import org.omegat.util.StaticUtils;
3331
3432 /**
3533 * allow to set background image
@@ -38,26 +36,43 @@
3836 */
3937 public class Moenizer implements IApplicationEventListener, IProjectEventListener {
4038
39+ private static boolean instantiated = false;
40+
4141 private IImageLoader imageLoader;
4242 private MoeUI ui;
43-
44-
45- @SuppressWarnings("LeakingThisInConstructor")
46- public Moenizer() {
47- CoreEvents.registerApplicationEventListener(this);
48- CoreEvents.registerProjectChangeListener(this);
4943
50- ui = null;
51- imageLoader = ImageLoader.getInstance();
52- // この時点ではまだウィンドウがインスタンス化されていないので、
53- // ウィンドウに対する処理は少し待つ。
54-
55- (new SlideShow()).execute();
44+ public static void loadPlugins() {
45+ try {
46+ // Not initialize in console mode
47+ if (!instantiated) {
48+ CoreEvents.registerApplicationEventListener(new Moenizer());
49+ instantiated = true;
50+ } else {
51+ throw new RuntimeException("Moenizer plugin could be instantiated only once.");
52+ }
53+ } catch (Throwable ex) {
54+ String msg = ex.getMessage();
55+ Log.logErrorRB(msg);
56+ Core.pluginLoadingError(msg);
57+ }
58+ }
59+
60+ public static void unloadPlugins() {
61+ // do nothing
5662 }
5763
5864 @Override
5965 public void onApplicationStartup() {
6066 try {
67+ CoreEvents.registerProjectChangeListener(this);
68+
69+ ui = null;
70+ imageLoader = ImageLoader.getInstance();
71+ // この時点ではまだウィンドウがインスタンス化されていないので、
72+ // ウィンドウに対する処理は少し待つ。
73+
74+ (new SlideShow()).execute();
75+
6176 ui = MoeUI.getMoeUI();
6277
6378 // この時点でコンポーネントの透過設定をしても反映されない(タイミング?)。