我使用org.eclipse.ui.editors
擴展點創建RCP 3.7編輯器。我需要的是在編輯器啓動期間根據某些條件動態定義圖標路徑。可以使用org.eclipse.core.variables ...定義其他擴展的屬性
(編輯:編輯器實際上是剛剛啓動後恢復,但它不是選爲活動還,所以你只能看到標籤與標題和圖標)
我試圖在課堂上實現IEditorInput
與getImageDescriptor()
方法工作,似乎沒有被使用。對圖標有一定影響的唯一方法是更改編輯器擴展定義中的圖標路徑。
所以我開始與和org.eclipse.core.variables.dynamicVariables
發揮在圖標屬性利用(只顯示爲簡單的例子valueVariables):
<extension point="org.eclipse.ui.editors">
<editor name="%Editor_TITLE"
extensions="xml"
icon="${FOO}"
class="org.example.ExampleEditor"
id="org.example.ExampleEditor">
</editor>
</extension>
<extension point="org.eclipse.core.variables.valueVariables">
<variable name="FOO"
initialValue="images/obj16/editor.png">
</variable>
</extension>
然而,這也不行。有什麼方法可以使用動態定義的變量值(基於當前的條件),可以改變圖標的路徑? ...或者即使是解決方案建議,我也會很好,這將導致在啓動過程中成功更改圖標(如使ImageDescriptor無法啓動)。
感謝快速回答格雷格。唯一的問題是我的編輯器在重新啓動後沒有在恢復時選擇它時沒有被初始化(只有在擴展中的路徑中的編輯器標題和圖標在標籤中可見)。 – Kuba
那麼Eclipse真的不希望編輯器像這樣改變它的圖像。我不確定是否可以做任何有關還原的事情。 –
你是對的..在這種情況下很難做到這一點。最後,我在每個編輯器上設置了一個默認睡眠圖標,當它變爲活動狀態時,它會隨着您的代碼更改爲所需的圖標。所以,你已經正確地回答了題目中的問題。謝謝 :) – Kuba