Eclipse RCP - Mở một dạng xem trong vùng soạn thảo (kết hợp 3.8 / e4)


106

Tôi đang làm việc trên một hybrid 3.8-e4 (tức là chúng tôi có các phụ thuộc Luna, nhưng chúng tôi chưa sử dụng Application.e4xmi ). Vì vậy, về cơ bản chúng ta đang chạy lớp nhỏ gọn.

Với điều đó đã được nói, sẽ rất tuyệt nếu bạn tìm thấy một cách lập trình e4 để xếp chồng những chế độ xem khó chịu này vào thư mục trình chỉnh sửa.


1.) Vấn đề

Tôi muốn đặt một thư mục dạng xem chung trong vùng soạn thảo để mỗi dạng xem được mở trong thời gian chạy sẽ được mở ở đó.

Xem trong thư mục trình chỉnh sửa

(ảnh bị đánh cắp từ câu hỏi này )


2.1) Có thể sửa lỗi số 1: Sử dụng plugin.xml

Tạo tiện ích mở rộng phối cảnh và thêm từng chế độ xem có thể có vào tiện ích mở rộng đó, với ngăn xếp mối quan hệ trên org.eclipse.ui.editorss tương đối . Điều này hơi bất tiện nếu bạn có quá nhiều chế độ xem đang chờ được mở và nếu dự án mở rộng quy mô nhanh chóng. Tôi cũng nhận thấy rằng ID chế độ xem ký tự đại diện không hoạt động ở đây.

SS của plugin.xml với phần mở rộng phối cảnh

Nếu bạn thấy mình có thời gian để thêm từng chế độ xem có thể vào phần mở rộng phối cảnh, điều đó sẽ hiệu quả. Mặc dù, NẾU bạn mở một dạng xem không được thêm vào đây (tức là: mở trong một thư mục khác), thì mỗi dạng xem được mở tiếp theo sẽ được mở trong thư mục trước đó, chứ KHÔNG phải trong vùng soạn thảo (hỏi thêm giải thích nếu bạn không hiểu rồi).


2.2) Bản sửa lỗi có thể có số 2: Sử dụng mã trong nhà máy phối cảnh

Trong IPerspectiveFactory, chúng tôi có quyền truy cập vào IPageLayout, tình org.eclipse.ui.internal.e4.compatibility.ModeledPageLayoutcờ là (công cụ e4).

Bây giờ, việc ModeledPageLayouttriển khai này là hợp lý, nhưng cũng không có tài liệu và các API công khai kỳ lạ. Cái này cung cấp khả năng xếp chồng một chế độ xem lên bất kỳ người thân nào khác

modeledPageLayout.stackView("newView0", IPageLayout.ID_EDITOR_AREA);

Đây sẽ là phiên bản lập trình của 2.1 . Ngoài ra, vấn đề tương tự cũng xuất hiện ở đây. Nếu một chế độ xem được mở ở một nơi khác, đoạn mã trên sẽ trở nên vô dụng.

Khá thú vị, stackViewAPI không hỗ trợ các ký tự đại diện (trong khi các ký tự khác addViewthì có).


2.3) Bản sửa lỗi có thể có số 3: Giải pháp thay thế yaaay!

Tôi có rất nhiều góc nhìn, và rất nhiều thư mục khác nhau trong mỗi góc nhìn. Mọi thứ đều được đặt chính xác.

Vì Eclipse cung cấp các API để lấy tất cả các ID chế độ xem từ mọi nơi xung quanh hệ thống, nên tôi muốn thực hiện như sau, theo quan điểm: mỗi ID chế độ xem chưa được thêm vào một thư mục cụ thể sẽ được thêm vào khu vực trình chỉnh sửa (tức là thư mục trình chỉnh sửa , ngăn xếp biên tập viên) .

Đây sẽ là phương sách cuối cùng của tôi, trừ khi ai đó đưa ra một giải pháp tiện lợi và tiết kiệm thời gian hơn.

Hãy nhớ rằng, một giải pháp thay thế có lập trình e4 linh hoạt hơn!


3.) Các câu hỏi liên quan

Những thứ này sẽ không được dùng nữa cho bản phát hành e4.


4.) Lỗi liên quan trên Bugzilla của Eclipse:

Lỗi gần đây do chính tôi mở này có tệp đính kèm với một SSCCE nhỏ. Các bước để tạo lại điều này được mô tả trong nhận xét này , vì vậy tôi sẽ không sao chép và dán chúng ở đây.


Tôi nghĩ rằng rất ít khả năng điều này có thể được thực hiện khi mã tương thích 3.x được bao gồm. Bạn có thể đặt chế độ xem trong khu vực trình chỉnh sửa bằng cách sử dụng các API e4 nhưng tôi cho rằng điều đó sẽ làm nhầm lẫn mã tương thích.
greg-449

1
Nếu bạn không sử dụng bất kỳ trình chỉnh sửa nào, thì chỉ cần thu nhỏ khu vực được chia sẻ và thiết kế bố cục như bạn muốn.
bebbo

chuyển sang phiên bản mới hơn, nơi này hoạt động hiệu quả.
bebbo

@bebbo Tôi sử dụng trình chỉnh sửa và tôi không thể chuyển toàn bộ nội dung sang e4 cùng một lúc. Phần mềm doanh nghiệp. :-)
GGrec

Câu trả lời:


1

Tôi khuyên bạn nên sử dụng bản sửa lỗi Có thể số 3, vì tôi nghĩ không có phương pháp nào nhanh hơn để thực hiện việc này.


bất kỳ đề xuất nào với câu trả lời pripr có thể được viết dưới dạng nhận xét thay vì một câu trả lời mới.
Mahalakshmi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.