2013-02-21 2 views
1

SWT Tree에 문제가 있습니다. 내 상황은 다음과 같습니다. SWT 트리가 있습니다.이 트리에는 TreeItem을 많이 포함하는 많은 TreeItem (로그 항목)이 있습니다. 이러한 로그 항목에는 실제로 TreeColumns에 표시 할 수없는 긴 메시지가 있습니다. 그래서 제 생각은 Tree에 Listener를 추가하는 것입니다. Listener는 항목의 세부 정보를 보여주는 DoubleClick의 새로운 Dialog를 엽니 다. 여태까지는 그런대로 잘됐다. 항목을 두 번 클릭하면 작동합니다. 그러나 부모 항목을 두 번 클릭하면 확장되고 좋은 점이 있지만 두 번 클릭 수신기가 활성화되어 대화 상자가 열립니다. 그건 내가 원하는거야. 1)/확장에서 나무를 방지 자동으로 더블 클릭에 의해 무너 자신 또는 2)를 인식하여 메소드를 구현 항목이 확대되었다고하고, 이벤트에 있습니다SWT : 더블 클릭으로 트리가 확장되지 않도록 하시겠습니까?

그래서,이 문제에 대한 두 가지 솔루션은 중단된다.

나는 1이나 2를하는 법을 모른다. 사전에

감사합니다.

답변

1

당신이 TreeViewer를 사용하는 경우, 당신은 IOpenListener

treeViewer.addOpenListener(new IOpenListener() { 

     @Override 
     public void open(OpenEvent event) { 
} 
} 
+0

감사합니다. 트리를 만들었고 마지막에 다음을 넣었습니다. TreeViewer tv = 새 TreeViewer (트리); 코드를 추가했습니다. – user2090321

0

의 사용을 훨씬 더 잘 작동 다른 해결책이 있습니다를 만들 수 있습니다.

'sambi reddy'의 문제는 doubleclick으로 트리가 확장되는 것을 방지했지만 왼쪽 손가리를 클릭하여 확장되지 못하게했습니다.

내 솔루션 (잘 작동하는)은 쉬웠다. 트리 확장/수신을 경청하고 확장/콜 레이스 구현을 MouseDoubleClick-Listener에서 제거한 TreeListener를 추가했다.

아니요 JFace TreeViewer가 없습니다. 정상적으로 작동합니다.

1

나는 위의 대답이 오히려 가짜임을 발견했습니다. 다음은 나를 위해 일했다 :

treeViewer.getControl().addListener(SWT.MeasureItem, new Listener(){ 
    @Override 
    public void handleEvent(Event event) { 
    }}); 

나는 알고있다. 그것은 의미가 없다. 문제의 실제 원인에 대한 설명과 위의 내용이 수정 된 이유는 Eclipse Community Forums에서이 토론을 참조하십시오 : Disabling Treeviewer doubleclick expand/collapse.

관련 문제