【问题标题】:How can I specify the icon for a new wizard in Eclipse?如何在 Eclipse 中为新向导指定图标?
【发布时间】:2014-03-08 05:20:07
【问题描述】:

我已经向 Eclipse 添加了一个自定义的新项目向导,它使用了预先存在的 Java 特性。这是 plugin.xml 中我添加它的块:

  <wizard
        class="com.corp.eclipse.wizard.project.NewExtensionWizard"
        descriptionImage="/rsrc/icons/app.png"
        finalPerspective="org.eclipse.jdt.ui.JavaPerspective"
        icon="rsrc/icons/app.png"
        id="framer.newExtensionWizard"
        name="Extension Project"
        project="true">
  </wizard>

“扩展项目”项目类型在“新建”对话框中显示得很好,但图标不显示。有谁知道在 Eclipse 中将图标附加到向导上是否有技巧?这是 Eclipse 3.5.2。

【问题讨论】:

  • 你确定“rsrc/icons/app.png”是plugin.xml的相对路径吗?
  • 或者您错过了 build.properties 中的 rsrc/ 文件夹?
  • 不,rsrc/ 在 build.properties 中。我确定图标的路径是正确的,因为图标显示在向导 Eclipse 中为您提供编辑 plugin.xml。
  • 我也遇到了同样的问题...

标签: eclipse eclipse-plugin


【解决方案1】:

我遇到了和你一样的问题,我必须通过初始化代码断点才能最终找出原因。这可能是您的问题:

AbstractUIPlugin.classimageDescriptorFromPlugin(...)

// if the bundle is not ready then there is no image
Bundle bundle = Platform.getBundle(pluginId);
if (!BundleUtility.isReady(bundle)) {
    return null;
}

捆绑包可能未加载。如果插件的 id 不是扩展点的前缀(如我的情况),则可能会发生这种情况。因此,您的向导的 ID 是 framer.newExtensionWizard。除非您的整个插件 id(MANIFEST.MF 中的Bundle-SymbolicName)只是framer,否则该方法不会找到该包,因此图像不会出现。

然后解决方案是确保您为插件提供的任何 id,确保所有扩展点 id 都使用该 id 作为前缀。

【讨论】:

  • 哇,这非常具体!不幸的是,我不在有这个问题的公司工作,所以我丢失了代码(而且我不再使用 Eclipse)。无论如何我都会接受它,所以你会因提供帮助而获得荣誉。
【解决方案2】:

rsrc 是您的源文件夹吗?通常图标文件夹直接保存在项目下。您可以将其移出源文件夹并在 build.properties 中指定它。

【讨论】:

  • 不,它是项目文件夹的子文件夹,位于源文件夹旁边。这是我公司项目的惯例。
  • 您的图标大小合适吗?您可以尝试使用 gif 文件而不是 png 文件吗?
  • 我不是原始发布者,但我可以确认我在 Indigo 中遇到了同样的问题,无论图标是 .png 还是 .gif。同样的图标适用于 org.eclipse.ui.editors,所以我知道它可以看到并显示图标。它只是不显示 org.eclipse.ui.newWizards。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-16
  • 2016-05-19
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多