저는 3.8-e4 하이브리드를 작업 중입니다 (즉, Luna 종속성이 있지만 아직 Application.e4xmi를 사용 하지 않습니다 ). 그래서 우리는 기본적으로 컴팩트 레이어를 실행하고 있습니다.
그렇게 말하면 이러한 불쾌한 뷰를 편집기 폴더에 쌓는 e4 프로그래밍 방식을 찾는 것이 좋을 것입니다.
1.) 문제
에디터 영역에 일반 뷰 폴더를 배치하여 런타임에 열리는 각 뷰가 그곳에서 열리도록하고 싶습니다.
( 이 질문 에서 도난당한 사진 )
2.1) 가능한 수정 1 번 : plugin.xml 사용
Perspective 확장을 작성하고 상대 org.eclipse.ui.editorss에 대한 관계 스택 을 사용하여 해당 확장에 가능한 각보기를 추가하십시오 . 열릴 수있는 뷰가 너무 많고 프로젝트가 빠르게 확장되는 경우 이는 약간 불편합니다. 또한 와일드 카드보기 ID가 여기서 작동하지 않는다는 것을 알았습니다.
Perspective 확장에 가능한 각보기를 추가 할 시간을 찾으면 작동합니다. 그러나 여기에 추가되지 않은보기 (예 : 다른 폴더에서 열기)를 열면 이후에 열린 각보기는 편집기 영역이 아닌 이전 폴더에서 열립니다 (그렇지 않은 경우 추가 설명을 요청하십시오). 그것을 얻으십시오).
2.2) 가능한 수정 2 번 : Perspective 팩토리에서 코드 사용
에서 IPerspectiveFactory
, 우리는에 액세스 할 수 있습니까 IPageLayout
될 일이,org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout
(E4 물건을).
이제이 ModeledPageLayout
구현은 합리적이지만 문서 및 이상한 공용 API도 없습니다. 이것은 다른 친척 위에 뷰를 쌓을 수있는 가능성을 제공합니다.
modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);
이것은 2.1 의 프로그래밍 방식 버전입니다 . 또한 동일한 문제가 여기에 나타납니다. 뷰가 다른 곳에서 열리면 위의 코드는 쓸모 없게됩니다.
흥미롭게도 stackView
API는 와일드 카드를 지원하지 않습니다 addView
.
2.3) 가능한 수정 번호 3 : 해결 방법 yaaay!
나는 많은 관점을 가지고 있고 각각의 많은 다른 폴더를 가지고 있습니다. 모든 것이 정확하게 배치됩니다.
Eclipse는 시스템의 모든 곳에서 모든 뷰 ID를 가져 오는 API를 제공하기 때문에 관점별로 다음을 수행하고 싶습니다 . 특정 폴더에 추가되지 않은 각 뷰 ID가 편집기 영역 (예 : 편집기 폴더)에 추가됩니다. , 편집기 스택) .
누군가가 더 편리하고 시간을 절약하는 솔루션을 제공하지 않는 한 이것이 나의 마지막 수단이 될 것입니다.
e4 프로그래밍 방식의 대안이 더 유연하다는 것을 기억하십시오!
3.) 관련 질문
- Eclipse RCP-편집기 폴더에서보기 열기
- 이클립스 RCP-에디터 영역에 뷰 스택?
- 처음에 보이지 않는보기가 편집기 영역에 스택 된 사용자 정의 Eclipse 관점
- Google 질문, Lars 답변
e4 릴리스에서는 더 이상 사용되지 않습니다.
4.) Eclipse의 Bugzilla 관련 버그 :
내가 최근에 열어 본이 버그 에는 작은 SSCCE가 첨부되어 있습니다. 이를 재현하는 단계는 이 주석에 설명되어 있으므로 여기에 복사하여 붙여 넣지 않겠습니다.