2011-03-26 55 views
0

我在我們的RAP應用程序上有一個Eclipse公共導航器(特定於我們的項目)。 因此,一般情況下,當用戶在左側導航器中的資源時,它將在右側導航器中打開。現在,假設,如果點擊某個擴展名的文件,我想打開一條自定義消息,並打開並彈出在用戶面前以對話框的形式出現。 我該怎麼做到這一點Eclipse公共導航器框架

+0

當你說「它在右側導航器中打開」時,你的意思是它在編輯器中打開了嗎? – katsharp 2011-03-26 19:19:58

回答

0

或者你可以註冊一個相關的發射一特定的編輯器:

<editor 
     id="com.foo.MyEditor" 
     launcher="com.foo.MyEditorLauncher" 
     default="true" 
     extensions="your_extension_here" 
     icon="any icon for your file" 
     name="Dialog editor"> 
</editor> 

並執行啓動器以顯示您想要的對話框:

public class MyEditorLauncher implements IEditorLauncher { 
    @Override 
    public void open(IPath path) { 
     Shell shell = Display.getDefault().getActiveShell(); 
     MessageDialog.openInformation(shell, "Not Editable", "Can't open this element"); 
    } 
} 

用戶將始終能夠使用替代編輯器,但默認情況下他們會收到該消息。

+0

感謝您的關注海梅, – VINEEL 2011-04-01 04:45:21

0

你會想通過編輯器擴展點註冊一個編輯器對該擴展名的文件。該編輯器的主體可以是你想要的信息。

+0

不,我的要求是,當用戶點擊某些擴展名的文件時,應該彈出一個錯誤消息框,指出帶擴展名的文件(例如「.cert」)無法打開。 – VINEEL 2011-03-28 04:41:20

+0

我只是需要一個消息框,我不想讓編輯打開全部。請幫助我。 – VINEEL 2011-03-29 13:53:09

0

嘗試在navigatorContent中註冊一個ActionProvider並使用appropiated enablement(以便將其應用於您感興趣的文件)。

在(延伸CommonActionProvider),您可以訂閱雙擊事件在init方法自定義操作提供:

@Override 
public void init(ICommonActionExtensionSite aSite) { 
    super.init(aSite); 
    IWorkbench workbench = MyPlugin.getDefault().getWorkbench(); 
    doubleclick = new IDoubleClickListener() { 
     @Override 
     public void doubleClick(DoubleClickEvent event) { 
      // show Your Popup Here !!! 
     } 
    }; 
    aSite.getStructuredViewer().addDoubleClickListener(doubleclick); 
} 
+0

這應該只發生在有選擇的項目上,並不是Navigator.Up中的所有項目都會在任何資源上雙擊,發生一個打開的動作(自定義),如何選擇性地配置某些項目,以便雙擊它們,盒彈出 – VINEEL 2011-03-29 13:51:03