Cách thực sự mới là sử dụng e4 RCP thuần túy sử dụng mô hình ứng dụng mới với các lệnh và trình xử lý! (nhưng e4 không hỗ trợ nhiều mã hiện có). Trong e4, các menu và thanh công cụ được xác định trong mô hình ứng dụng. Các lệnh và trình xử lý được sử dụng theo cách tương tự như mã truyền thống (nhưng trình xử lý được triển khai khác).
Đối với kiểu Eclipse 3 như bạn đã thấy, có một mớ bòng bong hoặc nhiều cách thực hiện. Eclipse 4.3 không chấp nhận một số phiên bản cũ nhất (và điều này hiện đã được gắn cờ trong plugin.xml
).
Nếu bạn đang viết một RCP sử dụng ActionBarAdvisor
của riêng nó thì bạn có thể xác định các mục trên thanh công cụ của mình ở đó. Hoặc bạn có thể xác định chúng trong plugin.xml
cho các plugin riêng lẻ. Cả hai phương pháp đều ổn. Bản thân Eclipse xác định các hành động cốt lõi trong trình cố vấn với phần bổ trợ bổ sung xác định nhiều hơn trong plugin.xmls của chúng.
Các hành động như Lưu cần được xử lý bởi nhiều phần (chẳng hạn như trình chỉnh sửa) nên được tạo trong trình cố vấn và sử dụng RetargetAction
. Điều này cho phép mỗi phần riêng lẻ kết nối hành động của riêng mình với hành động được xác định chung. Điều này cũng có thể được thực hiện bằng các lệnh commands
và nhiều trình xử lý commands
gần với kiểu e4 hơn.
org.eclipse.ui.menus
hiện là điểm mở rộng chính để đóng góp vào menu và thanh công cụ (bỏ qua tất cả các phần không dùng nữa). Điều này buộc bạn phải sử dụng commands
và các trình xử lý commands
.
Cố vấn thanh hành động Eclipse là org.eclipse.ui.internal.ide.WorkbenchActionBuilder
có thể hữu ích mặc dù nó lớn.
Tôi nghĩ rằng thanh mát trong Kepler được xây dựng bằng cách sử dụng mô hình ứng dụng e4 mới với việc tạo kiểu bằng cách sử dụng một số CSS phức tạp.