2016-06-23 7 views
1

마지막 열이있는 TableViewer에 EditingSupport가있어 셀 값을 편집 할 수 있습니다. 뷰어의 스타일은 FULL_SELECTION으로 설정되어 있습니다. 내가 셀을 클릭하면 텍스트 값이 완전히 선택 : 내가 편집을 시작할 수 있습니다 TableViewer 편집 지원이있는 셀의 캐럿 위치를 설정하고 FULL_SELECTION을 제거하는 방법

"max value" is fully selected

, 그것은 현재의 값 "max value"을 지우고 새로운 가치를 시작합니다

.

그러나 마우스를 특정 위치로 이동하여 편집하려면 1 초 정도 지연해야합니다. 첫 번째 클릭 후 바로 선택을 너무 빨리 클릭하면 셀이 선택 해제됩니다.

이를 방지 할 수있는 방법이 있습니까? 셀을 완전히 선택하지 않을 수 있습니까? 또는 텍스트의 끝에 항상 캐럿이 있습니까? 감사!

답변

1

TextCellEditor을 셀 편집기로 사용한다고 가정합니다.

TextCellEditor을 확장 자신의 클래스를 작성하고 뭔가처럼하는 doSetFocus 클래스를 오버라이드 (override) :

@Override 
protected void doSetFocus() 
{ 
    super.doSetFocus(); 

    if (text != null) { 
    text.setSelection(0, 0); 
    } 
} 
+0

예 저는'TextCellEditor'를 사용합니다. 약간의 변경을'text.setSelection (텍스트 .getText(). 길이());'텍스트의 끝 부분에 캐럿을 설정합니다. 감사! –

0

전체 선택 및 설정 캐럿을 제거하기 위해 doSetFocus를 오버라이드 (override), 텍스트의 끝과 text.setSelection(text.getText().length());

것은 무시하도록 설정 더블 클릭 이벤트, 오버라이드 getDoubleClickTimeout to return 0