2012-03-06 65 views
0

我想以編程方式更改我的CellList中的「高亮顯示」項目,基於另一個控件(文本框)中的鍵盤事件。我可以得到鍵盤事件很好,但是當我使用CellList時...GWT CellList setKeyboardSelected

int row = getKeyboardSelectedRow() + 1; 
setKeyboardSelected(row,selected,stealFocus) 

它沒有任何影響。如果我真的把注意力放在我的cellList上,我可以上下移動並突出顯示一行。如果我在setKeyboardSelected()方法中將「stealFocus」設置爲true,那麼它「起作用」,除非我真的想把重點放在文本框而不是cellList上。我該怎麼做呢?我嘗試過fireEvents,將按鍵發送給CellList,但這也沒有幫助。

Ĵ

+0

它看起來像我需要自己渲染,忽略鍵盤突出顯示功能。我如何突出顯示某一行? – Joel 2012-03-07 16:05:28

回答

0

我沒有立即解決,但如果我是你,我會通過setKeyBoardSelected的代碼com.google.gwt.user.cellview.client.AbstractCellTable在調試模式下的一步。 也許這是它出錯的地方?

if (KeyboardSelectionPolicy.DISABLED == getKeyboardSelectionPolicy() 
|| !isRowWithinBounds(index) || columns.size() == 0) { 
return; 
} 
+0

我意識到這個問題,CellList必須專注於繪製鍵盤選定的項目。看起來好像沒有辦法通過重寫方法來解決它。我想我將不得不自己繪製它。雖然我認爲有一種渲染方法,但我不確定這一點是如何工作的。 – Joel 2012-03-07 13:11:59

相關問題