如何强制为相同的输入打开第二个编辑器?

2024-02-06

我正在编写一个 Eclipse 插件,可以更轻松地编辑 Android 资源。当用户单击项目内的任何 XML 资源文件时,将打开一个编辑器,允许一次编辑项目中的所有资源。

我想添加在单独的默认 Android 资源编辑器中打开同一文件的功能。我知道该编辑器的 ID,但我无权访问其类。

调用 IDE.openEditor 不会执行任何操作,因为已经为该文件打开了一个编辑器,即使我指定了另一个 Android 编辑器的 ID。

如何强制 Eclipse 打开另一个编辑器来输入相同的内容?

另一方面,如果我只能访问它的 id 而不能访问它的类,是否可以在 MultiPageEditorPart 中嵌入另一个编辑器?


The IDE.openEditor方法最后调用相应的IWorkbenchPage打开编辑器的方法。

对您的情况有用的方法是org.eclipse.ui.IWorkbenchPage.openEditor(IEditorInput, String, boolean, int)

    /**
     * Opens an editor on the given input.
     * <p>
     * If this page already has an editor open that matches the given input
     * and/or editor id (as specified by the matchFlags argument), that editor
     * is brought to the front; otherwise, a new editor is opened. Two editor
     * inputs are considered the same if they equal. See
     * <code>Object.equals(Object)<code>
     * and <code>IEditorInput</code>. If <code>activate == true</code> the editor
     * will be activated.  
     * </p><p>
     * The editor type is determined by mapping <code>editorId</code> to an editor
     * extension registered with the workbench.  An editor id is passed rather than
     * an editor object to prevent the accidental creation of more than one editor
     * for the same input. It also guarantees a consistent lifecycle for editors,
     * regardless of whether they are created by the user or restored from saved 
     * data.
     * </p>
     * 
     * @param input the editor input
     * @param editorId the id of the editor extension to use
     * @param activate if <code>true</code> the editor will be activated
     * @param matchFlags a bit mask consisting of zero or more of the MATCH_* constants OR-ed together
     * @return an open editor, or <code>null</code> if an external editor was opened
     * @exception PartInitException if the editor could not be created or initialized
     * 
     * @see #MATCH_NONE
     * @see #MATCH_INPUT
     * @see #MATCH_ID
     * @since 3.2
     */
    public IEditorPart openEditor(final IEditorInput input,
        final String editorId, final boolean activate, final int matchFlags)
        throws PartInitException;

你需要调用它并传递它MATCH_ID | MATCH_INPUT这样,在尝试确定是否应重用现有编辑器或应创建新编辑器时,会考虑编辑器 ID。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何强制为相同的输入打开第二个编辑器? 的相关文章

  • 设计抽象类时是否应该考虑序列化问题?

    一般来说这个问题来自Eclipse建议在抽象类上添加串行版本UID 由于该类是抽象类 因此该类的实例永远不会存在 因此它们永远不会被序列化 只有派生类才会被序列化 所以我的问题是放置一个安全 SuppressWarnings serial
  • 在 Eclipse 中的调试会话期间记录所有跟踪信息

    我想记录调试会话的每个步骤的所有调试信息 以便稍后处理所有这些数据 例如调用的方法的名称 参数值 所有变量值等 有没有任何选项可以实现此目的 我应该在哪里更改代码才能实现此目的 一件重要的事情 它不是一个 java 程序 这是一个使用 ac
  • 尝试通过 Java 8 中的 JDBC-ODBC 连接到 .accdb 文件时出现 ClassNotFoundException

    我正在 Eclipse EE IDE 中的 Java 项目中工作 我必须在其中查询 accdb文件 问题是当我尝试加载驱动程序然后连接到数据库时 它给了我一个异常错误 My code try String filePath myfilepa
  • Android 的代码覆盖率[重复]

    这个问题在这里已经有答案了 可能的重复 Android测试代码覆盖率 Eclipse https stackoverflow com questions 3282702 android test code coverage eclipse
  • 将非 Android 项目添加到 Android 项目

    我在 Eclipse 中有三个项目 Base Server 和 AndroidClient Base和Server是Java 1 7项目 而AndroidClient显然是一个android项目 基础项目具有在服务器和 Android 客户
  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • Eclipse 中的 Java EE 视角

    我有标准版的 eclipse Galileo 现在我想在上面开发企业应用程序 知道如何获得 Java EE 视角吗 标准版如何安装Java EE工具 我有同样的问题 我首先使用 Ubuntu 软件中心安装了最新的 Eclipse 平台 In
  • 如何从 Mac OS X 中完全删除 Eclipse(包括设置和插件)?

    我的 Eclipse 与 GAE 损坏并且工作异常 所以我从Application文件夹中删除了Eclipse 但是留下了垃圾 我重新下载了全新的 eclipse 但它以旧设置运行 并且损坏的 GAE 结构仍然存在 如何从 Mac 上完全删
  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • 在 Android ADT Eclipse 插件中滚动布局编辑器

    有谁知道当布局编辑器的内容溢出一个 屏幕 时如何滚动这些内容 我说的是在设计时使用 ADT 布局编辑器 而不是在物理设备上运行时滚动 效果很好 关闭 Android 布局编辑器中的剪辑 切换剪辑 按钮位于 Android 布局编辑器的右上角
  • Java:同步标准输出和标准错误

    我有一个奇怪的问题 如果我能解决它就好了 出于调试目的 以及其他一些事情 我在标准输出上编写控制台 Java 应用程序的日志 有些内容写在标准输出上 有些内容 例如错误 打印在标准错误上 问题是这两者并不完全同步 因此打印行的顺序并不总是正
  • stm32l0: 执行MI命令失败。使用 vFlashErase 数据包擦除闪存时出错

    我正在使用 Nucleo STM32L031 和 AC6 STM32 工作台 eclipse 我编写应用程序并进入调试模式 一切正常 直到我在应用程序中添加另一个功能 我注意到当我删除 评论 新函数 软件可以再次进入调试模式 但是当我添加
  • Android:默认 XML 编辑器不再打开 [不支持的内容类型错误]

    我使用 Eclipse 在 Android 中开发应用程序已经有一段时间了 我最近将Android SDK平台更新到3 0 API 11 现在 我无法通过双击打开 AndroidManifest xml 或 Layout 文件夹中的任何其他
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 如何在 Eclipse 下载站点上查找哪些功能包含所需的插件

    在针对目标平台开发 RCP 应用程序时 我 和别的 https stackoverflow com questions 10001143 eclipse rcp target platform bundle org eclipse ui v
  • 如何在 Windows 上的 Eclipse 中设置 Clang 工具链?

    我为一个愚蠢的问题道歉 但我在网上找不到答案 我正在努力为 64 位计算机上的 Windows 7 中的 Eclipse 设置 Clang 编译器 链接器 我对 C 的了解非常过时 并且从未在 Eclipse 中工作过 我想要实现的是在 W
  • StatET调试工具

    我想我只是很密集 但我似乎无法弄清楚如何在 Eclipse 中的 R 中使用调试工具 StatET 插件 有人有关于这个主题的任何提示或教程吗 StatET 2 00 现在对高级 可视化调试提供实验性支持 需要 Eclipse 3 6 或
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • 如何从一个代码库创建多个 Android 应用

    我有一个 Android 代码库 它使用带有设置的 API 来获取多个应用程序的不同数据 所有应用程序都使用相同的代码库 但进行一两个设计调整 那么如何重用主代码库而不必每次都复制整个 Android 项目呢 iPhone 在同一个项目中使
  • 如何在 Eclipse .classpath 文件中使用环境变量?

    在 Windows 中 我有一个环境变量 EXTERNAL LIB ROOT 指向 C Program Files MyExternalLibRoot 在另一台计算机上 它可能指向 C ExternalLibs 在 ant build xm

随机推荐

  • 输入材料芯片——初始形式数组

    我想用输入数据初始化我的垫芯片输入 但是当我有两个芯片时 它仅形成一种形式 组件 ts Component selector app pps dialog templateUrl pps dialog component html expo
  • 将 pandas 日期时间月份转换为字符串表示形式

    我想要一个带有时间戳列的 pandas DataFrame 并且想要创建一个仅包含月份的列 我想要月份列包含月份的字符串表示形式 而不是整数 我做了这样的事情 df Dates pd to datetime df Dates df Mont
  • pythonlogging.FileHandler默认使用块缓冲吗?

    The logging处理程序类有一个flush 方法 并看着code https github com python cpython blob 2 7 Lib logging init py logging FileHandler调用时不
  • bash: /bin/tar: 使用 tar 压缩多个文件时参数列表太长

    我正在尝试使用以下命令压缩存档中的文件 tar czvf compress file tar gz cat file list txt 我有一个错误 bash bin tar Argument list too long 文件编号太长 如何
  • 在Android中生成并打印特定尺寸的PDF

    我正在使用 Android 应用程序 我想生成并打印 PDF 但我遇到了一些麻烦 我需要生成PDF与 80 毫米width 以及height可能会有所不同 我正在尝试这个 public class PDFGenerator implemen
  • 为位于系统托盘中的 Java 程序创建键盘挂钩

    基本上我有一个在系统托盘中运行的java程序 并且想添加它 因此如果用户按下CTRL SHIFT 1 它会选择位于托盘中的java程序的右键单击选项之一 我想我正在寻找的是有关执行此操作的教程 或者最简单的方法是什么 我以前从未做过这样的事
  • 删除不在远程的分支

    gt git branch a master test remotes origin master remotes origin test 当有人删除remotes origin test 我的电脑上仍然可以看到它 我知道我可以做到这一点并
  • Java 正则表达式 (java.util.regex)。搜索美元符号

    我有一个搜索字符串 当它包含美元符号时 我想捕获此后的所有字符 但不包括点或后续的美元符号 后者将构成后续匹配 因此 对于这些搜索字符串中的任何一个 bla V N XYZ bla bla V N XYZ 我想返回 V N XYZ 如果搜索
  • 让 CMake include_directories SYSTEM dirs 前缀带有等于字符 (=)

    有没有办法让CMakeinclude directories使用 equals 包含系统目录前缀 特点 这样我就可以让 gcc 为关联的目录添加前缀 isysroot交叉编译的标志 当我尝试使用 equals 前缀 假定相对路径和当前源路径
  • 从 C# 应用程序打开 txt 文件

    以下代码假设从我的 C 应用程序打开 CMD 并打开文件 text txt 我尝试将文件路径设置为环境变量 但是当记事本打开时 它会查找 file txt 而不是 text txt 知道为什么吗 System Diagnostics Pro
  • 命名空间“React”没有导出成员“FC”。在“@types/reactour”中

    我正在一个反应 应用程序中工作 我有我的包 json文件如下 dependencies storybook addon backgrounds 3 4 8 storybook react 4 0 0 alpha 4 types d3 5 0
  • Jekyll自动重新加载

    第一次使用 Jekyll 看起来像是自动重新加载功能 运行jekyll auto server 仅由 Markdown 文件更新触发 这是正常行为吗 有什么方法可以更改其他类型的文件 例如 css 我使用的是 scss 或 html 文件
  • IIS 作为反向代理 - 压缩来自后端服务器的重写响应

    我正在实现一个反向代理 用于将请求路由到后端服务器 从功能上讲 一切正常 但我担心来自后端服务器的所有响应都会在未经压缩的情况下传输到客户端 Web 浏览器 设置如下 内部域上的后端服务器 不可公开访问 在以下位置托管 Web 应用程序ht
  • 使用 Javascript 在 Photoshop 中保存文件而不提示?

    我正在使用一个简单的脚本来编辑现有图像 无论我做什么 总会出现保存提示 我希望这是 100 自动化的 save 给我一个 saveAs 提示 将其保存为副本 close SaveOptions SAVECHANGES 只是给我一个通用的 您
  • NullInjectorError:没有 MatDialog 的提供者 - 尝试为 MatDialog 创建包装服务

    我是编码新手 也是 Angular 新手 所以我想我会寻求一些帮助 这是我的第一个问题 所以请耐心等待 我想为 Angular Material Dialog Service 创建一个包装服务 我只是想自学 这不是用于生产应用程序 所以我在
  • 你能改变颤动文本主题吗?

    如果主题在 main dart 中设置为 return MaterialApp title MY APP theme ThemeData primarySwatch Colors blue fontFamily Cabin textThem
  • 使用 SqlCommand 执行非查询,您可以获取通常发布到“消息”的文本吗?

    当使用 SqlCommand 执行非查询 例如数据库恢复 时 如果使用 Management Studio 是否可以以编程方式获取通常发布到 消息 选项卡的文本 如果是的话怎么办 是的 SqlCommand 对象上有一个名为 SqlInfo
  • AWS Lambda 性能问题

    我使用与 aws lambda java 集成的 aws api gateway 但我发现这种方法存在一些严重问题 删除服务器并让您的应用程序开箱即用的概念非常好 但这是我面临的问题 我的 lambda 正在做两件简单的事情 验证从客户端接
  • 日期 java.lang.IllegalArgumentException

    出现错误 java lang IllegalArgumentException 位于 java util Date parse 未知来源 位于 java util Date 未知来源 这是我的java代码 import java util
  • 如何强制为相同的输入打开第二个编辑器?

    我正在编写一个 Eclipse 插件 可以更轻松地编辑 Android 资源 当用户单击项目内的任何 XML 资源文件时 将打开一个编辑器 允许一次编辑项目中的所有资源 我想添加在单独的默认 Android 资源编辑器中打开同一文件的功能