Eclipse:启动时更改首选项

标签 eclipse eclipse-plugin preferences

我正在开发一个 Eclipse 插件,它有一个首选项页面,performOk()方法会更改其他一些插件的首选项以适应更改。到目前为止效果很好。

但是,如果用户手动更改我的插件的首选项文件或更新插件,他必须进入首选项页面并手动按“确定”,否则其他插件的首选项将过时。

我想通过在每次启动 Eclipse 时调整其他插件的首选项来避免这个问题。我已经让我的插件类实现了 IStartup接口(interface)及其earlyStartup()方法来改变那里的首选项,但我有两个问题:

  1. 在更改其他插件的首选项之前,我需要从自己的插件中读取设置,但是 getPreferenceStore()该方法在 earlyStartup() 范围内不起作用方法。我能够通过实现 earlyStartup() 来解决这个问题空并在插件的 start() 中执行我想要的操作方法,这种行为可靠吗?

  2. 实际更改 start() 中的首选项时,我收到无效线程访问异常方法。我读过start()由自己的作业执行,作业可以改变偏好吗?

如果有其他方法可以实现我想要的目标,我自然也想知道。

最佳答案

如果您主要担心的是有人从某些导出的 Eclipse 首选项文件中导入一些更改,那么您应该能够通过使用首选项更改监听器来解决问题。这样就可以处理你上面提到的情况了。如果通过 Eclipse 更改首选项并且在 Eclipse 打开时,您的首选项更改监听器将被激活。

我从来没有听说过有人在 eclipse 之外手动编辑他们的首选项文件(这是首选项更改监听器不会捕获的一种情况)。如果有人这样做,他们就不应该期望可靠的行为。

但是,如果您确实想使用 IEarlyStartup,则可以,但您应该使用 Display.synchExec() 来执行首选项更改代码。请参阅:http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/runtime/preferences/AbstractPreferenceInitializer.html

关于Eclipse:启动时更改首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4638458/

相关文章:

macos - 如何以编程方式在 macOS SwiftUI 应用程序中打开设置窗口

emacs - Emacs 中的光标类型

java - 找不到主类 x。程序将会退出

java - Xtext:无法解析引用

java - 仅从工作区选择文件的 SWT 组件

java - 如何在eclipse或jar-file-explorer中查看jar文件的内容

android - SDL 初始化失败,原因是 : No available video device in ubuntu 12. 04 LTS

java - find_java.exe 无法识别 - 在 Android SDK 管理器中...同时安装了 Java 8 更新

Eclipse Debugger - 如何仅显示挂起的线程

android - 如何让 Android PreferenceFragment 标题/标题显示在右 Pane 中?