我有RCP應用程序,並且我有一個命令,它啓動了某個實體的嚮導(編輯嚮導,顯示實體的所有字段,用戶可以更改它並完成嚮導以保存此實體)。我使用JFace數據綁定將實體字段綁定到swt文本和組合。SWT文本字段設置和RCP命令綁定到密鑰
該命令有處理程序(包含嚮導調用),並且此處理程序綁定到某個按鈕,並且都可以正常工作。
然後我需要將此命令綁定到某個組合鍵(例如Ctrl + E)。我使用org.eclipse.ui.bindings extention它:
<key
commandId="com.project.command"
contextId="com.project.view.context"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+E">
</key>
「com.project.view.context」是我做的綁定到相同的密鑰組合在2點不同的觀點,它是看起來確定(並在這兩個視圖中激活不同的命令)。
但是當我通過這個組合鍵打開我的嚮導,還有一個問題:
SWT文本字段不結合到實體的整型字段。有了字符串字段就可以了,而且它們綁定的很好。但整數字段不(其中只有空的空間)。
我已經試過:
我調試我的嚮導,嚮導頁面,所有的時間實體狀態是 精(它們的整數領域是正確的,而不是0或空)
試圖將整數寫入字符串轉換器以實現JFace綁定。沒有幫助。
我試圖禁用的JFace結合這一領域,並塞汀文本字段 值手冊:
swtTextField.setText(entity.getIntegerField().toString());
但是,這也沒有工作!看起來它不是JFace綁定問題, 但SWT文本問題? Debuggin這種情況:
entity.getIntegerField()的toString()= 「1234」 之前和之後 「的setText」 swtTextField.getText = 「」 之前和之後 「的setText」
(當我運行這個調試不從按鍵組合命令調用, 一切看起來不錯,swtTextField.getText =「1234」「的setText」)後
嘗試變更的結合extention默認 上下文(「org.eclipse.ui.contexts .window「)也沒有幫助。
因此,總結,所有工作正常,當我通過按鈕(或上下文菜單)調用我的命令。但是,當我通過鍵組合綁定擴展調用我的命令時,整數 - >文本字段(字符串字段可以正常工作)存在問題。
有什麼想法有什麼問題嗎?
補充:我發現問題在於組合鍵。當鍵組合包含非英文鍵符號(Ctrl +非英文鍵我的語言鍵符號,導致我們的應用程序使用非英文鍵組合),則出現問題:SWT文本不接受整數值。當組合鍵是英語時(Ctrl +英文鍵) - 一切正常。
所有其它命令(不SWT文本字段)的作品也沒關係,他們都綁定到按Ctrl +非英文鍵組合太...
這是非常奇怪的,我還是不明白,爲什麼hanneps ...