eclipse中如何打开一个编辑器

原文:http://www.cnblogs.com/youngerbaby/articles/380100.html

 

eclipse中打开一个编辑器要调用

IWorkbenchPage.openEditor(IEditorInput input, String editorId)

因此要打开一个编辑器要获得3个对象,IWorkbenchPage实例、IEditorInput实例、editorId
1. 获得IWorkbenchPage实例

1 IWorkbenchWindow dwindow  =  PlatformUI.getWorkbench().getActiveWorkbenchWindow();
2 IWorkbenchPage wbPage  =  dwindow.getActivePage();


2. 获得IEditorInput实例

private  IProject getActiveProject()  {
        IEditorPart editor 
=  PlatformUI.getWorkbench()
                .getActiveWorkbenchWindow().getActivePage().getActiveEditor();
        
if  (editor.getEditorInput()  instanceof  FileEditorInputProxy)  {
            FileEditorInputProxy fei 
=  (FileEditorInputProxy) editor
                    .getEditorInput();
            IFile f 
=  fei.getFile();
            
return  f.getProject();
        }

        
return   null ;
    }

 

private  IFile getFile(String fileName)  {
        IProject prj 
=  getActiveProject();
        
if  (prj  ==   null )
            
return   null ;
        
try   {
            IResource[] members 
=  prj.members();
            
for  (IResource r : members)  {
                
if  (r.getName().equals(fileName))  {
                    
return  (IFile) r;
                }

            }

        }
  catch  (CoreException e)  {
            
//  TODO Auto-generated catch block
            e.printStackTrace();
        }

        
return   null ;
    }


3. 获得打开Editor的editorId
editor plugin.xml里面定义的editorId,如果不知道的话可以用下面代码获得:

private  String getEditorID(IFile file)  {

        IEditorDescriptor desc 
=   null ;
        
try   {
            desc 
=  IDE.getEditorDescriptor(file);
        }
  catch  (PartInitException e)  {
            
//  TODO Auto-generated catch block

        }

        
if  (desc  ==   null )
            
return  YourPlugin.getDefault().getWorkbench()
                    .getEditorRegistry().findEditor(
                            IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID).getId();
        
else
            
return  desc.getId();
    }

三个对象实例都有了,就可以调用上面第一行代码打开编辑器了!

IWorkbenchPage.openEditor( new FileEditorInput(IFile), editorId)

 

阅读更多
文章标签: eclipse null file
个人分类: 网络收集
上一篇Eclipse RCP开发基础
下一篇Java编程异常与错误
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭