2011-01-24 11 views
3

私はEclipseプラグインを開発中です。プラグインは、作業をローカルに保存するたびに、自分の作業を中央リポジトリに保存するようにユーザーに促します。セッション間にEclipseプラグインの状態を保存する方法は?

しかし、ユーザが作業をセントラルリポジトリに10回正常に保存すると、彼は作業を保存するようにもう思い出さなくなります。

これは、単一のセッションでうまく動作します。つまり、ユーザーが作業領域で作業を開始し、プラグインを有効にするときです。

ただし、ユーザが作業をセントラルリポジトリ に9回保存した後で作業領域を終了した場合、次回作業領域を開いたときに、最初から10回も引き続き通知されます。

カウンタをインクリメントしてメモリに保存することができれば、プラグインが意図した通りに動作するように、知りたいことがあります。

答えて

7

プラグインの設定を使用して、プラグインの値を保存および取得できます。
Eclipse FAQから例:鉛の

private void savePluginSettings() { 
    // saves plugin preferences at the workspace level 
    Preferences prefs = 
    //Platform.getPreferencesService().getRootNode().node(Plugin.PLUGIN_PREFEERENCES_SCOPE).node(MY_PLUGIN_ID); 
    new InstanceScope().getNode(MY_PLUGIN_ID); // does all the above behind the scenes 

    prefs.put(KEY1, this.someStr); 
    prefs.put(KEY2, this.someBool); 

    try { 
    // prefs are automatically flushed during a plugin's "super.stop()". 
    prefs.flush(); 
    } catch(BackingStoreException e) { 
    //TODO write a real exception handler. 
    e.printStackTrace(); 
    } 
} 

private void loadPluginSettings() { 
    Preferences prefs = new InstanceScope().getNode(MY_PLUGIN_ID); 
    // you might want to call prefs.sync() if you're worried about others changing your settings 
    this.someStr = prefs.get(KEY1); 
    this.someBool= prefs.getBoolean(KEY2); 
} 
+0

感謝:) –

2

状態をディスクに保存する必要があります。これを行う方法の詳細は完全にあなた次第です。これを行うにはさまざまな方法があります。 1つの方法は、EclipseプリファレンスAPIを使用することです。これは、さまざまなスコープの概念に基づいています...ワークスペース対プロジェクト対インストール。私は

http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/preferences/InstanceScope.html

このAPIは、あなたのツリー状の構造で任意のコンテンツを格納し、バックアウトそれを読み取る能力を与えるだろう...ワークスペース・レベルのものがInstanceScopeクラスによって追跡されていると信じています。他のプラグインとの衝突を避けるために、ツリーの最初のノードがプラグインIDであることを確認してください。

関連する問題