Переключить вид консоли в приложении RCP - PullRequest
0 голосов
/ 08 февраля 2012

Я разрабатываю приложение RCPP, которое отображает консоль.В тот момент, когда я закрываю консоль, я не могу открыть ее снова, пока не перезапущу приложение.

Поэтому я добавил новый пункт меню, чтобы показать и скрыть консоль как точку расширения, и создал для нее обработчик.Я могу проверить, существует ли консоль, но проблема в том, что когда она закрывается, она на самом деле скрыта и не утилизируется.

<code><pre> 
private Console() {
            super("", null);
            setWaterMarks(-1, -1);

            infoStream = newOutputStream();
            errorStream = newOutputStream();
            warnStream = newOutputStream();

            infoColor = new Color(DioAction.getDisplay(), new RGB(0, 0, 0));
            infoStream.setColor(infoColor);
            warnColor = new Color(DioAction.getDisplay(), new RGB(255, 128, 0));
            warnStream.setColor(warnColor);
            errorColor = new Color(DioAction.getDisplay(), new RGB(255, 0, 0));
            errorStream.setColor(errorColor);
        }
        public static Console getDefault() {
            if (instance == null) {
                instance = new Console();
                IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
                IConsole[] existing = manager.getConsoles();
                boolean exists = false;
                for (int i = 0; i < existing.length; i++) {
                    if (instance == existing[i])
                        exists = true;
                }
                if (!exists)
                    manager.addConsoles(new IConsole[] { instance });
                manager.showConsoleView(instance);
            }
            return instance;
        }

        public void info(String message) {
            try {
                infoStream.write(message);
                infoStream.write("\n");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

Консоль добавляется, когда я вызываю этот метод:

@Override
    public void postStartup() {
        super.postStartup();
        Console.getDefault().info("Hello");
    }

из ApplicationWorkbenchAdvisor.

У меня вопрос, как я долженопределить, была ли консоль закрыта / скрыта, и показать ее при выборе пункта меню?

1 Ответ

0 голосов
/ 16 февраля 2012

См. Этот предыдущий ответ, который является примером того, как показать представление.

Переключение вида консоли в приложении RCP

...