2017-11-15 13 views
3

Vaadin 그리드 또는 트리 그리드를 탐색하고 키보드 화살표 키만 사용하여 항목을 선택할 수 있는지 알고 싶습니다. 구성 요소를 테스트하는 동안 본 것부터 기본 동작은 그리드의 특정 셀 또는 트리 그리드의 특정 행으로 이동하는 것 같습니다. 사용자가 스페이스 바를 누르면 선택이 가능합니다. grid에 shortcutListener를 추가하려고 시도했지만 화살표 키가 작동하지 않는 것 같습니다. 선택한 항목으로 그리드 스크롤 막대가 움직이지 않습니다.Vaadin 그리드를 탐색하고 키보드를 사용하여 항목을 선택하는 방법은 무엇입니까?

grid.addShortcutListener(new ShortcutListener("Down", KeyCode.ARROW_DOWN, null) { 
    @Override 
    public void handleAction(Object sender, Object target) { 
     //..// 
     selectedItem = dataSource.get(currentSelectedItemIndex); 
     grid.select(selectedItem); 
     grid.scrollTo(currentSelectedItemIndex); // this doesn't seem to do anything?? 
     //..// 
    } 
}); 

내 문제는 선택을 다른 셀/행으로 이동시키는 이벤트를 얻는 방법을 모르겠다는 것입니다. 다음은 내가 직면 한 문제를 나타내는 이미지입니다. 파란색 테두리 만있는 항목은 화살표 키를 사용하여 선택되었습니다. 사용자가 스페이스 바를 사용하지 않고 화살표 키 (아래 또는 위)를 누르면 항목을 자동으로 선택하고 싶습니다. 여기에서 가져온 이미지 : https://demo.vaadin.com/sampler/#ui/grids-and-trees/grid/features

image

EDIT1 : - 8.1.6가 내가 만약 angel의 최신 버전을 사용하고 있습니다.
Edit2 : 적어도 위쪽/아래쪽 화살표를 사용하여 행/열을 사용하지 않고 다음/이전 셀로 이동을 등록 할 수 있는지 확인하기 위해 몇 개의 수신기를 추가하려고했습니다. 여기 내가 시도한 청취자의 목록입니다 :

  • addSelectionListener이 - 스페이스 바를 누르 또는 마우스 클릭 한 후 선택을 등록 만. 아니 내가 뭘 찾고있어.
  • addItemClickListener - 마우스 클릭으로 선택한 항목 만 등록합니다.
  • addShortcutListener - 누른 키를 등록하지만 화살표로 작동하지 않습니다.

잠재적으로이 문제에 도움이 될만한 청취자가 있습니까?

+0

어떤 버전, angel이라는 8.x.x를? – pirho

+0

@pirho 예, 추가하는 것을 잊었습니다. 현재 버전 8.1.6을 사용하고 있습니다. –

답변

1

그리드 구성 요소에는 기본적인 키보드 탐색 기능이 있습니다. 당신이 키보드 탐색을위한 당신이 언급 한 같은 고급 옵션을, 필요하면 내가 따뜻하게이 추가 기능을 테스트하는 것이 좋습니다 :

https://vaadin.com/directory/component/gridfastnavigation-add-on

+0

그래서 어떤 청취자가 다음 셀에 움직임 (포커스)을 등록해야합니까? 내가 올바르게 이해했다면, 데모 어플리케이션은이 움직임을 감지 할 수 있습니다. 데모 애플 리케이션 Vaadin 8 github 링크에서 사용할 수 없습니다, 그래서 내가 http://patrik.app.fi/GridFastNavigation-demo-0.2.0/ 여기에서 그것을 테스트 한 기능이 같아야합니다. –

+0

버전 0.2.0은 매우 오래되었으며 그 이후로 많은 개선이있었습니다. Vaadin 8을 사용하는 경우 여기에서 소스를 확인하십시오. https://github.com/TatuLund/GridFastNavigation/tree/vaadin8 초점을 따라 가려면 CellFocusListener 및 CellFocusEvent를 사용하십시오. 추가 기능의 최신 버전에는 대부분의 API에 JavaDocs가 있습니다. –

+0

그리고 또 하나의 코멘트, 코드 repo github.com/TatuLund/GridFastNavigation/tree/vaadin8에는 로컬로 실행할 수있는 테스트 앱이 포함되어 있습니다. 그냥 자식 복제를하고 그것을 사용하십시오 –