java - 未在 RCP 产品中加载透视图和 View 的图像

标签 java eclipse-plugin eclipse-rcp rcp

我在现有的 RCP 产品中创建了一个新透视图,该透视图包含两个 View 。对于视角和 View ,我有不同的图像。当我在 Eclipse 中运行产品时,它会获取透视图和所有 View 的图像,但是当我将其导出为产品时,透视图和 View 的图像会丢失。每个 View 还包含一个 TreeView ,并且节点处的可扩展图标也丢失了。我不知道这个问题的原因是什么。因为它适用于 eclipse 但不适用于导出产品。在导出的产品中,所有功能也都有效。

我的树标签提供者类是

 private static class ComponentsTreeLabelProvider extends LabelProvider implements IColorProvider{

    private static ImageRegistry imageRegistry = new ImageRegistry();


    @Override
    public Image getImage(Object element) {
        SoftwareArchitectureModel softModel = activeArchitectureModelReader.getArchitectureModel();
        ImageDescriptor imageDescriptor = null;

        if(element instanceof Component){
            if(softModel.isEnabled(element))
                imageDescriptor = Activator.getDefault().getImageRegistry().getDescriptor(Activator.COMPONENT_ID);
            else
                imageDescriptor = Activator.getDefault().getImageRegistry().getDescriptor(Activator.COMPONENT_DISABLED_ID);
        }

        if (imageDescriptor == null)
            return null;

        Image image = imageRegistry.get(imageDescriptor.toString());
        if (image == null) {
            image = imageDescriptor.createImage();
            imageRegistry.put(imageDescriptor.toString(), image);
        }           
        return image;
    }

    @Override
    public String getText(Object element) {

        if(element instanceof Component)
            return ((Component) element).getName();

        return null;
    }

    @Override
    public Color getForeground(Object element) {
        SoftwareArchitectureModel softModel = activeArchitectureModelReader.getArchitectureModel();
        if(element instanceof Component){
            if(softModel.isEnabled(element))
                return Display.getCurrent().getSystemColor(SWT.COLOR_BLACK);
            else
                return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
        }
        return null;
    }

    @Override
    public Color getBackground(Object element) {
        return null;
    }
}

插件名称是:myproject.memorymodeling.ui 在这个插件下我有图标文件夹,其中所有图像都可用。在我添加的扩展下的 list 文件中

 org.eclipse.ui.views 

其中包含我提供的 View 和图标字段下的 icons/imagename.png

有人知道为什么我导出产品时我的图片丢失了吗?

谢谢

最佳答案

您想要包含在插件中的所有内容都必须列在“build.properties”文件中(单独或整个文件夹)。

当您通过从 Eclipse 运行代码进行测试时,不会使用 build.properties,因此很容易遗漏一些内容。

关于java - 未在 RCP 产品中加载透视图和 View 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589205/

相关文章:

java - Jenkins 中的 Groovy Postbuild,解析日志中的字符串并计算它们

java - 访问 H2 数据库架构

java - 如何以编程方式将 Maven 特性添加到工作室项目

eclipse-rcp - eclipse RCP : why ViewerCell and ViewerRow do not have method to get row index?

java - 在自定义所有存储库中注入(inject) bean

html - 如何在 eclipse 中禁用拼写检查器

java - 如何在单独的 View 中创建新控制台

Maven/第谷 SWTBot Eclipse RCP

java - Eclipse RCP : When creating a plug-in based product configuration, 我是否还需要添加定义插件作为依赖项?

java.awt.Toolkit beep() 错误