【问题标题】:TerminateAction.java is missing in the Package org.eclipse.debug.internal.ui.actions.context for Eclipse 3.7.2Eclipse 3.7.2 的包 org.eclipse.debug.internal.ui.actions.context 中缺少 TerminateAction.java
【发布时间】:2014-01-07 10:05:30
【问题描述】:

我们正在尝试将我的项目中的 eclipse 从 3.2.2 更新到 3.7.2。发现包org/eclipse/debug/internal/ui/actions/context中缺少TerminateAction.java。有人可以告诉我TerminateAction.java 3.7.2 的替代方案是什么。以及为什么它被改变了。

我发现了错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=293109 与 Terminate 和 Relaunch 相关,但没有找到 TerminateAction.java

非常感谢您对此的快速帮助。

更新: 下面是引用 TerminateAction.java 的代码 sn-p:

`IWorkbenchPage page = window.getActivePage();
if (page != null) {
 LaunchView view = (LaunchView) page.findView(IDebugUIConstants.ID_DEBUG_VIEW);
 if (view != null) {
    TerminateAction action = (TerminateAction) view.getAction("terminate");
    if (action != null) {
     action.contextChanged(view.getViewer().getSelection(), view);
        }
    }
}`

@Chandrayya G K: 这里的 contextChanged 是属于 org.eclipse.debug.internal.ui.actions.context.AbstractDebugContextAction 类的方法,所以我想我不能在这里使用 TerminateCommandAction 因为它扩展了缺少该功能的 DebugCommandAction.java

我们在哪里可以找到 contextChanged() 方法,或者我们可以继续创建我们自己的 TerminateAction 类,类似于旧的类。

请提出任何替代解决方案。

谢谢

【问题讨论】:

    标签: java eclipse eclipse-plugin eclipse-indigo


    【解决方案1】:

    包名称中带有internal 的Eclipse 类仅供内部使用,因此如有更改或删除,恕不另行通知 - 请参阅Eclipse API Rules of Engagement

    调试插件定义了一个command,id 为org.eclipse.debug.ui.commands.Terminate,这听起来像是你想要的。尝试调用该命令。

    更新:

    基本上通过使用这个内部代码,你已经把自己挖到了一个大洞里。

    AbstractDebugContextAction 也是内部的并且已被删除,contextChanged 方法也是如此。 IAsynchronousTerminateAdapter 接口使用的所有终止代码也已消失。看起来所有这些代码都被重构为使用较新的 commandhandler 范例而不是较旧的 JFace Action

    您应该能够使用IHandlerService 调用新的org.eclipse.debug.ui.commands.Terminate 命令,但您必须根据当前选择等计算出它所期望的内容。

    【讨论】:

    • Greg,感谢您的快速回复,我已经更新了我的查询。也许它会帮助你更好地理解。
    【解决方案2】:

    检查Eclipse 3.2.2 SDK javadoc 是否已弃用此类。我想是的。

    在 grep 代码中搜索这个类(TerminateAction)时,我找到了results like this。意味着这个类被重构并重命名为其他一些类。

    【讨论】:

    • 感谢您的快速回复,我已经更新了我的查询。也许它会帮助你更好地理解
    猜你喜欢
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2023-03-04
    • 2013-10-21
    相关资源
    最近更新 更多