2017-09-09 5 views
0

Eclipseのプラグインを作成しようとしていますが、ユーザがをクリックしてエディタ内の別のファイルに切り替えるときに、機能の1つにが必要です。クリックしたファイルをリッスンする - Eclipseプラグイン

たとえば、次のスクリーンショットを考えてみましょう。

enter image description here

私は、ユーザーがプロジェクトエクスプローラでダブルクリックを経由してFakeClass.javaへの切り替えやエディタでタブをクリックしたときのために監視する方法を知りたいです。さらに、クリックされた要素に関する情報を取得したいと思います。 私は上記の2つの方法でファイルを変更することについて具体的に尋ねています。

私はプラグイン開発の初心者です。それを念頭に置いて説明すると役に立ちます。ありがとう。リスナーのpartActivated方法は、あなたが何をしたいおそらく

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 

page.addPartListener(listener); 

@Override 
public void partActivated(final IWorkbenchPart part) 
{ 
    if (part instanceof IEditorPart) { 
    IEditorPart editor = (IEditorPart)part; 

    IEditorInput input = editor.getEditorInput(); 

    IFile file = input.getAdapter(IFile.class); 
    if (file != null) { 
     // TODO handle file 
    } 
    } 
} 

私は

+0

エディタが開かれた理由を知りたいのは普通ではありませんので、これを見つけるための簡単な方法はわかりません。また、「Package Explorer」や「Resource Navigator」については、ユーザーが使用する可能性のあるいくつかのビューがあります。私は個人的にProject Explorerを使用しません。 –

+0

クリックしたタブを少なくとも検出することはできますか?また、「パッケージエクスプローラ」や「リソースナビゲータ」については、混乱しています。 –

+0

'IPartListener'を使って、起動されているパート(エディタやビュー)についての情報を伝えることができますが、なぜ起動されているのかはわかりません。 「プロジェクトエクスプローラ」は、プロジェクトやファイルの表示に使用できるビューの1つに過ぎません。「パッケージエクスプローラ」などの代替手段があります –

答えて

0

あなたは活性化された部分を含む部品への変更をリッスンするためにIPartListenerを使用することができますその部分がなぜ活性化されたのかを知る方法を知らない。

+0

私は大文字小文字の区別はわかりませんが、 'file'はnullと思われます。 –

+0

申し訳ありませんが、少しのコードを忘れました - ファイルは 'IEditorInput'にあります - 更新された答えを見てください。 –

関連する問題