在 Eclipse RCP 3.x 应用程序中更改默认的 io-wizard 图像
Change default io-wizard images in an Eclipse RCP 3.x application
是否可以更改 Eclipse 3.x 应用程序中导入和导出向导的默认图像?我不是指可以在向导扩展点中配置的向导图像,而是在调用时显示的周围向导中的图像,例如:
IHandlerService service = (IHandlerService) PlatformUI.getWorkbench()
.getService(IHandlerService.class);
service.executeCommand(ActionFactory.IMPORT.getCommandId(), null);
有一个用于更改标准命令(保存、另存为、删除等)的默认图像的扩展点:org.eclipse.ui.commandImages。但是,我没有在导入和导出对话框(向导和类别图标)中找到类似的图像
(该应用程序是使用兼容层的 Eclipse 4.4 上的 Eclipse 3.x RCP 应用程序 运行。)
谢谢,
迈克尔
我不太确定你指的是哪些图片。对于向导顶部的大图像,不支持此功能。
Import/Export 向导 (org.eclipse.ui.internal.dialogs.ImportExportWizard
) 从 org.eclipse.ui.internal.WorkbenchImages
获取图像。
WorkbenchImages
中的路径被硬编码到 org.eclipse.ui
插件的 icons
目录中。
向导树部分的图像来自单独的 import/export 向导扩展点声明。
正如接受的答案中所述,没有官方方法可以做到这一点,但它
可以通过内部 class org.eclipse.ui.internal.WorkbenchImages
.
的 declareImage
在我 WorkbenchAdvisor
的 initialize
中,我按以下方式替换了共享图片:
@SuppressWarnings("restriction")
public class MyWorkbenchAdvisor extends WorkbenchAdvisor {
...
@Override
public void initialize(IWorkbenchConfigurer conf) {
...
try {
// wizard icon
WorkbenchImages.declareImage(
IWorkbenchGraphicConstants.IMG_WIZBAN_IMPORT_WIZ,
<get image descriptor>, true);
// folder icon
WorkbenchImages.declareImage(
ISharedImages.IMG_OBJ_FOLDER,
<get image descriptor>, true);
}...
这可能会破坏每个 Eclipse 版本,因为我访问内部 API 但是
它解决了我的问题。
是否可以更改 Eclipse 3.x 应用程序中导入和导出向导的默认图像?我不是指可以在向导扩展点中配置的向导图像,而是在调用时显示的周围向导中的图像,例如:
IHandlerService service = (IHandlerService) PlatformUI.getWorkbench()
.getService(IHandlerService.class);
service.executeCommand(ActionFactory.IMPORT.getCommandId(), null);
有一个用于更改标准命令(保存、另存为、删除等)的默认图像的扩展点:org.eclipse.ui.commandImages。但是,我没有在导入和导出对话框(向导和类别图标)中找到类似的图像
(该应用程序是使用兼容层的 Eclipse 4.4 上的 Eclipse 3.x RCP 应用程序 运行。)
谢谢, 迈克尔
我不太确定你指的是哪些图片。对于向导顶部的大图像,不支持此功能。
Import/Export 向导 (org.eclipse.ui.internal.dialogs.ImportExportWizard
) 从 org.eclipse.ui.internal.WorkbenchImages
获取图像。
WorkbenchImages
中的路径被硬编码到 org.eclipse.ui
插件的 icons
目录中。
向导树部分的图像来自单独的 import/export 向导扩展点声明。
正如接受的答案中所述,没有官方方法可以做到这一点,但它
可以通过内部 class org.eclipse.ui.internal.WorkbenchImages
.
declareImage
在我 WorkbenchAdvisor
的 initialize
中,我按以下方式替换了共享图片:
@SuppressWarnings("restriction")
public class MyWorkbenchAdvisor extends WorkbenchAdvisor {
...
@Override
public void initialize(IWorkbenchConfigurer conf) {
...
try {
// wizard icon
WorkbenchImages.declareImage(
IWorkbenchGraphicConstants.IMG_WIZBAN_IMPORT_WIZ,
<get image descriptor>, true);
// folder icon
WorkbenchImages.declareImage(
ISharedImages.IMG_OBJ_FOLDER,
<get image descriptor>, true);
}...
这可能会破坏每个 Eclipse 版本,因为我访问内部 API 但是 它解决了我的问题。