그래서 잘 작동하는 클릭 이벤트 선택 모델이있는 셀 테이블이 있습니다. 나중에 UP 및 DOWN 화살표를 눌러 강조 표시된 행을 변경할 수 있음을 알았지 만, 끔찍한 일은 실제로 SelectionChangeEvent를 호출하기 위해 Space 키를 눌러야한다는 것입니다. 나는 UP과 DOWN 이벤트를 잡아서 SPACE 이벤트를 발사하여 조금만 속일려고 노력하고있다. 여기에 어떤 도움을 주시면 감사하겠습니다 내 코드 슬프게도 을 :(작동하지 않습니다 GWT CellTable 행을 강조 표시
table.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
table.sinkEvents(Event.KEYUP);
table.sinkEvents(Event.KEYDOWN);
table.sinkEvents(32);
table.addHandler(new KeyUpHandler(){
@Override
public void onKeyUp(KeyUpEvent event)
{
System.out.println(event.getNativeKeyCode());
if(event.getNativeEvent().getKeyCode() == 40)
{
// down is pressed
int i = rows.getFilterList().indexOf(selectionModel.getLastSelectedObject())+1;
if(i >= 0 && i < rows.getFilterList().size())
{
// selectionModel.setSelected(selectionModel.getLastSelectedObject(), false);
// selectionModel.setSelected(rows.getFilterList().get(i), true);
// SelectionChangeEvent.fire(selectionModel);
System.out.println("firing native event space");
DomEvent.fireNativeEvent(Document.get().createKeyUpEvent(false, false, false, false, 32), table);
}
}
else if(event.getNativeEvent().getKeyCode() == 38)
{
// up is pressed
int i = rows.getFilterList().indexOf(selectionModel.getLastSelectedObject())-1;
if(i >= 0 && i < rows.getFilterList().size())
{
// selectionModel.setSelected(selectionModel.getLastSelectedObject(), false);
// selectionModel.setSelected(rows.getFilterList().get(i), true);
// SelectionChangeEvent.fire(selectionModel);
System.out.println("firing native event space");
DomEvent.fireNativeEvent(Document.get().createKeyUpEvent(false, false, false, false, 32), table);
}
}
}
}, KeyUpEvent.getType());
32
가 가정하여 공간에 대한 NativeEvent입니다처럼 내 콘솔 인쇄 뭔가!40
firing native event space
32
그렇게 가정하여 이벤트 유형 32가 객체 테이블에 대해 호출 중임
화면의 오른쪽에 셀 테이블이 없으므로 목록에서 추가 정보가 빠져 나오므로 객체가 선택되어 있는지 확인합니다. 모든 정보를 보여주십시오. 나는 UP과 DOWN을 눌러 RHS 정보가 바뀌고 SPACE를 눌러 정보 변경을 요구할 필요가 없다.
나는 메모리를 기반으로 말하고 있지만, 나는 시간이 있다면 나는 방법으로 table.setKeyboardSelectedRow (row, stealFocus)를 사용했다. 나는 혼자 테스트 할 것이지만, 시도해 볼 가치가있다. 기본적으로 KEY_UP 이벤트를 캡처하는 경우 row = actualRow -1 (및 viceversa)입니다. 행운을 빕니다! – apanizo