youngerbaby

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

IWorkbenchPage.openEditor(IEditorInput input, String editorId)
因此要打开一个编辑器要获得3个对象,IWorkbenchPage实例、IEditorInput实例、editorId
1. 获得IWorkbenchPage实例
1IWorkbenchWindow dwindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
2IWorkbenchPage 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();
    }
三个对象实例都有了,就可以调用上面第一行代码打开编辑器了!

分类:

技术点:

相关文章:

  • 2022-01-08
  • 2022-01-28
  • 2021-07-10
  • 2021-06-10
  • 2022-01-08
  • 2022-01-09
  • 2021-10-24
猜你喜欢
  • 2022-12-23
  • 2022-02-15
  • 2021-09-23
  • 2021-12-25
  • 2021-12-09
  • 2021-12-27
  • 2021-06-08
相关资源
相似解决方案