2012-03-06 17 views
2

私はファイルブラウザビューを作成する必要があるEclipse RCPアプリケーションを持っています。私はそれをルート(ローカルコンピュータ上のいくつかの場所)に渡したいと考えており、その場所にあるすべてのファイルとフォルダを表示する必要があります。現在、私はそれにディレクトリパスを含むカスタムルートオブジェクトを返すためにEclipse RCP:Common Navigator - ダブルクリックでファイルを開く

public class CurrDirExplorerView extends CommonNavigator 

私がオーバーライドしている、したがって、私の見解でgetInitialInput()をCNFを使用しています。​​がワークスペースにリンクしているので、java.io.Fileを使用しています。 java.io.Fileのラッパークラスのような要素オブジェクトを作成し、ラベルやコンテンツプロバイダをサポートするための名前などを返します。私のビューは、ルートオブジェクトで指定された場所にあるすべてのフォルダとファイルを表示しますが、​​ではないため、ファイルをダブルクリックするとエディタで開きません。

これを行う方法はありますか?

答えて

2

CommonNavigatorは、保護された方法があります

保護ボイドhandleDoubleClick(DoubleClickEvent anEvent)。

unfortunatelly javadocには「このメソッドは内部使用のみです」と記載されていますが、これ以上のオプションがない場合でも使用できます。

他の方法は、addDoubleClickListener()を持つgetCommonViewer()で、ダブルクリックを処理する独自のロジックを定義することができます。お役に立てれば。

+0

)のいるpreferenceStoreに設定キー(ブール値)OPEN_ON_SINGLE_CLICKを設定する必要がありますか?私はそれを正しい方法でやりたいと思います。私は内部使用の方法しか使用したくありません。 – nbz

+1

私は試してみます @Override パブリック空白createPartControl(コンポジットaParent){ super.createpartControl(aParent); getCommonViewer().... } –

+0

私はcreatePartControlをオーバーライドしていますが、CNFの代わりにTreeViewerを使用した方が良いでしょうか? – nbz

1

ナビゲータで使用されるグローバルプリファレンス(画像参照)があります。あなたはこの設定をプリセットしたい場合は、バンドルorg.eclipse.ui.workbench私は。addDoubleClickListener()(getCommonViewerを置くだろう

enter image description here

+0

あなたの答えをありがとうが、それは残念ながら私が探しているものではありません。私は共通のナビゲータを拡張する独自のビューを作成しています。java.io.fileを使用してIResourceを使用していないため、自分でファイルのオープンを管理する必要があります。 – nbz

関連する問題