与 CVS 历史视图的 objectContribution(弹出)有关的任何已知问题/错误?它不工作

2022-01-16 00:00:00 eclipse-plugin java eclipse

您是否知道 Eclipse CVS 历史记录中没有显示 objectClass="org.eclipse.team.internal.ccvs.core.ILogEntry" 的贡献弹出窗口的任何问题或报告的错误?p>

我在 plugin.xml 中定义了一个弹出窗口,但它根本没有显示.相同的弹出窗口在 Eclipse 3.0.2 中没有问题这是 plugin.xml 中的弹出定义:

<扩展点="org.eclipse.ui.popupMenus">

我尝试将 org.eclipse.team.internal.ccvs.core.ILogEntry 更改为 org.eclipse.team.ccvs.core.ILogEntry同样的结果.

我正在使用 IBM Rational® Application Developer™ for WebSphere® Software 7.5.4,其中包括 Eclipse 3.4.2(Eclipse 插件开发环境,PDE,3.4.2.R342_v20090122)

谢谢.

<小时>

[UPDATE 1] Eclipse 3.2 似乎是第一个破坏我的插件弹出窗口的版本,所以我正在阅读 引入了更改以尝试找出问题.顺便说一句,在这个 Eclipse 版本中重新设计了 CVS 历史记录.

[UPDATE 2] 好的,我发现将 objectClass 从 org.eclipse.team.internal.ccvs.core.ILogEntry 更改为 org.eclipse.team.internal.ccvs.core.filehistory.CVSFileRevision 发挥神奇作用,现在显示的弹出窗口少之又少,但是当它被调用时,它不起作用:-(我想我需要更改一些代码以使插件适应 CVSFileRevision 类.

解决方案

好的,问题已经解决了.

似乎从 Eclipse 3.2 开始,需要为 History 视图提供弹出菜单的 objectClass 是 org.eclipse.team.internal.ccvs.core.filehistory.CVSFileRevision 所以在 plugin.xml 文件中更改它会再次启用弹出窗口.

它需要在我的 Action 类中添加一些新代码来识别这个新类:

if (CVSFileRevision 的下一个实例) {resources.add(((CVSFileRevision)next).getCVSRemoteFile());}

因为否则每次我调用我的操作时都会收到下一个神秘错误:

替代文字 http://img443.imageshack.us/img443/4396/pluginerror.png

所以,我应该在没有其他人帮助的情况下解决问题:-D

Do you know of any problems or reported bugs with the Eclipse CVS history not showing a contributed popup for objectClass="org.eclipse.team.internal.ccvs.core.ILogEntry" ?

I've a popup defined in the plugin.xml and it's not showing at all. The same popup is working without problems in Eclipse 3.0.2 Here is the popup definition at plugin.xml:

<extension point="org.eclipse.ui.popupMenus">
   <objectContribution
            objectClass="org.eclipse.team.internal.ccvs.core.ILogEntry"
            id="cvshistory">
         <action
               label="Pasar Recursos a Integración"
               icon="pai.gif"
               tooltip="Pasa los recursos seleccionados a integración"
               class="com.xxxxx.plugins.pai.actions.HammerPAIAction"
               enablesFor="1"
               id="action2">
         </action>
   </objectContribution>
</extension>

I've tried to change org.eclipse.team.internal.ccvs.core.ILogEntry to org.eclipse.team.ccvs.core.ILogEntry with the same result.

I'm using IBM Rational® Application Developer™ for WebSphere® Software 7.5.4 which includes Eclipse 3.4.2 (Eclipse Plug-in Development Environment, PDE, 3.4.2.R342_v20090122)

Thanks.


[UPDATE 1] It seems Eclipse 3.2 was the first version to broke my plugin popup, so I'm reading the changes introduced to try to find the problem. BTW, the CVS History was redesigned in this Eclipse version.

[UPDATE 2] OK, I found that changing the objectClass from org.eclipse.team.internal.ccvs.core.ILogEntry to org.eclipse.team.internal.ccvs.core.filehistory.CVSFileRevision do the magic and, at less, the popup now is shown, but when It's called, it's not working :-( I think I will need to change some code to adapt the plugin to the CVSFileRevision class.

解决方案

OK, the problems have gone.

It seems that since Eclipse 3.2 the objectClass needed to contribute a popup menu to the History view is org.eclipse.team.internal.ccvs.core.filehistory.CVSFileRevision so changing it in the plugin.xml file enabled the popup again.

It needed some new code in my Action class in order to recognize that new class:

if (next instanceof CVSFileRevision) {
   resources.add(((CVSFileRevision)next).getCVSRemoteFile());
}

Because otherwise I was getting the next cryptic error everytime I invoked my action:

alt text http://img443.imageshack.us/img443/4396/pluginerror.png

So, reputation should go to me for solving the question without other people help :-D

相关文章