2014-01-05 2 views
6

Мой вопрос: В чем преимущество использования класса Eclipse ConsoleManager в отличие от размещения моей консоли в представлении.Плагин Eclipse IConsole vs View

Я создал свою собственную консоль (REPL) в java и хотел бы интегрировать ее с Eclipse. Я знаю два способа сделать это:

  • Создайте плагин и просто отобразите в нем свою собственную текстовую панель. Пример кода для его запуска:

    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(). 
        showView(REPL_PLUGIN_ID, project.getName(), IWorkbenchPage.VIEW_ACTIVATE); 
    
  • Создать плагин, реализовать интерфейс IConsole и добавить его с помощью ConsoleManager. Пример кода для его запуска:

    ConsolePlugin.getDefault().getConsoleManager().addConsoles(myConsoles) 
    

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

Eclipse ConsoleManager должен быть там по уважительной причине, что это такое? Какова будет основная причина/преимущество использования?

То, что я нашел до сих пор:

Преимущества внедрения IConsole:

  • Поддержка кнопок консоли по умолчанию [3]

Недостатки реализации IConsole:

  • поддержка богатого редактирования текста Нет (по умолчанию?)

Я попытался сделать этот вопрос как можно четче, но если я могу разработать/уточнить что-либо, просто дайте мне знать в комментариях.

+0

[3]: http://help.eclipse.org/juno/index.jsp?topic=/org.eclipse.cdt.doc.user/reference/cdt_u_console_view.htm –

ответ

1

Преимущество - это унифицированный пользовательский интерфейс. Eclipse имеет несколько общих представлений, к которым привыкли пользователи: контуры, свойства, просмотр проблем, консоль и т. Д. Представьте, что каждый будет добавлять свои собственные пользовательские представления вместо повторного использования существующих. Было бы переполнение перспектив, каждое из которых содержало бы пользовательские представления для конкретной задачи (или, альтернативно, одну перспективу, заполненную пользовательскими представлениями). Таким образом, если ваша консоль подпадает под понятие взаимодействия с консолью - конкретное задание (текстовое), содержащее только временные данные - тогда вы, вероятно, должны реализовать свой «вид» в качестве консоли.

0

Из Eclipse.org wiki:

Когда эти инструменты портированы для использования с IDE, этот вывод на консоль, как правило, заменяются более богатыми формами обратной связи, например, мнение, маркеров и украшения. Тем не менее, пользователи, привыкшие к старой версии командной строки, все же могут захотеть увидеть этот необработанный вывод в качестве альтернативы другим визуальным формам обратной связи. Инструменты этой категории могут использовать представление консоли для записи этого вывода.

До Eclipse 3.0 каждый подключаемый модуль, который хотел получить консольный вывод, создал собственный вид консоли. Eclipse 3.0 предоставляет единый общий вид консоли, к которому могут подключаться все плагины. В представлении могут одновременно размещаться несколько консольных документов и позволяет пользователю переключаться между различными страницами консоли.

+0

Thanx, но на самом деле это говорит только о том, что ранее люди создавали представления, потому что другого пути не было, а теперь есть. Он не говорит, какой из них «лучше». Или какие преимущества у любого из них есть. –

1

Как ранее цитированной записи вики говорит вид консоли в первую очередь предназначен для простых портов traditional кода, который использует System.out.print и тому подобное.

Несколько плагинов, таких как SVN и CVS-код, используют представление Консоли для предоставления традиционного вывода из команд, а также предоставляют дополнительные виды и диалоги, которые предоставляют более или более подробную информацию.

Итак, если вы разрабатываете плагин Eclipse с нуля, я бы сказал, что вы создаете свои собственные представления. Надеемся, вы можете предоставить больше действий для управления вашими данными, чем доступны в представлении «Консоль». В случае необходимости вы можете также предоставить консольное представление, подобное SVN.