2011-12-21 3 views
0

私はRCPをEclipseに新しくしました。非常に基本的な質問をしてください。 私はJFace TreeViewerを持っています。私はその中の特定のノードを拡張したい。キャッチは、私はノードの名前しか持っていません。それ以外の情報はありません。 私はtreeItemを使って、その文字列と私が持っているノード名を比較しようとしました。私はツリーのコンテンツプロバイダでそれを拡張しようとしました。しかし、私は希望の出力を得ていません。私がログでチェックすると、それは拡大されますが、それはビューアに表示されません。私はcontentproviderのdisplay.asyncExecメソッドでこれを実行しています。ツリーノードを拡張する

私は質問がはっきりしていることを願っています。

+0

「contentproviderで展開する」とはどういう意味ですか? [ExpandingToLevel(Object elementOrTreePath、int level) 'メソッドは[TreeViewer](http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface)にあります。 /viewers/TreeViewer.html)、それは機能しますか? –

+0

私はそれを試しました。しかし、私はノードのレベルを知らない。私はtreeItem.setexpanded(true)を使ってみました。それは時々動作しているように見えますが、ノードが表示されていないような、まったく予期しない出力を与えますが、もう1回操作した後は表示されます。 treeViewer.refresh()で問題になることはありますか?ツリー全体ではなく、特定のノードをリフレッシュするには他にどのような方法がありますか? – Sid

答えて

5

JFaceビューアーは、開発者がSWTウィジェットを使いこなす必要がなく、より高レベルのAPIを使用できるように作成されました。 JFaceのビューア/コンテンツプロバイダ/ラベルプロバイダを使用する場合は、ツリー内のノードを管理する必要があります(名前を知っていると言うと、SWTツリーを直接使用していると仮定します)。 Eclipse helpからJFaceの視聴者を読むことができます。

TreeViewerexpandToLevel(Object elementOrTreePath, int level)方法をツリーノードの使用を拡大する(レベルが展開されているノードではなく、ツリーのルートに対するものです)。

関連する問題