2011-03-26 36 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