在我的 eclispe rcp 应用程序中,我添加了一个包资源管理器,添加了 org.eclipse.jdt.ui
当我使用我的 rcp-app 时,当我通过“新建项目向导”创建一个新项目以添加一个“常规项目”时,该项目已正确创建,但未加载包资源管理器视图中的相应图标。
我必须添加到我的应用程序中才能正确查看所有(平台)图标的插件是什么?
非常感谢
在我的 eclispe rcp 应用程序中,我添加了一个包资源管理器,添加了 org.eclipse.jdt.ui
当我使用我的 rcp-app 时,当我通过“新建项目向导”创建一个新项目以添加一个“常规项目”时,该项目已正确创建,但未加载包资源管理器视图中的相应图标。
我必须添加到我的应用程序中才能正确查看所有(平台)图标的插件是什么?
非常感谢
这是 Eclipse RCP 应用程序中的一个已知问题。
https://bugs.eclipse.org/bugs/show_bug.cgi?id=234252
解决方法是向 ApplicationWorkbenchAdvisor.java 添加一些代码
这是 RCP 中有关此问题的更多文档
http://help.eclipse.org/ganymede/topic/org.eclipse.platform.doc.isv/guide/cnf_rcp.htm
在此代码示例中,我为 Project Explorer 和 Problems View 添加了图像。
这是我必须添加到初始化方法中的内容...
public void initialize(IWorkbenchConfigurer configurer) {
super.initialize(configurer);
// here's some of my code that does some typical RCP configuration
configurer.setSaveAndRestore(true);
PlatformUI.getPreferenceStore().setValue(
IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS, false);
// here is the work around code
/*
* This is a hack to get Project tree icons to show up in the Project Explorer.
* It is descriped in the Eclipse Help Documents here.
*
* http://help.eclipse.org/ganymede/topic/org.eclipse.platform.doc.isv/guide/cnf_rcp.htm
*
*/
IDE.registerAdapters();
final String ICONS_PATH = "icons/full/";
Bundle ideBundle = Platform.getBundle(IDEWorkbenchPlugin.IDE_WORKBENCH);
declareWorkbenchImage(
configurer,
ideBundle,
IDE.SharedImages.IMG_OBJ_PROJECT,
ICONS_PATH + "obj16/prj_obj.gif",
true);
declareWorkbenchImage(
configurer,
ideBundle,
IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED,
ICONS_PATH + "obj16/cprj_obj.gif",
true);
declareWorkbenchImage(
configurer,
ideBundle,
IDEInternalWorkbenchImages.IMG_ETOOL_PROBLEMS_VIEW,
ICONS_PATH + "eview16/problems_view.gif",
true);
declareWorkbenchImage(
configurer,
ideBundle,
IDEInternalWorkbenchImages.IMG_ETOOL_PROBLEMS_VIEW_ERROR,
ICONS_PATH + "eview16/problems_view_error.gif",
true);
declareWorkbenchImage(
configurer,
ideBundle,
IDEInternalWorkbenchImages.IMG_ETOOL_PROBLEMS_VIEW_WARNING,
ICONS_PATH + "eview16/problems_view_warning.gif",
true);
declareWorkbenchImage(
configurer,
ideBundle,
IDEInternalWorkbenchImages.IMG_OBJS_ERROR_PATH,
ICONS_PATH + "obj16/error_tsk.gif",
true);
declareWorkbenchImage(
configurer,
ideBundle,
IDEInternalWorkbenchImages.IMG_OBJS_WARNING_PATH,
ICONS_PATH + "obj16/warn_tsk.gif",
true);
/*
* End of hack in this method...
*/
}
private void declareWorkbenchImage(IWorkbenchConfigurer configurer_p, Bundle ideBundle, String symbolicName, String path, boolean shared)
{
URL url = ideBundle.getEntry(path);
ImageDescriptor desc = ImageDescriptor.createFromURL(url);
configurer_p.declareImage(symbolicName, desc, shared);
}
希望这可以帮助。
谢谢!
您可能应该使用 Project Explorer 而不是 Package Explorer。Package Explorer 是特定于 Java 的,Project Explorer 可以执行 Java 和其他所有操作。
以下是更多信息:http ://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/guide/cnf.htm
您必须在 WorkbenchAdvisor#initialize(IWorkbenchConfigurer) 方法中手动注册一些适配器。
调用此方法(您会在 bundle 中找到 IDE 类org.eclipse.ui.ide.application
org.eclipse.ui.ide.IDE.registerAdapters();