0
現在オープンしているファイルのオブジェクトを使用するグラフのプラグインを開発中です。開いているファイルを変更すると、グラフが更新されます。 今、私はViewPartを拡張し、この関数を呼び出すたびにグラフを更新するクラスでsetFocus()メソッドを使用しています。 これは私が欲しいのではなく、リソースが変更されたときだけグラフを更新したいのです。私は追加する必要がある場合、私は私のプラグインのactivator.javaファイル?:プラグイン開発:プラグインのリスナーからリソースへの変更
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IResourceChangeListener listener = new IResourceChangeListener() {
public void resourceChanged(IResourceChangeEvent event) {
System.out.println("Something changed!");
}
};
workspace.addResourceChangeListener(listener);
//... some time later one ...
workspace.removeResourceChangeListener(listener);
に次のコードを配置する必要があり
This is like my question, but there is no answer
: 私は、このリンクを見つけましたこのコード、どこに置く?どのメソッドでactivator.javaファイルに入れますか? もしそうでなければ、私は何をする必要がありますか?
ビューが閉じているときにもリスナーを削除することを忘れないでください。 – nitind
リスナーはこの問題[似たような問題]のように2回呼びます(http://stackoverflow.com/questions/23875766/iresourcechangelistener-being-called-twice-with-one-change)。私はdispose()メソッドでリスナーを削除しています(IWorkbenchPartのAPIで、ワークベンチからすべてのリスナーを登録解除する必要があることがわかりました)。私はなぜそれが2回呼び出されているのか分かりませんでした(私はイベントを印刷し、それは両方の呼び出しでorg.eclipse.core.internal.resources.Workspace です)。最初のコールでは、リスナーを3回コールします。 – RoG
また、リスナーは現在のファイル内の変更のみをキャッチします。しかし、別のファイルを選択した場合、リスナーは私が別のファイルに入っていることに気付かず、新しいファイルを変更して保存しない限り、ビューの前のファイルのグラフになります新しいファイルあなたは私がこの事のために必要なリスナーを知っていますか?どうもありがとうございました! – RoG