2017-01-23 43 views
0

我正在擴展org.eclipse.ui.commands以向我的menuContribution提供一個新命令,它具有toggle樣式。如何以編程方式爲Eclipse UI命令設置初始狀態?

現在我想設置一個初始狀態,但它不應該是一個硬編碼狀態。因此,提供以下狀態不是一個選項:

<state 
     class="org.eclipse.ui.handlers.RegistryToggleState:true" 
     id="org.eclipse.ui.commands.toggleState"> 
    </state> 

的狀態應該反映在首選項頁面的屬性,沒有必要堅持什麼。通過調用插件Activator中的方法手動設置狀態不起作用,因爲一旦我第一次點擊該命令,就會跳入start方法,但這已經太遲了,因爲上下文菜單應該已經反映了正確的偏好屬性的狀態。

我該如何解決這個問題?

回答

0

我認爲你應該實施你自己的國家班級,這個班級應該延伸org.eclipse.jface.commands.ToggleState和覆蓋setState方法。它可以採取任何價值,但忽視它,做你想做的事(閱讀喜好等)

我還沒有嘗試過,只是猜測。

+0

我試過這個,但問題是我的實現('setState')不會被調用。 –

+0

顯然,狀態的ID必須是'org.eclipse.ui.commands.toggleState'。我提供了我的自定義ID,我想這就是爲什麼我的代碼從未被調用。 –

+0

哦,'ToggleState'具有'setValue'方法,而不是'setState'。我只是困惑) – Zefick

相關問題