2016-07-05 8 views
0

Eclipseのプラグインでカスタムのエディタを作成しました。ツリーエディタ(ツリービューア)形式のXMLをいくつかの属性とともに表示します。残りの属性を表示するために、私はそれを "Properties View"と結びつけようとしていますが、実際に進めることはできません。カスタムXMLエディタへのプロパティビューのアタッチ

How to handle property sheet from customized editor in eclipse plugin development?私はあなたの視聴者がワークベンチ選択に貢献し、エディタで選択されたオブジェクトにIPropertySourceを実装することについて話しています。

私の場合、以下のようにtreeviewer入力で直接ドキュメントオブジェクトを設定しています。

IFileEditorInput editorInput = (IFileEditorInput) getEditorInput(); 
IFile inputIFile = editorInput.getFile(); 
File f = new File(inputIFile.getLocation().toString()); 
try { 
    doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(f); 
    } 
    catch (SAXException | IOException | ParserConfigurationException e) { 
    e.printStackTrace(); 
    } 
//setting root element of doc as input 
treeViewer.setInput(doc.getDocumentElement()); 

ここで、プロパティに貢献するIPropertySourceインターフェイスを実装するオブジェクトは何ですか?

私が正しい方向に行っているか、何かを見逃しているか、それとも完全に間違っているかを教えてください。

これは意味があると思います!

+0

エディタの選択プロバイダとして何を設定していますか? –

+0

私は選択プロバイダーとして 'treeViewer'を設定しています - 'getSite()。setSelectionProvider(treeViewer);' – Hitesh

答えて

1

選択プロバイダが選択変更イベントを発生させると、プロパティページで新しい選択が表示されます。プロバイダとしてツリービューアを使用している場合、選択はツリーコンテンツプロバイダの現在のオブジェクトになります。

プロパティビューは、選択肢からIPropertySourceProviderを取得しようとします。オブジェクトはIPropertySourceProviderを直接実装するか、またはIAdaptableインターフェイスを表示するか、IAdapterFactoryを使用して表示します。

ビューにIPropertySourceProvierが含まれると、getPropertySourceメソッドが呼び出されます。あなたのコードはIPropertySourceオブジェクトを返さなければなりません。このクラスを書くのはあなた次第です。

+0

この場合、treeViewerの現在のオブジェクトはdomノードになりますので、どのようにIPropertySourceProviderを実装する必要がありますか? – Hitesh

+0

'IAdapterFactory'で何かできることがありますが、DOMノードにラップするオブジェクトを提供するようにコンテンツプロバイダを変更しなければならない可能性が高いため、そこにコードを追加できます。 –

+0

ありがとうございます!私はそれをIAdapterFactoryを使って動作させることができました。 – Hitesh

関連する問題