eclipse中如何打开一个编辑器

本文介绍了在Eclipse中打开编辑器的具体步骤,包括获取IWorkbenchPage实例、创建IEditorInput实例及确定editorId的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

IWorkbenchPage.openEditor(IEditorInput input, String editorId)

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

IWorkbenchWindow dwindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
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();
    }

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值