2012-03-06 3 views
2

파일 브라우저보기를 작성해야하는 Eclipse RCP 애플리케이션이 있습니다. 루트 (로컬 컴퓨터의 일부 위치)에 전달하려고하고 뷰는 해당 위치에있는 모든 파일과 폴더를 채워야합니다. 현재 내가 거기에 디렉토리 경로를 포함하는 사용자 정의 루트 개체를 반환Eclipse RCP : Common Navigator - 더블 클릭시 파일 열기

public class CurrDirExplorerView extends CommonNavigator 

나는 오버라이드 (override) 한 따라서 내보기에 getInitialInput()을 CNF를 사용하고 있습니다. IResources이 작업 공간에 연결되어 있으므로 java.io.File을 사용하고 있습니다. java.io.File에 대한 래퍼 클래스와 같은 요소 객체를 만들고 레이블 및 컨텐트 공급자를 지원하는 이름 등을 반환합니다. 내보기는 내 루트 개체에 지정된 위치에 모든 폴더와 파일을 표시하지만 그들은 IResources이 아니므로 파일을 두 번 클릭하면 편집기에서 열리지 않습니다.

이렇게 할 방법이 있습니까?

답변

2

CommonNavigator는 보호 방법이있다 :

보호 공극 handleDoubleClick (DoubleClickEvent anEvent);

불행히도 javadoc은 "이 방법은 내부 용입니다."라고 말하면서 더 나은 옵션이 없다면 여전히 유용합니다.

다른 방법은 addDoubleClickListener()가있는 getCommonViewer()이고 다른 방법으로는 doubleclick 처리를위한 자체 논리를 정의 할 수 있습니다. 희망이 도움이됩니다.

+0

번들 org.eclipse.ui.workbench의 preferencestore에서 설정 키 (부울) OPEN_ON_SINGLE_CLICK을 설정해야? 나는 그것을 올바른 방법으로하고 싶습니다. 그리고 나는 내부적으로 만 사용하는 방법을 사용하고 싶지 않습니다. – nbz

+1

시도해 보겠습니다. @Override public void createPartControl (Composite aParent) { super.createpartControl (aParent); getCommonViewer() .... } –

+0

createPartControl을 재정의하는 경우 CNF 대신 TreeViewer를 사용하면 더 좋지 않습니까? – nbz

1

네비게이터에서 사용하는 전역 기본 설정 (그림 참조)이 있습니다. 당신이 환경 설정을 미리 설정하고 싶은 경우에 당신은 어디에서이 getCommonViewer(). addDoubleClickListener()을 배치 할

enter image description here

+0

답변 해 주셔서 감사합니다.하지만 불행히도 제가 찾고있는 것이 아닙니다. 나는 공통 네비게이터를 확장하는 내 자신의 뷰를 만들었고 java.io.file과 IResource를 사용하지 않기 때문에 필자 스스로 파일 열기를 관리해야합니다. – nbz