0

RCP アプリケーションの開発方法を学んでいます。実行する必要があるタスクの 1 つは、コンソール ビューを作成することです。いくつかの検索を行ったところ、コンソール ビューを作成すると思われる次のコード セグメントが見つかりました。

@PostConstruct
public void createComposite(Composite parent) {
    MessageConsole myConsole = findConsole("abc");// CONSOLE_NAME);
    MessageConsoleStream out = myConsole.newMessageStream();
    out.println("Hello from Generic console sample action");

    IWorkbench wb = PlatformUI.getWorkbench();
    IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
    IWorkbenchPage page = win.getActivePage();
    String id = IConsoleConstants.ID_CONSOLE_VIEW;
    IConsoleView view = null;
    try {
        view = (IConsoleView) page.showView(id);
    } catch (PartInitException e) {
        e.printStackTrace();
    }
    view.display(myConsole);
}

private MessageConsole findConsole(String name) {
    ConsolePlugin plugin = ConsolePlugin.getDefault();
    IConsoleManager conMan = plugin.getConsoleManager();
    IConsole[] existing = conMan.getConsoles();
    for (int i = 0; i < existing.length; i++)
        if (name.equals(existing[i].getName()))
            return (MessageConsole) existing[i];
    // no console found, so create a new one
    MessageConsole myConsole = new MessageConsole(name, null);
    conMan.addConsoles(new IConsole[] { myConsole });
    return myConsole;
}

しかし、次のエラーが発生し続けます。

org.eclipse.e4.core.di.InjectionException: java.lang.IllegalStateException: ワークベンチがまだ作成されていません。

この記事 ( http://waheedtechblog.blogspot.com/2011/11/javalangillegalstateexception-workbench.html ) に投稿された提案に従おうとしましたが、役に立ちませんでした。

私の質問は次のとおりです。

  1. 上記のエラーを修正するにはどうすればよいですか?

  2. 豊富な Eclipse 開発環境を考えると、より少ないプログラミング作業で同じことを達成するためのより良い方法はありますか (たとえば、RCP アプリケーションでコンソールのビューを切り替えます)?

4

1 に答える 1