未在 RCP 产品中加载透视图和视图的图像
Images for Perspective and Views not loading in RCP Product
我在现有的 RCP 产品中创建了一个新透视图,该透视图包含两个视图。对于视角和视图,我有不同的图像。当我 运行 eclipse 中的产品时,它会获取透视图和所有视图的图像,但是当我将其导出为产品时,透视图和视图的图像会丢失。每个视图还包含一个树视图,并且节点处的可扩展图标也丢失了。我不知道这个问题的原因是什么。因为它适用于日食但不适用于出口产品。在导出的产品中,所有功能也有效。
我的树标签提供者 class 是
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 在这个插件下我有图标文件夹,其中所有图像都可用。在我添加的扩展名下的清单文件中
org.eclipse.ui.views
其中包含我提供的视图和图标字段 icons/imagename.png
有人知道为什么我导出产品时我的图片丢失了吗?
谢谢
您想要包含在插件中的所有内容都必须列在 'build.properties' 文件中(单独或整个文件夹)。
当您通过 运行 测试时,来自 Eclipse 的代码未被使用 build.properties 因此很容易遗漏一些东西。
我在现有的 RCP 产品中创建了一个新透视图,该透视图包含两个视图。对于视角和视图,我有不同的图像。当我 运行 eclipse 中的产品时,它会获取透视图和所有视图的图像,但是当我将其导出为产品时,透视图和视图的图像会丢失。每个视图还包含一个树视图,并且节点处的可扩展图标也丢失了。我不知道这个问题的原因是什么。因为它适用于日食但不适用于出口产品。在导出的产品中,所有功能也有效。
我的树标签提供者 class 是
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 在这个插件下我有图标文件夹,其中所有图像都可用。在我添加的扩展名下的清单文件中
org.eclipse.ui.views
其中包含我提供的视图和图标字段 icons/imagename.png
有人知道为什么我导出产品时我的图片丢失了吗?
谢谢
您想要包含在插件中的所有内容都必须列在 'build.properties' 文件中(单独或整个文件夹)。
当您通过 运行 测试时,来自 Eclipse 的代码未被使用 build.properties 因此很容易遗漏一些东西。