2016-05-19 11 views
0

私のツリーには何かの種類のオブジェクトを喜んで飾る働きがあります。ILightweightLabelDecoratorそのオブジェクトが変更され、リフレッシュ/再作成をトリガーしたいと思います。ILightweightLabelDecoratorを改訂しました

LabelProvider#fireLabelProviderChanged()と電話をかけたいと思うthis article(「Re-decorate」の下に)が見つかりました。問題は、問題のメソッドが保護されたものであり、オブジェクトが変更される場所がラベルデコレータの近くにないことです。

だが、私は私のIViewPartに次のメソッドを持っている簡略化のために言ってみましょう:

public void refresh() { 
    this.treeViewer.refresh(); 
} 

は、どのように私はそこに私のビューア要素の改装を誘発するのでしょうか?

+0

'org.eclipse.jface.viewers.DecoratingLabelProvider'を使用していますか? –

+0

@ greg-449はい、ありがとうございます。 –

+0

私は 'refresh'呼び出しで自動的にデコレータを更新することになっていると思います。 –

答えて

0

一つの可能​​性の特定のデコレータIDの装飾を更新するために、デコレータマネージャを伝えることです:

IDecoratorManager decoratorManager = PlatformUI.getWorkbench().getDecoratorManager(); 

decoratorManager.update("decorator id"); 

(UIスレッドで実行する必要があります)。

+0

ビューには要素として登録できるすべてのデコレータのIDがわかりません。 –

関連する問題