2011-11-06 42 views
0

我目前正在實現一個正在使用標準屬性視圖的Eclipse-Plugin,它連接到一個Navigator。它還具有一個文本編輯器,它能夠將其文件內的區域連接到某些對象,可以提供特性的PropertiesView(即相同的對象,顯示在導航)。 然而,我發現Tuturials只涉及所使用的預實現的瀏覽器,它已經支持通過選定的元素屬性視圖的意見。 的文本編輯沒有做到這一點(我使用的JFace和AbstractTextEditor類的子類),因爲它是SelectionProvider返回關於偏移,只有選擇的長度信息。 如何做我必須修改我的文本編輯的SelectionProvider,使得其提供可用於屬性查看信息?Eclipse:將TextEditor連接到屬性視圖

謝謝你提前

回答

0

好的,我已經設法找到解決方案我自己。

首先,我不得不實施getAdapter()方法在我的TextEditor,使得它返回一個適配器IPropertySourceProvider子類,可以處理那些在我AbstractTextEditor所選元素的類型。

然後,我實現了一個ISelection是擴展TextSelection,爲了不與由AbstractTextEditor提供任何具體的選擇機制干擾,並實現了接口IStructuredSelection,因爲屬性查看作品僅爲ISelection這個接口。

一個IStructuredSelection功能數組的基本方法,但是,在我的情況下,只能選擇一個單一的元素,所以這些方法的實現是微不足道的。

最後一步是讓我的ISelection到正確的地方。覆蓋getSelection() - AbstractTextEditor的ISelectionProvider的方法並不夠用,因爲很顯然,觸發SelectionChangedEvents的方法不使用此方法。

因此,而是採用了標準SourceViewer,我用我自己的實現中,我基本上overrid方法fireSelectionChanged(int offset, int length)firePostSelectionChanged(int offset, int lenght),使得它們使用含有我ISelection事件。

其餘的是在IPropertySourceProvider的適配器中實現對我的對象的處理方式,它爲給定的對象返回IPropertySource,如各種教程中所示。