0

TreeViewerディレクトリの参照にを使用して、最初の RCP の例を実行しています。

私の仕事は例http://www.ibm.com/developerworks/opensource/library/os-ecgui1/から始まりました

ファイルエントリの場合TreeViewer、最後の選択を永続化し、次回同じ選択でビューアーを開くようにしたいと考えています。

選択したファイルからパスを取得し、この単一の文字列を保存/取得しました。

再度開くと、 をトラバースしてITreeContentProvider、対応する File ノードを見つけます (そしてその間のノードをキャプチャします)。

次に使うのは

window.getTree().setSelection(new StructuredSelection(target));

パスを保持するファイルのリストとしてターゲットを指定します。

これは、C: の下の最上位ディレクトリで機能します。

しかし、より深いパスの復元は失敗します。次のレベルは最初は展開されておらず、 で失敗しますAbstractTreeViewer.setSelectionToWidget()

setSelection()パラメータをうまく処理していないと感じていますが、適切な例が見つかりませんでした。

このようなパス選択を復元する方法を示す簡単な例はありますか?

前もって感謝します

ヴォルフガング R.

4

1 に答える 1

1

見つけました。使用されているサンプル コードには小さなバグがあります。

public class FileTreeContentProvider implements ITreeContentProvider
{
...
public Object getParent(Object element)
{
  // wrong return ((File)element).getParent();
  return ((File)element).getParentFile();
}
于 2013-05-15T12:28:49.887 に答える