2010-05-11 52 views
6

我需要在Eclipse應用程序的狀態欄中顯示狀態指示器。我無法通過ApplicationWindowAdviser進行貢獻(另一個團隊擁有核心產品),但我確信我應該能夠通過擴展點進行貢獻。儘管有大量的使用Google,但我找不到任何描述如何執行此操作的內容。貢獻於Eclipse中的狀態欄/修剪RCP

回答

1

一個可能的解決方案,以檢查:
你應該能夠以能夠添加到核心產品功能定義fragment。 (另一個例子是see here)。

這個想法是添加功能的核心插件。可能你的貢獻可以通過這種方式合併到主要產品中。

8

在org.eclipse.ui.menuContributions擴展中,使用「toolbar:org.eclipse.ui.trim.status」作爲locationURI。您可以將命令/自定義控件提供給狀態欄。

0

首先,添加狀態欄application.e4xmi(應用程序>窗口和對話框>修剪窗口> TrimBars> WindowTrim(下)>工具欄>工具控制)

創建的.java類,並在工具欄給出的地址(類URI)。

e4狀態欄的實現與e3實現不同。在e4中,您可以使用eventbroker將文本(信息)發送到狀態欄。

@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); 
     } 
    } 

此外,不要忘記添加eventbrokersender到另一個java類。

@Inject 
private IEventBroker eventBroker; 
private static final String STATUSBAR ="statusbar"; 
eventBroker.send(STATUSBAR, "status bar test message..");