2008-10-05 35 views
28

Tôi có một trình cắm thêm vào một ứng dụng RCP Eclipse có một khung nhìn. Sau khi một sự kiện xảy ra trong ứng dụng RCP, trình cắm thêm được khởi tạo, các phương thức của nó được gọi để điền vào mô hình của trình cắm thêm, nhưng tôi không thể tìm cách làm cho khung nhìn xuất hiện mà không đi tới trình đơn "Hiển thị Xem ..." .Lập trình hiển thị một khung nhìn từ một trình cắm thêm của Eclipse

Tôi nghĩ rằng sẽ có một cái gì đó trong singleton bàn làm việc có thể xử lý điều này, nhưng tôi đã không tìm ra cách bất cứ nơi nào.

Trả lời

45

Bạn có thể tìm cho điều này:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId"); 
+2

Điều quan trọng cần lưu ý là arg0 có thể là trường VIEW_ID của khung nhìn. – JeffV

+0

Tôi đặt nó ở đâu? Tôi đặt nó trong tất cả các lớp học của tôi, nhưng vẫn không hoạt động. (Tôi vô tình đóng chế độ xem trong ứng dụng RCP) – Sterls

18

Nếu gọi từ xử lý của một lệnh

HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId); 

sẽ tốt hơn, như tôi biết.

4

Tôi thấy cần phải đưa chế độ xem lên mặt trước sau khi nó đã được mở và được đẩy lên nền. Phương pháp kích hoạt thực hiện thủ thuật.

PlatformUI.getWorkbench() 
    .getActiveWorkbenchWindow() 
    .getActivePage() 
    .activate(workbenchPartToActivate); 

LƯU Ý: Các workbenchPartToActivate là một thể hiện của IWorkbenchPart.

0

Trong e4, EPartService chịu trách nhiệm mở Bộ phận. Điều này cũng có thể được sử dụng để mở eP ViewParts. Khởi tạo lớp sau thông qua IEclipseContext của bạn, gọi phương thức openPart-Method, và bạn sẽ thấy khung nhìn trình duyệt nội bộ Eclipse.

public class Opener { 
    @Inject 
    EPartService partService; 

    public void openPart() { 
     MPart part = partService.createPart("org.eclipse.ui.browser.view"); 
     part.setLabel("Browser"); 

     partService.showPart(part, PartState.ACTIVATE); 
    } 
} 

Here bạn có thể tìm thấy ví dụ về cách hoạt động cùng với ứng dụng của bạn.e4xmi.

Các vấn đề liên quan