2010-09-19 39 views
2

我有一个实现IObjectActionDelegate的Action。在这个动作中,当我选择我的动作时,我想对包Explorer中选定的文件执行一些操作。我只有一个运行(IAction操作)方法,并且ObjectAction过滤这些文件,以便该操作仅出现在我想要的文件中。如何从Eclipse中获取Package Explorer中的选定文件

我正在寻找某种方式从选择中检索IFile,以便我可以通过该文件执行我的操作。

谢谢,

+4

可能重复的[如何从一个Eclipse插件获得在包浏览器所选择的节点(http://stackoverflow.com/questions/585802/how-to-get-the-selected-node-在-The-package-explorer-from-an-an-eclipse-plugin) – 2010-09-19 21:32:23

+0

确实谢谢 – 2010-09-23 11:49:41

+1

请标记为已回答,所以不会显示为未答复,谢谢 – ramirogm 2012-05-07 22:10:03

回答

0

这里是获取选择的代码。

if (selection instanceof IStructuredSelection) { 
    IStructuredSelection ssel = (IStructuredSelection) selection; 
    Object obj = ssel.getFirstElement(); 
    IFile file = (IFile) Platform.getAdapterManager().getAdapter(obj, IFile.class); 

    if (file == null) { 
     if (obj instanceof IAdaptable) { 
      file = (IFile) ((IAdaptable) obj).getAdapter(IFile.class); 
     } 
    } 

    if (file != null) { 
     //Deal with the file 
    } 
} 
相关问题