Что такое платформа Eclipse и как ее использовать? Разработка простого Eclipse RCP приложения

Eclipse представляет собой основанную на Java расширяемую платформу разработки с открытым исходным кодом. По сути - это просто среда разработки и набор сервисов для построения приложений на основе встраиваемых компонентов (плагинов). К счастью, в составе Eclipse имеется стандартный набор плагинов, в том числе хорошо известный инструментарий - Java Development Tools (JDT).

В то время как большинство пользователей, применяющих Eclipse в качестве интегрированной среды разработки Java (IDE), вполне им довольны, возможности его гораздо шире. Eclipse также включает в себя среду разработки плагинов (PDE), которая в первую очередь заинтересует тех, кто хочет расширить сам Eclipse, так как позволяет создавать свои инструменты, встраиваемые в среду Eclipse. Поскольку Eclipse полностью состоит из плагинов, у всех разработчиков инструментариев имеется возможность предложить свои расширения к Eclipse и предоставить пользователям последовательную и цельную интегрированную среду разработки (IDE).

Эта целостность и последовательность характерны не только для инструментов Java-разработки. Хотя Eclipse написан на Java, использовать его можно и с другими языками. К примеру, уже имеются (или разрабатываются) плагины, поддерживающие такие языки программирования как C/C++ и COBOL. Структура Eclipse может также использоваться как основа для других типов приложений, не имеющих отношения к разработке ПО, например, систем управления контентом.

Великолепным примером приложения на основе Eclipse является ПО IBM Rational Software Architect , которое легло в основу семейства инструментов IBM для разработки на Java.

Eclipse - это открытый исходный код

ПО с открытым исходным кодом выпускается под лицензией, имеющей целью гарантировать пользователям определённые права. Самое очевидное из них, конечно, то, что исходный код обязательно должен быть предоставлен пользователям, и они имеют полное право модифицировать и самостоятельно распространять ПО. Такая защита пользовательских прав достигается с помощью механизма под названием "copyleft": Лицензия программного обеспечения стоит на защите авторских прав (copyright) и запрещает распространение ПО, если пользователю не предоставлены такие права. Сopyleft-лицензия также требует, чтобы всё распространяемое пользователями ПО покрывалось исходной лицензией без изменений. Тем самым, смысл авторского права, по существу, переворачивается с ног на голову, а про copyleft-лицензию, использующую авторское право для наделения пользователя правами, а не для сохранения их за разработчиком ПО, часто в шутку говорят "все права извращены" (all rights reversed).

Большая часть распространённых опасений, неуверенности и сомнений относительно ПО с открытым исходным кодом основана на так называемой вирусной природе некоторых copyleft-лицензий. Идея состоит в том, что если вы используете ПО с открытым исходным кодом как часть собственной разрабатываемой программы, вы потеряете свою интеллектуальную собственность, так как лицензия "заразит" собой ваши личные части программы. Другими словами, лицензия может потребовать, чтобы всё программное обеспечение, имеющее в своём составе ПО с открытым исходным кодом, включая и любое вновь созданное ПО, распространялось с той же самой лицензией. Хотя это и верно для наиболее известной copyleft-лицензии - GNU General Public License (под которой, например, распространяется Linux), существуют и другие лицензии, обеспечивающие иное соотношение коммерческих и общественных интересов.

Open Software Initiative - OSI (Инициатива открытого ПО) - это некоммерческая организация, дающая чёткое определение тому, что представляет собой открытый исходный код, и осуществляющая сертификацию лицензий, удовлетворяющих её критериям. Eclipse распространяется в рамках лицензии EPL - Eclipse Public License (Открытая лицензия Eclipse) V1.0, одобренной OSI и нацеленной на то, чтобы облегчить коммерческое признание Eclipse, при этом сохраняя лояльность к авторам исходного кода.

Те, кто создаёт плагины к Eclipse или использует Eclipse как базу для разработки ПО, обязаны публиковать любой код Eclipse, который они используют либо модифицируют в рамках лицензии EPL, но имеют право лицензировать свои собственные дополнения, как им нравится. Собственный код, объединённый в комплект с ПО из Eclipse, не требует лицензирования в качестве открытого исходного кода, а сам исходный код не нужно делать общедоступным.

Несмотря на то, что большинство программистов не станет использовать Eclipse для разработки плагинов или создания на его базе новых продуктов, значимость основанной на открытом исходном коде природы Eclipse велика не только потому, что благодаря ей Eclipse доступен совершенно бесплатно (и вопреки тому, что коммерчески ориентированная лицензия подразумевает, что плагины могут стоить денег). Открытый исходный код содействует инновациям и создаёт стимул для разработчиков (даже коммерческих) вносить свой исходный код как вклад в общую копилку. Для этого есть несколько причин, но едва ли не самая существенная состоит в том, что чем больше разработчиков вносит свой вклад в проект, тем более значимым он становится для всех. А когда проект становится полезным, всё большее число разработчиков будут использовать его и создадут вокруг него сообщество, подобное тем, что сформировались вокруг Apache и Linux.

Что такое Eclipse?

Eclipse - это сообщество разработчиков открытого исходного кода, чьи проекты нацелены на построение открытой платформы для разработки, состоящей из расширяемых среды разработки, инструментария и библиотек времени выполнения для построения, развёртывания и управления программным обеспечением в период его жизненного цикла. Фонд Eclipse (Eclipse Foundation) - это некоммерческое поддерживаемое участниками объединение, которое содержит проекты Eclipse и помогает совершенствовать сообщество разработчиков открытого исходного кода и "экосистему" дополняющих друг друга продуктов и сервисов.

Проект Eclipse был создан в ноябре 2001 года компанией IBM и поддержан консорциумом поставщиков программного обеспечения. Фонд Eclipse был создан в январе 2004 года как независимая некоммерческая организация, выступающая распорядителем сообщества Eclipse. Он создавался, чтобы помочь независимому от поставщиков, открытому и прозрачному сообществу вырасти вокруг Eclipse. Сегодняшнее сообщество Eclipse состоит из частных лиц и организаций, представляющих индустрию программного обеспечения.

Фонд Eclipse контролирует и направляет текущие разработки Eclipse. Фонд обслуживает сообщество, но разработчики открытого исходного кода, называемые коммитерами и, по существу, работающие над проектами Eclipse, не состоят в его штате. Обычно коммитеры Eclipse числятся в каких-либо организациях либо являются независимыми разработчиками, добровольно отдающими своё время работе в проекте открытого исходного кода.

Теперь, взглянув на теоретические, исторические и политические аспекты Eclipse, давайте рассмотрим сам продукт.

Рабочее пространство Eclipse

При первом запуске Eclipse вы увидите страницу приветствия внутри рабочего пространства (см. рисунок 1). У пользователя Eclipse есть несколько возможностей перейти на страницу обзора (overview page), что я и рекомендую сделать (см. рисунок 2). Далее, можно ознакомиться с информацией по новым функциям, изучить некоторые примеры или пройти учебный курс.

Рисунок 2. Страница обзора Eclipse

Рабочее пространство Eclipse состоит из нескольких панелей, называемых представлениями, например навигационное или схематическое представления (navigator or outline views). Набор таких представлений называется перспективой. Одна из наиболее распространённых перспектив - перспектива Ресурсы (Resource), которая представляет собой базовый набор представлений для управления проектами и просмотра, а также редактирования файлов проекта.

Я рекомендую большинству начинающих пользователей начинать со страницы обзора, показанной на рисунке 2, и узнать больше об Eclipse. Раздел "основы рабочего пространства" (workbench basics) содержит много полезной начальной информации о различных компонентах Eclipse и о том, как они взаимодействуют друг с другом. Уделите несколько минут чтению этого материала, а затем давайте погрузимся в инструменты разработки Java Development Tools (JDT) Eclipse. Лучший способ чему-либо научиться - попробовать это на практике.

Продолжая этот короткий обзор Eclipse, мы создадим новый проект на Java. Выберите File > New > Java Project (Файл > Новый > Проект Java) и введите Hello в ответ на запрос имени проекта, а затем нажмите Finish .

Теперь посмотрим на перспективу "Java" (если вы ещё в ней не находитесь). В зависимости от того, как вам больше нравится управлять своим экраном, можно либо сменить перспективу в текущем окне, выбрав Window > Open Perspective > Java (Окно > Открыть Перспективу > Java) , либо открыть новое окно, выбрав Window > New Window (Окно > Новое Окно) , и выбрать новую перспективу.

Как и следовало ожидать, перспектива Java имеет набор представлений, предназначенных для ведения разработки на Java. Одно из них, расположенное в левом верхнем углу, представляет собой иерархию, содержащую различные пакеты Java, классы, JAR-архивы и разнообразные файлы. Это представление называется Обозреватель Пакетов (Package Explorer). Обратите внимание, что в главном меню добавлены два новых пункта: Source и Refactor.

Java Development Tools (JDT)

Чтобы опробовать среду разработки Java, мы создадим и выполним приложение под названием "Hello World". Находясь в перспективе Java, нажмём правой кнопкой на папке с исходным тестом проекта "Hello" (src) и выберем New > Class (Новый > Класс) , как показано на рисунке 3. В появившемся диалоговом окне введём Hello в качестве имени класса. Ниже надписи Which method stubs would you like to create? (Какие заглушки методов вы желаете создать?) отметим public static void main(String args) и нажмём Finish .

Рисунок 3. Создание нового класса в перспективе Java

При этом будет создан файл.java с классом Hello и пустым методом main() в области редактора, как показано на рисунке 4. Добавим нижеследующий код к методу (обратите внимание, что описание для i было преднамеренно опущено).

Рисунок 4. Класс Hello в редакторе Java

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

В остальных случаях вы можете вызвать автоматическое дописывание кода с помощью комбинации Ctrl+1 . Функция дописывания кода выдаёт контекстно зависимый список вариантов, из которого можно осуществлять выбор с помощью клавиатуры или мыши. Варианты могут представлять собой список методов, присущих конкретному объекту, или фрагмент кода, основанный на различных ключевых словах, таких как for или while .

Проверка синтаксиса зависит от инкрементной компиляции. По мере сохранения вами кода он компилируется в фоновом режиме и проверяется на синтаксические ошибки. По умолчанию синтаксические ошибки подчеркиваются красным, а слева на полях появляется красная точка с белым знаком X. Другие ошибки помечаются на полях редактора символом электрической лампочки; это те проблемы, которые редактор мог бы за вас исправить (функция под названием Quick Fix).

В вышеприведённом коде знак лампочки находится возле оператора for , так как было пропущено описание для i . Двойное нажатие мышкой на лампочку вызовет появление списка предлагаемых исправлений. В нашем случае будет предложено создать поле класса i , локальную переменную i или параметр i для метода; выбор мышкой любого из этих вариантов покажет тот код, который будет сгенерирован. На рисунке 5 показан список предлагаемых вариантов и код, предлагаемый в случае локальной переменной.

Рисунок 5. Варианты, предлагаемые функцией Quick Fix

Двойное нажатие мышкой на предложении вставляет код на нужное место в программе.

Если программа компилируется без ошибок, её можно запустить, выбрав Run в меню Eclipse. (Обратите внимание на отсутствие отдельного шага для компиляции, потому что компиляция выполняется по мере сохранения кода. Если в вашем коде отсутствуют синтаксические ошибки, он готов для запуска.) Появляется диалог "Launch Configurations" (Конфигурации Запуска) с нужными значениями по умолчанию; нажмите Run внизу справа. В нижней панели появляется новая панель с закладками (Консоль), отображающая результат работы программы, как показано ниже.

Рисунок 6. Результат работы программы

Можно также запустить программу в отладчике Java. Сначала нужно установить контрольную точку в main() System.out.println() с помощью двойного щелчка мышки на сером поле с левой стороны окна редактирования рядом с вызовом System.out.println() . Появится голубая точка. В меню Run выберите команду Debug (Отладка) . Как описано раньше, появится диалог "Launch Configurations". Выберите команду Run . Перспектива автоматически сменится на перспективу Debug, содержащую целый ряд интересных новых представлений, как показано ниже.

Рисунок 7. Перспектива Debug

Обратите внимание на представление Debug в левом верхнем углу перспективы. Это представление показывает стек вызовов и содержит панель инструментов в строке заголовка, позволяющую управлять выполнением программы. На панели имеются кнопки для продолжения, приостановки или завершения программы, перехода к следующему оператору, перешагивания следующего оператора или возвращения из метода. Панель наверху справа содержит целый ряд представлений с закладками, в том числе Variables (Переменные), Breakpoints (Контрольные точки), Expressions (Выражения) и Display (Отображение). Сейчас выбрана закладка Variables, поэтому мы можем видеть текущее значение переменной i .

Более подробную информацию о любом из представлений можно получить с помощью контекстной подсказки; для этого щёлкните мышкой на заголовке представления и нажмите F1 .

Дополнительные плагины

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

Eclipse содержит плагин для работы с Системой параллельных версий (CVS - Concurrent Versions System) для управления исходным кодом. Плагин Team (Команда) соединяется с CVS-сервером, позволяя членам команды разработчиков работать с набором файлов, содержащих исходные тексты, не вмешиваясь в изменения, вносимые другими. Мы не станем более подробно исследовать здесь управление исходными текстами из Eclipse, так как для этого потребуется установка CVS-сервера, хотя возможности, связанные с поддержкой команды разработчиков, а не только самостоятельной разработки, является важной и неотъемлемой частью Eclipse.

Плагины, которые поддерживаются и распространяются Фондом Eclipse можно найти на Web-сайте Eclipse. Наиболее полный список имеющихся плагинов доступен на странице Eclipse Plug-in Central, которая служит каталогом плагинов.

Архитектура платформы Eclipse

Платформа Eclipse содержит мощный набор плагинов (см. рисунок 8), которые поддерживают проекты, такие как JDT и PDE.

Рисунок 8. Упрощенная архитектура платформы Eclipse

Тёмно-синие блоки обозначают компоненты, являющиеся центральной частью Платформы функционально насыщенных клиентов (Rich Client Platform - RCP) в Eclipse. Сама концепция RCP выходит за рамки статьи, но будем считать, что RCP - это просто набор плагинов из Eclipse, который люди могут использовать в разработке приложений, например Lotus Notes® 8. Светло-голубые блоки представляют необязательные (хотя и рекомендуемые) компоненты для включения в приложения на базе RCP. А серые блоки - совершенно необязательны. Платформа состоит из нескольких компонентов, мы рассмотрим некоторые из них:

Runtime Runtime - это код, который определяет модель плагинов Eclipse, основанную на спецификации OSGi, а также на представлении о расширениях и точках расширения. Runtime также предоставляет дополнительные сервисы, такие как ведение системного журнала и параллелизм. JFace/SWT Пакет инструментов Standard Widget Toolkit (SWT) представляет собой набор виджетов, отвечающих за пользовательский интерфейс и функции Eclipse. JFace - это просто надстройка над SWT, предоставляющая несколько классов Model-View-Controller (MVC) для облегчения разработки графических приложений. Workbench (Рабочее пространство) Рабочее пространство придаёт Eclipse его индивидуальность. Именно на этом уровне реализована концепция представлений, перспектив и таких вещей как окна редактирования. Help (Поддержка Пользователей) Этот компонент Eclipse позволяет предоставлять поддержку вашим пользователям. Это можно сделать через справочную систему, которая позволит пользователям искать справочную документацию, либо с помощью "шпаргалок", которые для конечных пользователей могут представляться как интерактивные списки задач. Update (Обновление) Компонент update предоставляет в Eclipse средства, позволяющие обновлять приложения с одной версии на другую. Team (Команда) Компонент team - это инфраструктура, позволяющая фирмам-разработчикам подключать свои собственные системы управления версиями. Образцом реализации провайдера является плагин CVS, встроенный в Eclipse.

Заключение

Из первоначального кода, написанного компанией IBM, Eclipse перерос в полнофункциональную экосистему с открытым исходным кодом, в которой участвует более 100 компаний. Переносимая, расширяемая инфраструктура с открытым исходным кодом - уже не новая идея, но благодаря хорошо продуманному, надёжному и элегантному дизайну, Eclipse приобретает абсолютно новую динамику.

Добро пожаловать в экосистему Eclipse. Нашей целью было помочь вам быстрее освоить платформу Eclipse. Мы добились этого с помощью вступительного текста и простого практического упражнения. Используйте знания, полученные при чтении этой статьи, и станьте активным членом экосистемы Eclipse.

Java является высокоуровневым языком программирования, который был разработан компанией Sun Microsystems ещё в 1995 году. На сегодняшний день развитием данной технологии занимается компания JCP (Java Community Process ). Одной из главных особенностей языка является компиляция, выполняющаяся непосредственно при сборке программы.

Код превращается в байт-код, после чего выполняется в виртуальной машине Java. JVM выступает транслятором, связывающим язык программирования с необходимыми компонентами компьютера. Такой принцип позволяет программам работать на любых системах, где установлена виртуальная машина.

Особенности языка программирования

Объекто-ориентированный и типизированный язык Java обладает множеством полезных для разработчиков особенностей. Среди них можно выделить следующее:

  • Простота в изучении. Основных знаний об объектно-ориентированном программировании будет достаточно для комфортного освоения языка.
  • Объектно-ориентированная методология. Программы состоят из объектов, которые можно легко расширять и адаптировать для достижения поставленных целей.
  • Безопасность. Шифрование с открытым ключом обеспечивает наилучшие методы проверки подлинности.
  • Платформо-независимость. Программы, написанные на языке, компилируются в байт-код, который способен работать на абсолютно любых платформах современных операционных систем.
  • Портативность. Язык программирования никак не зависит от реализуемых аспектов спецификаций.
  • Прочность. Java-машина способна справиться со многими ошибками, благодаря ориентации и упору компании-разработчика на постоянную проверку и уменьшение временных затрат, возникающих при компиляции.

Кроме того, данный язык весьма распространен, так как характеризуется как многопоточный, высокопроизводительный, интерпретированный и динамический.

Особенности программных платформ Java

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

  • Общепринятые технологии развёртывания программ в пользовательской среде.
  • Инструментарии для создания графических интерфейсов любой сложности.
  • Библиотеки для удалённого управления объектами и программного доступа к данным.
  • Инструменты для запуска, отладки, компиляции, мониторинга и других действий с приложениями.

Что такое Eclipse?

Eclipse - среда разработки, в настоящее время контролируемая компанией Eclipse Foundation. Она предоставляет открытый исходный код, что обеспечивает новые возможности для разработчиков. Написана она на Java и предназначена для улучшения процесса создания программного обеспечения.

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

Огромное количество плагинов с открытым исходным кодом дарит неограниченные возможности для разработчиков инструментариев. В программу могут быть добавлены любые дополнения, что в итоге позволит настроить и адаптировать её под любую задачу.

Особенности платформы

Среда программирования обладает следующими особенностями:

  • Широкая сборка API для добавления новых модулей, а также фреймворк для программирования любых расширений.
  • Поддержка всех популярных операционных систем.
  • Программирование в большинстве известных языков позволяет именно Eclipse - среда разработки. Си шарп (C#), Java, PHP, C, Python, C++ и многие другие языки поддерживаются данной программой.
  • Доступна технология RCP, возможностей которой будет достаточно для разработки клиентского ПО любой сложности и масштаба.
  • Модульность программы обеспечивает невероятное удобство и гибкость в работе.

Проект Eclipse продолжает развиваться во многих направлениях. Программа постоянно улучшается, расширяется её функционал путём добавления новых плагинов.

Архитектура платформы

Среда программирования состоит из нескольких основных элементов. Во-первых, это Eclipse Runtime, отвечающая за работу модулей и плагинов. К данной исполняющей среде относится базовый функционал. Это подразумевает управление обновлениями, взаимодействие с системой, настройку плагинов, поддержку работоспособности раздела помощи.

Во-вторых, это сама IDE, отвечающая за управление проектами, ведущими элементами программы, а также за отладку, командную разработку и поиск среди файлов.

Такие плагины, как PDE и Java Development Tools, также включены в Eclipse. Среда разработки Java-программ и новых дополнений с использованием этих плагинов становится в разы функциональнее.

Примеры других специализированных сборок

Вышеуказанная Eclipse SDK является одной из версий платформы. Доступно ещё несколько сборок IDE с уникальными особенностями, а именно:

  • For Java EE Developers. Версия предназначена для программирования корпоративных или веб-приложений с применением Java EE.
  • For JavaScript Web Developers. Сборка для создания веб-продуктов с использованием CSS, XML, HTML и JavaScript.
  • For Java Developers. Версия для программирования на Java.
  • For C/C++ Developers. Сборка для программирования на языках C++ и C.

Каждая версия обладает уникальными особенностями, но базовый функционал для новичков в полной мере предоставляет именно стандартная Eclipse (среда разработки). Уроки по ней бесплатно доступны в сети, что значительно упростит изучение программы.

Конкурирующие продукты

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

При разработке мобильных приложений часто используется Eclipse (среда разработки). Android-платформа стремительно развивается, и поддержка Java-языка в данной IDE привлекает разработчиков. Однако стоит заметить, что её возможности намного больше.

Главным конкурентом рассматриваемой программы является продукт NetBeans, и он полностью бесплатен. За лицензию Eclipse же придётся заплатить, и некоторых это отпугивает. Среди остальных конкурирующих продуктов можно выделить также IntelliJ IDEA, JDeveloper, Android Studio, DrJava и MyEclipse. Но лучшей многие считают именно Eclipse. Среда разработки радует пользователей уже много лет и не прекращает это делать!

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

Фрэймворк подразумевает создание программного обеспечения с открытым кодом, поэтому лицензия свободная и можно Eclipse скачать бесплатно. Платформа, благодаря подключению разных модулей, позволяет разрабатывать практически любое клиентское приложения на всех популярных языках программирования - Java, C++, Python и т.д. Можно подключить отдельный модуль для работы с графическими интерфейсами. Созданные приложения работают под разными операционными системами – они подойдут для Windows, Linux и Mac OS, также поддерживается Android. Программы, созданные на Eclipse, представляют собой отдельные модули, которые подключают к основному приложению. Некоторые приложения, объединенные в библиотеки, для Эклипс скачать можно в открытом доступе, что значительно упростит работу над собственной программой.

Eclipse является независимым от платформ семейства Виндовс фрэймворком, за исключением стандартной библиотеки Swing для Java, замененной SWT, которая создается для всех известных и используемых платформ для программирования. Библиотека базируется на операционной системе, поэтому используются графические элементы ОС. Такая особенность может привести к тому, что приложение будет несовместимым с другими операционными системами. Можно Eclipse скачать на русском языке, что значительно упростит работу с приложениями под разные ОС. К тому же, в Интернете достаточно много справочной информации и форумов, посвященных фрэймворку.

Преимущества среды разработки Eclipse:

  • поддержка всех популярных языков программирования;
  • разработка приложений под разные операционные системы;
  • возможность бесплатно скачать нужные модули;
  • подключаемые модули обеспечивают гибкость фрэймворка;
  • свободная лицензия и открытый исходный код.

Если вы когда-нибудь пристально следили за событиями, происходящими в мире open-source или Java-технологий, то вы просто не могли никогда не слышать всего этого шума, развернутого вокруг Eclipse. Eclipse – это расширяемая, open-source интегрированная среда разработки (IDE, Integrated Development Environment). Этот проект был запущен в ноябре 2001 года, когда IBM выделили исходный код из Websphere Studio Workbench, ценой в 40 миллионов долларов, и сформировали Eclipse Consortium для управления разработкой этого инструмента.

Первоначальная цель заключалась в том, чтобы "разработать стабильную, полнофункциональную, промышленную платформу, качества коммерческого продукта, для разработки интегрируемых инструментов". На настоящий момент Eclipse Consortium фокусируется на следующих проектах:

  1. The Eclipse Project (http://www.eclipse.org/eclipse/index.html) – ответственен за разработку непосредственно Eclipse IDE (платформу для сборки прочих инструментов Eclipse), Java Development Tools (JDT) и Plug-In Development Environment (PDE), используемую для предоставления возможности расширения самой платформы.
  2. The Eclipse Tools Project (http://www.eclipse.org/tools/index.html) – занимается созданием оптимальных инструментальных средств для платформы Eclipse. В текущие подпроекты входят: Cobol IDE, C/C++ IDE, а также инструмент моделирования EMF.
  3. The Eclipse Technology Project (http://www.eclipse.org/technology/index.html) – занимается технологическими исследованиями, инкубацией и образованием по части использования платформы Eclipse.

Совместно с JDT, платформа Eclipse предоставляют множество различных возможностей, которые вы могли наблюдать в коммерческих IDE: подсветка синтаксиса в редакторе, компиляция кода, отладчик уровня исходного кода с поддержкой "нитей" (threads), навигатор по классам, файловый менеджер и менеджер проектов, интерфейсы для стандартных контролирующих систем исходного кода, таких как, например, CVS и ClearCase.

Помимо этого Eclipse содержит ряд уникальных возможностей, например, рефакторинг кода (http://www.refactoring.com/), автоматическое обновление и сборка кода (посредством Update Manager), список задач, поддержка возможности тестирования модулей с помощью JUnit (http://www.junit.org/), а также интеграция с инструментом сборки приложений Jakarta Ant (http://jakarta.apache.org/ant/index.html).

Несмотря на большое количество стандартного набора возможностей, Eclipse отличается от традиционных IDE по нескольким фундаментальным особенностям. Может быть, самая интересная возможность Eclipse – это абсолютная нейтральность относительно платформы и языка программирования. Вдобавок к эклектичному набору языков программирования, которые поддерживаются Eclipse Consortium (Java, C/C++, Cobol), существует множество сторонних проектов, с помощью которых вы можете обеспечить поддержку интересующего вас языка программирования в Eclipse. На сегодняшний день существуют реализации следующих популярных языков программирования: Python, Eiffel, PHP, Ruby, и C#.

Платформа Eclipse предоставляется, благодаря Eclipse Consortium, в виде заранее скомпилированных исполняемых файлов для Windows, Linux, Solaris, HP-UX, AIX, QNX, и Mac OS X. Очень много внимания концентрируется вокруг архитектурной системы plug-in"ов этой платформы, а также "богатых" API (Application Programming Interface), поставляемых с Plug-in Development Environment для расширения Eclipse. Добавить поддержку нового типа редактора, просмотрщика (панели) или языка программирования до безобразия просто, благодаря хорошо спроектированным API и строительным блокам, которые предоставляет Eclipse.

Имея приблизительно сотню проектов, по разработке plug-in"ов, имея ресурсы, предоставляемые такими промышленными гигантами, как IBM, HP и Rational (которая недавно была куплена IBM), и дизайн Erich Gamma, который помогает быстро разобраться в процессе разработки – будущему Eclipse предстоит быть весьма ярким, интересным и перспективным.

Установка

Бьюсь об заклад, что вы сейчас только и думаете о том, где бы достать копию этого самого Eclipse для вашей платформы и как бы это его установить? :) Первое, о чем вам для начала нужно позаботиться – это убедиться в наличии подходящей, рабочей JRE (Java Runtime Evironment). Хотя Eclipse и создавался в расчете на возможность компиляции кода как для JVM (Java Virtual Machine) версии 1.3, так и для версии 1.4, однако текущие версии Eclipse были спроектированы таким образом, чтобы запускаться на JVM версии 1.3. Если вы не уверены, где можно достать "виртуальную" Java-машину (JVM) для вашей платформы, вы можете найти подробные инструкции и дополнительную информацию об этом на сайте

Как только вы убедились в наличии JVM или установили подходящую ее версию, вы готовы к установке Eclipse. Для этого посетите download-раздел сайта проекта Eclipse (http://www.eclipse.org/downloads/) и скачайте оттуда последний релиз, собранный специально под используемую вами платформу. Все дистрибутивы представляют собой.zip-архивы. Распакуйте скачанный архив в подходящую директорию и потратьте немного времени на изучение всех файлов, содержащихся в директории readme.

Хотите - верьте, хотите – нет, но на этом инсталляция завершена. Если вы правильно установили JVM и корректно распаковали архив с Eclipse – вы можете приступать к процессу первого запуска этой IDE. Все дистрибутивы, содержащие скомпилированную версию платформы, предоставляют программы для запуска, которые располагаются в основной директории: eclipse. Имя этой программы запуска изменяется в зависимости от платформы, под которую вы скачали дистрибутив: eclipse.exe под Windows, eclipse под Solaris, и так далее. При первом запуске приложение Eclipse выполнит некоторые оставшиеся задачи по установке (например, создание workspace-директории для хранения файлов проектов) до того, как приложение окончательно будет готово к работе.

Интерфейс

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

Рисунок 1

Как вы можете заметить, Eclipse IDE имеет вполне стандартное содержание меню:

Рисунок 2

Помимо меню, здесь ярко видно сходство панели инструментов и системы закладок с такими же в других средах разработки приложений.

Пример приложения

Панели File Navigator , Code Outline и Task List отображены, но на данный момент не содержат никаких данных. Чтобы продолжить знакомство с Eclipse мы создадим простое Swing-приложение программу-калькулятор. Распишем действия по шагам:

1. Выберите пункт меню File->New->Project..., чтобы начать создание вашего первого Java-проекта. В окне "мастера" выберите Java среди предложенных типов проектов из левого списка и Java Project в правом списке, после чего нажмите кнопку Next .


Рисунок 3

2. В качестве имени проекта введите Calculator и продолжите создание проекта, нажав кнопку Next .


Рисунок 4

3. И, наконец, на завершающем этапе "мастер" создания нового проекта дает вам возможность определить директории, где будут храниться файлы исходного кода и class-файлы, определить подпроекты, которые могут быть использованы создаваемым нами, текущим проектом, а также любые библиотеки, которые мы предполагаем использовать в своем приложении. Установите переключатель на значение Use source folder contained in the project , после чего нажмите кнопку Create New Folder... . В качестве имени новой директории для хранения исходного кода введите src. Нажмите Yes , когда Eclipse спросит вас о том, изменить ли директорию с собираемым приложением на Calculator/bin .


Рисунок 5

4. Нажмите кнопку Finish , чтобы дать возможность Eclipse завершить создание нового проекта.

Как только вы создали новый проект, вы можете заметить, что внешний вид Eclipse несколько изменился (этого и следовало ожидать): панель Outline переместила в другую часть окна, панель Navigator была заменена панелью Package Explorer и т.д.

Вот какой вид приняло окно Eclipse после того, как мы создали новый проект:


Рисунок 6

Такая планировка называется Java Perspective . "Ракурс", в понятии Eclipse, определяет какой-либо сохраненный порядок расположения любого количества различных панелей редактора и просмотрщиков. Eclipse поставляется с рядом "ракурсов" определенных по умолчанию (Resource , Java , Debug и другие), которые могут быть изменены в соответствии с вашими нуждами, или же вы можете создавать свои собственные ракурсы. Ракурсы управляются при помощью элементов меню Window или специальной панели инструментов, которая обычно располагается вдоль левой границы окна Eclipse.

Рисунок 7

Следующим шагом в создании нашего Java-проекта нужно создать директории, которые будут содержать весь наш исходный код. Для этого переключитесь в ракурс Resource , используя пункт меню Window->Open Perspective->Resource . В панели Navigator разверните узлы дерева структуры папок таким образом, чтобы вы могли видеть узел-папку src. Выделите этот узел, и после выполните пункт меню File->New->Folder . В появившемся диалоговом окне, убедитесь, что директория src выбрана и затем введите в качестве имени новой, в поле Folder Name , имя com .

Создавать большое количество папок с помощью диалога New Folder было бы не очень удобно и утомительно. К счастью, Eclipse может предоставить вам возможность самим создавать нужные директории с помощью вашего любимого файлового менеджера: командной строки, Windows Explorer и прочих. Используя один из предложенных методов, создайте в папке com папку devious , а в ней папку calculator . Как только вы создали эти папки, выберите любую папку-узел в панели Navigator и, с помощью элемента меню File->Refresh , обновите содержимое этой панели. Таким образом, Eclipse произведет просмотр файловой системы и обновит панель проекта в соответствии с теми изменениями, что вы внесли (создали новые директории). На этом этапе ваше окно Eclipse должно иметь примерно следующий вид:


Рисунок 8

И еще одно замечание по поводу создания файлов: на ранних этапах создания проекта, вы, скорее всего, достаточно часто будете запускать свое приложений, создавать новые файлы и папки, добавлять новый код, компилировать, и тестировать свой код снова. Важно помнить, что расположение меню в Eclipse зависит от используемого ракурса. Так, если вы переключаетесь в ракурс Resource , чтобы создать новый файл или папку в панели Navigator , вы обнаружите, что меню Run , например, в корне отличается от меню Run в ракурсе Java . Одно из решений этой часто встречающейся проблемы – это использование меню Windows->Show View с тем, чтобы отобразить панель Navigator в ракурсе Java . Если вас полностью устроит полученный ракурс то, воспользовавшись элементом меню Window->Save Perspective As... , вы сможете сохранить ваши изменения в новом ракурсе, либо переписать существующий ракурс Java .

Добавление кода

Теперь, когда у нас есть созданная структура директорий, мы можем начинать добавление исходного кода в наш проект. Мы разделим нашу программу-калькулятор на три класса (файла): CalcModel.java , CalcPanel.jav a, и Calculator.java . Скачайте.zip-архив с исходным кодом этой программы отсюда http://www.onjava.com/onjava/2002/12/11/examples/calculator.zip . После этого распакуйте этот архив и поместите три упомянутых выше файла в директорию com/devious/calculator . Снова воспользуемся пунктом меню File->Refresh , чтобы обновить содержимое панели Project Manager. Вот, что вы должны увидеть после выполнения этих действий:


Рисунок 9

CalcPanel.java представляет основу интерфейса пользователя нашего калькулятора. Calculator.java выполняет подготовительные инициализационные функции и запускает GUI (графический интерфейс пользователя). Самая же важная часть нашей программы находится в файле CalcModel.java , который занимается непосредственно реализацией фактической математики нашего калькулятора: реагирование на события, выполнение математических вычислений, обновление отображаемой информации, и т.д. Самый простой способ просмотреть исходный код – это переключиться из ракурса Java в Java Browsing . Для этого используйте Open Perspetive из меню Window или кликните на кнопке Open , которая находится на панели инструментов для работы с ракурсами.

В то время как вы перемещаетесь по исходному коду на панели Package Explorer , вы можете заметить, что панель Outline становится ненужной вам на данном этапе. Ее можно на время убрать с экрана, кликнув по крестику в правом углу этой панели. Когда она вам понадобится, вы можете воспользоваться пунктом меню Window->Show View->Outline , чтобы отобразить ее вновь.


Рисунок 10

Запуск и отладка кода

Итак, вы скачали и установили Eclipse, создали новый Java-проект и добавили необходимые файлы и папки для своего простого приложения. Настало время проверить это приложение в деле, запустив его. Для этого вам нужно установить ракурс Java , чтобы выполнить шаги, которые необходимы для запуска приложения:

1. Из основного меню Run выберите элемент Run...

2. В появившемся диалоге "мастера" запуска, выберите "Java Application" из списка Launch Configurations и нажмите кнопку New


Рисунок 11

3. В качестве имени новой конфигурации введите Calculator

4. Нажмите кнопку Search... и выберите основным классом класс Calculator в поле Main class , или просто введите в поле ввода полное имя класса: com.devious.calculator.Calculator .


Рисунок 12


Рисунок 13

Создав однажды конфигурацию запуска своего приложения, вы можете запускать его вновь с помощью меню Run->Run History или кнопки Run на панели инструментов. Если вы потратите достаточно времени, "играя" с этим калькулятором, вы обнаружите, что он работает в основном правильно, но только с одном "но": он не хочет правильно выполнять операцию вычитания! Время пустить в ход отладчик исходного кода Eclipse и обнаружить эту злосчастную ошибку. Если вы следовали всем инструкциям, приведенным выше в этой статье, то вы можете запустить это приложение с отладчиком с той же конфигурацией, которую мы определили для обычного запуска. Для этого выберите в меню пункт Run->Debug History->Calculator .

Когда вы запускаете свое приложение вместе с отладчиком, Eclipse автоматически переключается в ракурс Debug :


Рисунок 14

Поскольку, обнаруженная нами, проблема сконцентрирована вокруг функции вычитания, мы установим точку прерывания (breakpoint) в обработчик события для кнопок "-" и "=". Для начала, нам нужно переключиться в закладку редактора класса CalcPanel . (Если у вас нет закладки с исходным кодом этого класса, вам нужно открыть файл с именем CalcPanel.java , предварительно переключившись в ракурс Java или Resource и потом вернуться обратно в ракурс Debug ).

Воспользуйтесь панелью Outline , чтобы определить местонахождение метода actionPerformed . Переместитесь немного ниже, пока не обнаружите выражение case для знака "-" (строка 126). Если вы выполните двойной клик на левой границе этой строки, Eclipse автоматически установит точку прерывания в ней. Переместитесь немного ниже и установите еще одну точку прерывания на вызове метода model.calculate() в обработчике события кнопки "=" (строка 138).


Рисунок 15

Теперь переключитесь в окно калькулятора и нажмите несколько кнопок. Например, "2", "4", "6" и "-". Как только отладчик натыкается на точку прерывания, вы можете видеть появившиеся кнопки на панели инструментов Debug , которые служат для пошагового прохождения по исходному коду, причем можно делать шаги по коду и, не заходя внутрь методов, выполнять их автоматически, или же, заходя внутрь, проходиться и по их исходному коду.

Рисунок 16

Если мы зайдем внутрь метода setOperation() , станет понятно, что он выполняют достаточно тривиальную функцию: сохраняет код операции в поле pendingOp . Теперь нажмите кнопку Resume на панели инструментов Debug , чтобы продолжить выполнение программы.

Замечание: Основная ошибка новых пользователей Eclipse в том, что они иногда нажимают кнопки Debug или Run на основной панели инструментов (что приводит к запуску еще одной копии приложения) вместо того, чтобы нажать Resume .

Теперь нажмите еще пару кнопок (например, "1", "2", "3") и после этого кнопку "=". Таким образом, мы оказываемся внутри метода calculate() , проблема оказалась очевидна: кто-то скопировал код из варианта OP_ADD, но забыл заменить знак + на -. Проблема решена! :)

Исправление ошибки методом HotSwap

Если для запуска приложения вы использовали JVM версии 1.4, то нам остался всего один завершающий шаг на пути к исправлению этой ошибки в нашем примере. Вместо того, чтобы выходить из программы-калькулятора, вносить изменения в исходный код, компилировать заново весь проект, и только потом запускать новую сессию отладчика, мы можем изменить все "налету". В то время как отладчик все еще запущен, измените в исходном коде строку с:

SetDisplay(previousValue + currentValue); // на: setDisplay(previousValue - currentValue);

Сохраните этот файл, после чего нажмите кнопку Resume , чтобы "отпустить" приложение и продолжить работу с ним. Используя кнопку C , чтобы сбросить его, и повторите действия, которые мы проделали ранее. Теперь все работает, как положено!

То, что мы сейчас продемонстрировали – это поддержка Eclipse"ом новой возможности (которая носит название HotSwap) JVM версии 1.4. Теперь Java Platform Debugger Architecture (JPDA) поддерживает возможность замены исходного кода у выполняющегося приложения. Это особенно полезно, когда запуск приложения или нахождение места, где оно "рушится", отнимает много времени.

Интересные возможности в ближайших версиях Eclipse

Одна весьма интересная особенность Eclipse – это скорость, с которой отлавливаются ошибки, и с которой разработчики реагируют на различные нужды и пожелания пользователей. Eclipse Consortium ежемесячно выпускают последние релизы, которые включают в себя стабильные версии различных возможностей, которыми интересуются пользователи (такие релизы содержит в названии идентификаторы M1, M2, M3 и т.д.) Среди возможностей, включенных в релиз 2.1 M3 можно выделить следующие, наиболее значимые:

  • - настраиваемые связи "горячих" комбинаций клавиш, включая набор связей, схожий с тем, что есть в Emacs;
  • - возможность автоматической вставки TODO , FIXME и других тэговых комментариев в Java-код, в различные элементы и списки задач;
  • - улучшенная поддержка CVS, включая возможность определять "working sets", которые ограничивают количество отображаемых проектов на панели CVS Repositories ;
  • - новые заготовки в Java-редакторе, которые могут использоваться для показа исходного кода, Javadoc, детальных сообщений об ошибках для каждой строки кода или выражения в "выпадающем" (tooltip) окне;
  • - поддержка нескольких новых рефакторингов;
  • - новая панель Threads and Monitors в отладчике, которые позволяют определить какие из "нитей" (потоков) блокируют ресурсы, какие из них находятся в ожидании, и прочую полезную информацию для отладки мультипотоковых приложений;
  • - более тесная интеграция с инструментом сборки Jakarta Ant;

Эта последняя особенность и делает Eclipse хорошо скомпонованной средой разработки Java-приложений и, в частности, разработки Web-приложений. Eclipse объединяет в себе все инструменты, которые необходимы разработчику чтобы успешно разрабатывать Web-приложения: расширяемую IDE, стандартный компилятор, возможность удаленной отладки, поддержка Ant, тестирование с помощью JUnit, plug-in"ы для взаимодействия, практически, со всеми серверами приложений, а также EJB-контейнер.

Ресурсы

  • eclipse.org (http://www.eclipse.org/)
  • Eclipse Project FAQ (http://www.eclipse.org/eclipse/faq/eclipse-faq.html)
  • Eclipse Platform Technical Overview (

В данной статье я хотел рассказать о том, как создавать приложения при помощи Eclipse RCP (Rich Client Platform). Поводом для написания послужил тот факт, что на Хабре абсолютно отсутствуют статьи, описывающие данную платформу. В качестве примера мы создадим пользовательскую форму ввода; корректность данных будет проверяться при помощи JFace Data Binding framework. Для затравки приведу ниже скриншот с тем, что у нас должно получиться.

Что такое Eclipse RCP

Для начала, все же необходимо сказать, что же такое Eclipse RCP. Eclipse – это среда разработки, написанная на Java, развиваемая и поддерживаемая Eclipse Foundation (участниками которого являются IBM, SAP, Oracle, компании, предлагающие продукты на основе Eclipse RCP и участвующие в развитии экосистемы Google, RedHat, Adobe, Cisco, Intel). Eclipse RCP – это набор плагинов для создания, так называемых, rich client application. Все что видит пользователь, открывая Eclipse IDE, является плагином, созданным на основе этой платформы. Пользователь может создавать свои плагины на основе огромного количества уже существующих, также при необходимости можно найти большинство популярных фреймворков, таких как Hibernate, Google Guice, Google Guava, JUnit, TestNG в виде плагинов. Также стоит отметить, что архитектура времени выполнения основана на спецификации сервисной платформы OSGI , данная спецификация описывает способы создания и работы модульных приложений. Eclipse, как уже упоминалось выше, написана на Java и позиционируется как кроссплатформенный продукт (в 90% случаев RCP приложение соберётся на Windows, Linux и Mac). Все плагины, составляющие ядро платформы, и большинство сторонних плагинов распространяются под лицензией EPL (Eclipse Public License). Пользовательский интерфейс RCP приложений основан на визуальных компонентах фреймворков SWT и JFace, а также на собственных Eclipse виджетах. Рисунки, приведённые ниже, показывают из каких компонентов состоит приложение, основанное на платформе RCP, и структуру самой платформы Eclipse.


Рисунок 1 - Компоненты используемые в RCP приложении (рисунок взят с этого сайта)


Рисунок 2 – Архитектура Eclipse (рисунок взят с этого сайта)

Плюсы и минусы платформы
Главный вопрос - чем же так хороша данная платформа и зачем ее использовать для разработки десктопных приложений (к слову, возможно разрабатывать веб приложения и приложения для мобильных платформ). Модульность, кроссплатформенность, поддержка мультиязычности, бесплатность, огромное количество существующих плагинов, библиотек и фреймвороков. Все это позволяет создавать приложения коммерческого уровня (ссылка на список существующих приложений разработанных на данной платформе приведена в конце статьи). К минусам можно отнести достаточно высокий уровень вхождения, так как для разработки серьёзного приложения необходимо знать хотя бы в общих чертах, как работает OSGI фреймворк, уметь работать с компонентами и виджетами SWT и JFace. Также для русскоговорящих разработчиков проблемой будет найти какие-либо материалы или книги об упомянутых выше фреймворках и библиотеках (ссылки на найденные ресурсы, в том числе и на русскоязычные, приведены в конце статьи), хотя в Европе и США периодически проводятся конференции, которые организуют участники Eclipse Foundation, в Германии издается специальный журнал, рассказывающий о новых плагинах и содержащий уйму примеров их применения, а также существует целая серия книг на немецком, которая описывает все ньюансы и тонкости разработки. На английском можно найти специальную серию книг eclipse series издательства Addison-Wesley, также можно найти пару книг от издательства Apress. Но на нашем родном языке материалов и книг ничтожно мало.

Приступаем к работе

Установка необходимых плагинов
Давайте перейдём непосредственно к созданию нашего первого RCP приложения. Для работы нам необходимо скачать сборку: Eclipse for RCP and RAP Developers c официального сайта. Если же Eclipse IDE уже установлена, то можно воспользоваться менеджером обновлений. Выберем в главном меню пункт Help->Install New Software. В появившемся окне Install сверху выберем из выпадающего списка нужный нам сайт с обновлениями - download.eclipse.org/releases/indigo , если такого сайта в списке нет, то нажмём справа кнопку Add, в поле Name напишем – Indigo Update Site, в поле Location – адрес, приведённый выше, нажмём OK (если при добавлении адреса появляется сообщение – Duplicate location, значит адрес уже существует в списке Available Software Sites, список сайтов обновлений можно посмотреть в предыдущем окне Install если щёлкнуть по ссылке Available Software Sites, которая находится под выпадающем списком). После выбора сайта обновлений, внизу появится древовидный список (если отмечен чекбокс Group items by category), откроем пункт General Purpose Tools и выберем Eclipse Plug-in Development Environment , затем откроем пункт EclipseRT Target Platform Components и отметим плагин – Eclipse RCP Plug-in Developer Resources , именно эти два плагина нам необходимы для создания нашего проекта. Далее нажмём два раза Next, примем лицензионное соглашение и щёлкнем по кнопке Finish; все, начнется установка необходимых плагинов. После установки нам будет предложено перезагрузить Eclipse, что мы и сделаем.


Рисунок 3 – Окно установки плагинов

Создание проекта
После перезагрузки выберем в главном меню пункт File->New->Other, выберем пункт Plug-in Development, далее, в ниспадающем меню отметим Plug-in Project.


Рисунок 4 – Меню выбора типа создаваемого проекта

Нажмём Next, нам необходимо дать имя нашему проекту, пусть он будет называться first.rcp.application, опять нажмём Next. В следующем окне нам необходимо указать имя приложения, в поле Name напишем First RCP Application. Снимем флажок с пункта Generate an activator, a Java class that controls the plug-in’s life cycle; для нашего простого приложения класс активатор не нужен. Оставим флажок на пункте - This plug-in will make contributions to the UI, так как наше приложение будет содержать пользовательский интерфейс. Оставим третий пункт Enable API Analysis неотмеченным. На вопрос - Would you like to create a rich client application? ответим Yes.


Рисунок 5 – Окно создания плагина

Нажмём Next, нам будет предложено выбрать шаблон для будущего приложения, выберем - Hello RCP и нажмём Next.


Рисунок 6 - Окно выбора шаблона RCP проекта

В последнем окне, в поле Application window title напишем - User Form, в поле Application class – MyApplication . Флажок Add branding оставим неактивным. Нажмём кнопку Finish. Нам будет предложено переключиться на перспективу Plug-in Development perspective, согласимся с этим предложением.


Рисунок 7 - Окно конфигурации шаблона RCP проекта

Структура проекта
Итак перед нами структура только что созданного проекта.


Рисунок 8 – Структура проекта

Содержание пяти классов в пакете first.rcp.application в данный момент нас не итересует, скажу только, что класс MyApplication это в некотором роде метод main() обычной Java программы, данный класс отвечает за то как будет запущен наш плагин и как он будет остановлен. В классе ApplicationWorkbenchWindowAdvisor , мы можем установить размер окна приложения при помощи следующей строки кода:
configurer.setInitialSize(new Point(400, 300));
Также мы можем увидеть, что по умолчанию не будет показываться панель инструментов и строка состояния:
configurer.setShowCoolBar(false);
configurer.setShowStatusLine(false);
Последней строкой устанавливается заголовок главного окна:
configurer.setTitle("User Form");
Класс ApplicationActionBarAdvisor отвечает за настройку строки меню нашего приложения. Класс Perspective отвечает за расположение и размер редакторов (editors) и видов (views), которые находятся в данной перспективе (perspective), в RCP приложении должна быть хотя бы одна перспектива.

Запуск проекта
Для того, чтобы запустить только что созданное нами приложение, нам необходимо перейти в папку META-INF и открыть файл MANIFEST.MF , если вы вдруг его закрыли (этот файл открывается по-умолчанию при создании проекта).


Рисунок 9 – Редактор свойств RCP приложения

Данный файл позволяет нам менять многие настройки проекта, подключать дополнительные плагины, подключать и управлять расширениями, настраивать сборку нашего плагина и многое другое. Мы находимся на вкладке Overview, в разделе Testing нажмём на ссылку - Launch an Eclipse application, через мгновение на экране появится окно нашего приложения, закроем его и перейдём к следующему этапу.


Рисунок 10 – Окно нашего приложения

Добавление вида (view)

Добавление расширения
Нашей задачей является создание вида (view), на который мы сможем поместить элементы графического интерфейса. Перейдём опять к файлу MANIFEST.MF , выберем внизу вкладку – Extensions. Мы видим, что по умолчанию у нас есть два расширения: org.eclipse.core.runtime.applications и org.eclipse.ui.perspectives. Первое расширение связано с классом нашего приложения MyApplication , если мы выберем данное расширение и развернём древовидный список до узла first.rcp.application.MyApplication (run), мы увидим, что поле class содержит название именно этого класса. Вернувшись к корневому узлу данного списка, справа в разделе Extension Details мы увидим два поля, значения которых мы тоже можем поменять (не будем сейчас этого делать): ID – идентификатор приложения и Name – название приложения.

Второе расширение отвечает за настройку перспективы нашего приложения. Файл MANIFEST.MF позволяет нам не заглядывая в код класса Perspective, указать, какие виды и/или редакторы будет содержать данная перспектива, их положение, размер и соотношение. Щёлкнув на этом расширении и перейдя к дочернему пункту мы увидим, что в разделе Extension Element Details мы можем указать класс перспективы, идентификатор и имя. Необходимо отметить, что подобные изменения, как говорилось выше, можно произвести путём редактирования непосредственно кода класса, который связан с данным расширением и редактированием файла plugin.xml , но не хотелось бы усложнять создание нашего первого проекта.


Рисунок 11 – Вкладка с расширениями нашего проекта

Нам необходимо добавить новое расширение для создания вида. Для этого нажмём на кнопку Add и в появившемся окне, в поле Extension Point filter введём views, должно остаться только одно расширение – org.eclipse.ui.views, выберем его и нажмём кнопку Finish.


Рисунок 12 – Окно выбора нового расширения

В списке расширений у нас должно появиться ещё одно, третье по счёту расширение.

Настройка вида
Щёлкнем по добавленному нами расширению правой кнопкой мыши, появится контекстное меню, выберем в нем New->view, тем самым мы добавим элемент к нашему расширению (этим элементом и является необходимый нам вид). В правой части появятся настройки данного элемента. Для начала создадим класс для нашего вида. Сделать этом мы можем нажав на ссылку class*.


Рисунок 13 – Настройки вида (view)

Откроется стандартный диалог создания Java класса, дадим ему название – MainView; как мы можем заметить, данный класс наследуется от класса org.eclipse.ui.part.ViewPart , родительского класса для всех видов. Завершим создание класса нажав на кнопку Finish. Осталось совсем немного, после создания класса для нашего вида перед нами откроется его код, создадим статическую переменную, которая будет содержать идентификатор данного вида, в качестве идентификатора мы зададим каноническое имя данного класса. Напишем следующее:

public class MainView extends ViewPart {
public static final String ID = MainView.class.getCanonicalName();

}
Ввернёмся к файлу MANIFEST.MF , откроем вкладку Extension, скопируем содержимое поля class* и вставим его в поле ID. Теперь имя класса и идентификатор этого вида совпадают, данный приём является хорошей практикой, так как всегда позволяет быстро найти нужный вид и узнать его идентификатор. В поле name* напишем – User Form. Все вид создан, осталось связать его с нашей перспективой, так как вид сам по себе не может быть использован, иными словами он должен принадлежать какой-либо перспективе.

Настройка расположения вида
Дальнейшие манипуляции мы можем произвести оставаясь в редакторе расширений или же открыть код класса перспективы - Perspective.java , что мы и сделаем. В классе Perspective , перейдём в метод – createInitialLayout(), данный метод задаёт начальное положение видов и редакторов. В методе напишем следующие две строки кода:
layout.setEditorAreaVisible(false);
layout.addStandaloneView(MainView.ID, true, IPageLayout.LEFT, 1.0f, layout.getEditorArea());
Первая строка указывает объекту layout, что нам не нужна область для редактирования, так как у нас только один вид и нету редакторов. Вторая строка добавляет наш вид, причём как автономный (standalone). Первым параметром является идентификатор нашего вида. Второй параметр это булево значение, отвечающее за то, будет или нет показан заголовок нашего вида (User Form). Третий параметр предназначен для указания ориентации вида в перспективе, так как вид у нас один и займёт все пространство перспективы, то данное значение может быть любым. Четвёртый параметр определяет положение этого вида по отношению к другим видам или редакторам, так как, в нашем случае, вид один он должен занимать все пространство перспективы. Последний пятый параметр, идентификатор области редактирования (editor area). Сохраним наши изменения.
Запуск приложения с добавленным видом
Вернёмся к файлу MANIFEST.MF и снова запустим наше приложение, для этого перейдём на вкладку Overview, в разделе Testing, щёлкнем по ссылке Launch an Eclipse application. Большого различия с тем как выглядела форма при предыдущем запуске мы не увидим, добавилась только вкладка с нашим видом – User Form.


Рисунок 14 – Окно нашего приложения с добавленным видом

На сегодня все, продолжение будет в следующей статье.

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то