2010-05-11 39 views
6

Tôi có một yêu cầu để hiển thị một chỉ báo trạng thái trong thanh trạng thái của một ứng dụng Eclipse. Tôi không thể đóng góp thông qua ApplicationWindowAdviser (một nhóm khác sở hữu sản phẩm cốt lõi), nhưng tôi cảm thấy chắc chắn rằng tôi có thể đóng góp thông qua một điểm mở rộng. Mặc dù nhiều googling, tôi không thể tìm thấy bất cứ điều gì mô tả làm thế nào để làm điều này.Đóng góp vào Thanh trạng thái/Cắt trong Eclipse RCP

Trả lời

1

Một giải pháp khả thi để kiểm tra:
Bạn sẽ có thể để xác định một fragment để có thể thêm vào các chức năng sản phẩm cốt lõi. (see here cho ví dụ khác).

Ý tưởng là thêm chức năng vào plugin cốt lõi. Có thể đóng góp của bạn sau đó có thể được sáp nhập vào sản phẩm chính theo cách đó.

8

Trong phần mở rộng org.eclipse.ui.menuContributions, sử dụng "toolbar: org.eclipse.ui.trim.status" làm locationURI. Bạn có thể đóng góp lệnh/điều khiển tùy chỉnh vào thanh trạng thái.

0

Thứ nhất, bổ sung thêm thanh trạng thái để application.e4xmi (Application> Windows và Dialogs> Trimmed Window> TrimBars> WindowTrim (Bottom)> Toolbar> Công cụ Control)

Tạo java lớp và đưa ra địa chỉ trong thanh công cụ (lớp uri).

Triển khai thanh trạng thái e4 khác với triển khai e3. Trong e4, bạn có thể sử dụng trình tổ chức sự kiện để gửi văn bản (thông tin) đến thanh trạng thái.

@Inject 
private IEventBroker eventBroker; 
private static final String STATUSBAR ="statusbar"; 

@Inject @Optional 
public void getEvent(@UIEventTopic(STATUSBAR) String message) { 
    updateInterface(message); 
} 

@PostConstruct 
public void createControls(Composite parent) { 
    .... \\ swt definitions e.g. label 
} 

public void updateInterface(String message) 
    { 
     try{ 
      Display.getDefault().asyncExec(new Runnable() { 
       @Override 
       public void run() { 
       try{ 
         label.setText(message); 
        } 
        catch(Exception exc){ 
         System.out.println(exc); 
        }    
       } 
      }); 
     } 
     catch(Exception exception){ 
      System.out.println(exception); 
     } 
    } 

Ngoài ra, đừng quên thêm eventbrokersender vào một lớp java khác.

@Inject 
private IEventBroker eventBroker; 
private static final String STATUSBAR ="statusbar"; 
eventBroker.send(STATUSBAR, "status bar test message.."); 
Các vấn đề liên quan