2014-01-07 76 views
0

我們正試圖從我的項目更新日食從3.2.2到3.7.2。發現TerminateAction.java在包org/eclipse/debug/internal/ui/actions/context失蹤。有人可以告訴我,對於3.7.2,TerminateAction.java可能是什麼選擇。以及爲什麼它已經改變。TerminateAction.java中缺少包org.eclipse.debug.internal.ui.actions.context爲Eclipse 3.7.2

我發現的bug:https://bugs.eclipse.org/bugs/show_bug.cgi?id=293109有關終止並重新啓動,但沒有發現TerminateAction.java

我會很感激這個一個快速幫助。

更新: 下面是被參照的TerminateAction.java代碼片段:

`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 GK: 這裏contextChanged是屬於類org.eclipse.debug.internal.ui.actions.context.AbstractDebugContextAction類中的方法所以我覺得,因爲它正在擴大其DebugCommandAction.java缺少該功能無法使用TerminateCommandAction這裏。

我們可以在哪裏找到contextChanged()方法還是可以的,我們繼續前進,創造我們自己的TerminateAction類類似於舊的一個。

請提出另一種解決方案是存在的。

由於

回答

2

與包名稱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命令,但是您必須根據當前選擇等來計算出它期望的值。

+0

Greg,感謝您的快速回復,我更新了我的查詢。可能會幫助你更好地理解。 – sjunas

0

請檢查Eclipse 3.2.2 SDK javadoc該類是否被棄用。我想是這樣。

當在grep代碼中搜索此類(TerminateAction)時,我找到了results like this。意味着這門課被折射並重新命名爲其他課程。

+0

感謝您的快速回復,我已更新我的查詢。可能會幫助你更好地理解 – sjunas