マーカーをクリックすると、「再帰的にアクティブにする予防」

StackOverflow https://stackoverflow.com/questions/9021163

  •  14-11-2019
  •  | 
  •  

質問

私は自分のGEFベースのグラフィカルエディタを作成しています。検証が失敗したときにエラーマーカーを作成し、エディタにはマーカーを見つけてアクティブにするためのGoToMarkerメソッドがあります。これはすべて機能します。

問題のみがマーカーをダブルクリックすると(コンテキストメニューから「Goto」をクリックすると問題ない場合)RuntimeExceptionがruntimeExceptionを受信することです。 メッセージは次のとおりです。

java.lang.RuntimeException: WARNING: Prevented recursive attempt to activate part org.eclipse.ui.views.ProblemView while still in the middle of activating part namespace.myEditorID`
.

対応するスタックトレースの一部を示す:

at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3586)
...
at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245)
at org.eclipse.swt.internal.gtk.OS._gtk_enumerate_printers(Native Method)
at org.eclipse.swt.internal.gtk.OS.gtk_enumerate_printers(OS.java:9296)
at org.eclipse.swt.printing.Printer.getPrinterList(Printer.java:98)
at org.eclipse.gef.ui.actions.PrintAction.calculateEnabled(PrintAction.java:45)
at org.eclipse.gef.ui.actions.WorkbenchPartAction.isEnabled(WorkbenchPartAction.java:123)
...
.

完全なStackTraceは少し長いので、 Pastebin

これは私に actionbarcontributor

addGlobalActionKey(ActionFactory.PRINT.getId());
.

これはRuntimeeXceptionを解決します...?

印刷アクションとマーカーをクリックした後に対応するオブジェクトの間の関係はありません。印刷アクションを無効にしたままにして、もちろん解決策ではありません。

それで私は印刷アクションを利用可能にしてこれらのRuntimeExceptionsを防ぐために何ができるか?

役に立ちましたか?

解決

As a test ,I refer to the url:https://bugs.eclipse.org/bugs/show_bug.cgi?id=154112 and I overrid my EditorPart's setFocus method like:

@Override
public void setFocus() {
    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
}

and then it works well.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top