Eclipse SWT обзор возможностей


Содержание

Библиотека SWT (Standard Widget Toolkit)

SWT библиотека представляет собой кросс-платформенную оболочку для графических библиотек конкретных операционных систем. SWT разработана с использованием стандартного языка Java и получает доступ к специфичным библиотекам различных ОС через JNI (Java Native Interface), который используется для доступа к родным визуальным компонентам операционной системы.

Библиотека SWT является библиотекой с открытым исходным кодом и предназначена для разработки графических интерфейсов приложений на языке Java. Лицензируется SWT под Eclipse Public License, предназначенной для открытого ПО.

SWT позволяет получать привычный внешний нтерфейс программы в соответствующей операционной системе и является альтернативой библиотекам AWT и Swing. Java-приложение с использованием SWT более эффективна по сравнению с AWT и Swing. Но при этом появляется зависимость от операционной системы и оборудования.

IDE Eclipse

Корпорация IBM, имея опыт разработки VisualAge/SmallTalk, инициировала проект по разработке универсальной платформы для создания java приложений IDE Eclipse. В процессе разработки IDE (Integrated Development Enviroment) Eclipse была разработана новая графическая библиотека, получившая название Standard Widget Toolkit (SWT).

Библиотеку SWT можно использовать не только для разработки приложений в IDE Eclipse, но также в других средах. Для этого достаточно включить SWT в состав java приложения.

Библиотека SWT поддерживает большинство популярных операционных систем. Также существует возможность компиляции SWT java приложений в нативный бинарный код, что повышает производительность созданных приложений и не требует установки java машины — Java Runtime Enviroment (JRE). Такие приложения ничем не отличаются от нативных приложений конкретной операционной системы, а использование современных IDE позволяет быстро создавать качественные кросс платформенные продукты для различных операционных систем.

Дистрибутив библиотеки SWT для различных ОС можно скачать на сайте http://www.eclipse.org/swt/.

Создание проекта с использованием SWT в IDE Eclipse

Библиотека SWT входит в состав IDE Eclipse и располагается в поддиректории plugins. К проекту можно подключить как «родную» библиотеку Eclipse, так и «внешнюю» с учетом программно-аппаратной части ОС, в которых приложение будет работать. Подключить библиотеку SWT к проекту в IDE Eclipse можно несколькими способами.

Подключение SWT из директории plugins среды Eclipse

Для подключения SWT из директории plugins среды Eclipse необходимо открыть форму настроек проекта. Для этого следует выделить проект, вызвать всплывающее меню правой клавишей мыши и выбрать пункт «Properties», либо нажать горячие клавиши «Alt-Enter». В открывшейся форме следует выбрать вкладку «Libraries», нажать кнопку «Add External Jars. » и выбрать библиотеку SWT из директории plugins среды Eclipse.

Подключение к проекту дистрибутива SWT

Дистрибутив поставляется в виде архива zip. Его необходимо «развернуть» и импортировать в IDE Eclipse как «Existing Projects into Workspace».

В результате в дереве проектов вкладки «Package Explorer» IDE Eclipse проект библиотеки SWT будет иметь структуру как на следующем скриншоте.

После этого библиотеку SWT можно подключать к проектам. Для это следует в форме настроек проекта на вкладке «Projects» нажать кнопку «Add» и в отдельном окне добавить к проекту библиотеку SWT в виде дополнительного проекта (org.eclipse.swt).

Проект в IDE Eclipse с использованием SWT

Структура проекта с использованием библиотеки SWT в IDE Eclipse представлена на следующем скриншоте.

Объект Display, используемый в java-приложениях с SWT, в интерфейсе не виден, но нужен для того, чтобы отображать графические визуальные компоненты, расположенные на нем.

Объект Shell — это окно в приложении. Для отображения графического интерфейса приложения необходимо открыть Shell и создать цикл отслеживающий уничтожение окна. В приложении может быть создано несколько экземпляров Shell.

Почти все графические интерфейсы java-приложения с SWT создаются из нескольких основных частей. Все SWT widgets могут быть найдены в пакетах org.eclipse.swt.widgets или org.eclipse.swt.custom (некоторые плагины Eclipse также предоставляют кастомизируемые widgets в других пакетах).

Практически все элементы управления в SWT имеют в конструкторе родительский объект. При инициализации элементы управления автоматически добавляются к предку, в то время как в AWT/Swing они должны быть явно указаны, реализуя нисходящий способ реализации графических интерфейсов. Таким образом, все элементы управления в SWT получают композитный родительский класс (или внутренний класс), как аргумент конструктора.

Большинство SWT элементов имеют опции флага, которые часто называют «Стилем». Все значения стиля имеют тип static final int и описываются в классе SWT в пакете org.eclipse.swt. Если флаг/стиль не требуется, необходимо использовать значение SWT.NONE.

SWT, JFace, widget

Библиотека SWT использует основные widgets (виджеты) операционной системы. Во многих IDE такой подход к разработке является слишком низкоуровненным. Дополнительно совместно с SWT используется библиотека JFace, предоставляя java приложениям с библиотекой SWT многочисленные сервисы.

Виджет widget

С точки зрения программного приложения widget («виджет») — это элемент графического интерфейса, имеющий стандартный внешний вид и выполняющий стандартные действия. Под виджет‘ом подразумеваются окно (диалоговое, модальное), кнопка (стандартная, радиокнопка, флаговая), список (иерархический, раскрывающийся) и т.д.

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

Библиотека JFace

Библиотека JFace расширяет возможности SWT. Одна из основных важных особенностей JFace является способность изолировать модель данных приложения от графического интерфейса, который воспроизводит и модифицирует их.

JFace — это набор java-классов, реализующих наиболее общие задачи построения GUI. С точки зрения разработки java-приложения JFace представляет собой дополнительный программный слой над SWT, который реализует шаблон Model-View-Controller. JFace реализует следующие возможности:

  • представление «Viewer» классов, отвечающих за отображение и реализующих задачи по заполнению, сортировке, фильтрации;
  • представление «Action» классов, позволяющих определять «поведение» отдельных widget’ов, таких как пункты меню, кнопки, списки и т.п.;
  • представление регистров, содержащих шрифты и изображения;
  • представление набора стандартных диалоговых окон и виджетов для взаимодействия с пользователем.

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

Основной задачей группы разработчиков Eclipse было сокрытие реализации компонентов графического интерфейса построенных на основе библиотеки SWT и по возможности максимальное использование библиотеки JFace как более высокоуровневой и простой в использовании.

Библиотека SWT не зависит от JFace, но JFace использует SWT. Тем не менее, IDE Eclipse построена с использованием обеих библиотек, но в некоторых случаях SWT используется напрямую в обход JFace.

Проект Eclipse

Автор: Askar Rahimberdiev
Borland
Источник: RSDN Magazine #4-2004

Опубликовано: 22.01.2005
Исправлено: 13.03.2005
Версия текста: 1.0

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

Введение

Что такое Eclipse? Ответ, который первым приходит в голову – “это еще одна IDE для Java”. Однако Eclipse – нечто большее, чем просто IDE, и к тому не ограничен рамками Java. Сами создатели Eclipse называют его платформой для разработки интегрированных приложений. Какой смысл они вкладывают в это понятие?

В настоящее время разработка Eclipse ведется в рамках нескольких проектов. Кратко рассмотрим основные из них – Eclipse и Eclipse Tools. Читатели могут получить полную информацию о проектах, исходные коды и собранные дистрибутивы на сайте http://eclipse.org.

Проект Eclipse включает в себя платформу для разработки приложений, IDE для Java, построенную на ее основе а также средства, необходимые разработчику приложений. Дистрибутив, объединяющий эти компоненты вместе с исходными кодами и пользовательской документацией, называются Eclipse SDK – именно с него рекомендуется начинать знакомство с Eclipse. Eclipse SDK содержит все необходимое для разрабочиков Java: инкрементальный компилятор, редактор Java с подсветкой синтаксиса, контекстным автозавершением и поддержкой шаблонов, отладчик, поддержку автоматического рефакторинга и навигации по исходному коду. Для работы Eclipse SDK необходима JRE (Java runtime environment) версии не ниже 1.4.1 и операционная система Windows 98/ME/2000/XP, Linux, Solaris, AIX, HP-UX или Mac OSX.

В проекте Eclipse Tools собраны приложения, созданные на базе Eclipse, такие как CDT (IDE для С и C++) и EMF (поддержка генерации исходного кода Java для приложений моделирования). Именно тот факт, что все приложения Eclipse используют общие концепции, интерфейсы и технические решения, позволяет говорить об их упомянутой выше интеграции.

История

Разработка Eclipse началась в апреле 1999 года совместными усилиями компаний OTI и IBM. В октябре 2001 года вышел релиз 1.0, а месяцем позже IBM полностью открыла исходный код Eclipse. Тогда же был образован совет управляющих (Board of Stewards) Eclipse, призванный обеспечить развитие проекта и создать вокруг него сообщество разработчиков. К концу 2002 года в совет входило около тридцати компаний-участников

Тем не менее, поддержку Eclipse со стороны крупных компаний-разработчиков ПО существенно ограничивал тот факт, что весь проект и, самое главное, перспективы его развития, прочно ассоциировались с одной компанией – IBM. Действительно, вклад IBM в создание Eclipse был настолько велик, что весь проект неизбежно воспринимался как ее собственная разработка. Однако главной задачей самой IBM, сделавшей ставку на технологию Java (а не .NET), было добиться широкого распространения качественных продуктов для разработчиков на этой платформе. Чтобы завоевать доверие крупных поставщиков ПО, в начале 2004 года Eclipse был преобразован в некоммерческую ассоциацию, гарантирующую, что все технологии и исходный код Eclipse останутся открытыми и бесплатными.

Архитектура

Eclipse построен в виде набора расширяемых подсистем, а не как единое монолитное приложение. В Eclipse входят три подпроекта, разрабатываемых более или менее независимо друг от друга – Platform, JDT (Java development tools) и PDE (Plug-in development environment). Platform предоставляет базовые сервисы, JDT позволяет разрабатывать приложения Java, а PDE – новые компоненты Eclipse. Далее в статье анализируются основные свойства и внутреннее устройство каждого из подпроектов.

Рисунок 1 Архитектура Eclipse.

Platform

Platform является ядром Eclipse. Сама по себе эта подсистема не содержит особенно полезной для пользователей функциональности, но без нее невозможна работа остальных подпроектов Eclipse. Сервисы, которые обеспечивает Platform, позволяют разработчикам определять видимые пользователю артефакты, создавать пользовательские интерфейсы, работать с системами контроля версий, средами отладки и справочной системой. Соответствующими компонентами Platform, реализующими эти сервисы, являются Workspace (управление контентом), Workbench (базовый пользовательский интерфейс Eclipse), Team, Debug и Help.

Workspace

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

Ресурсы

Базовые понятия, определяемые Workspace – это рабочая область (workspace), проект (project), папка (folder) и файл (file). В терминологии Eclipse все эти объекты называются ресурсами (resources).


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

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

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

Проекты могут зависеть друг от друга – это значит, что проект A может ссылаться на проект B и использовать ресурсы из него.

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

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

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

Большинство правильно спроектированных приложений Eclipse никогда не обращается к файлам напрямую, используя для этого стандартные средства Java или какие-либо иные способы. Вместо этого доступ к файловой системе осуществляется при помощи интерфейсов Workspace. Впрочем, использование стандартных средств Workspace не является обязательным – если это по какой-либо причине неприемлемо (например, ваше приложение не использует стандартный механизм объединения ресурсов в виде проектов), вполне допустимо использовать альтернативные механизмы.

Маркеры

Перед разработчиками приложений Eclipse часто встает задача отображения сообщений, привязанных к определенному фрагменту в ресурсе. Примерами являются сообщения компилятора Java или закладки (bookmarks), определяемые пользователем для быстрой навигации между файлами. Platform содержит маркеры (markers) – универсальный механизм для работы с такими объектами. Именно маркеры используются для создания, сохранения и отображения сообщений компилятора и пользовательских закладок.

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

Любой маркер может быть объявлен как сохраняемый (persistent) – такие маркеры автоматически сохраняются платформой и после ее перезапуска будут восстановлены в изначальном виде. Обратной стороной использования сохраняемых маркеров является то, что легко получить множество устаревших маркеров, которые могут запутывать пользователя; при этом у пользователя нет стандартного способа удаления маркеров. Поэтому приложения, использующие сохраняемые маркеры, должны очень аккуратно управлять процессом их создания и удаления.

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

Проекты

Каким образом Eclipse будет интерпретировать тот или иной проект, целиком зависит от его свойств. Наиболее важными из поддерживаемых Platform свойств являются типы проектов (project natures) и билдеры (builders).

Билдеры, в самом общем понимании, – это компоненты, обрабатывающие ресурсы, входящие в проект, такие как компилятор Java, преобразующий исходные тексты в бинарные .class файлы. После первоначальной обработки проекта, билдеры должны реагировать на изменения, происходящие в его ресурсах. Очень важным здесь является понятие инкрементальной обработки – для улучшения производительности билдеры должны по возможности обрабатывать только те ресурсы, которые были изменены с момента последнего запуска билдера.

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

Тип проекта (nature) определяет множество билдеров, которые могут работать с ресурсами, входящими в проект. К примеру, с проектом, представляющим собой Java-приложение, должен работать компилятор Java. С одним проектом может работать несколько билдеров – как правило, каждый билдер предназначен для определенного типа файлов. Разработчики приложений Eclipse могут также определять специфические действия для конфигурирования проектов определенного типа.

Workbench


Перспективы, виды, редакторы

Компонент Workbench определяет базовый пользовательский интерфейс (UI) Eclipse, а также предоставляет другим компонентам средства для создания своих собственных интерфейсов. Основные объекты интерфейса, с которыми работает Workbench – это редакторы (editors), виды (views) и перспективы (perspectives).

Рисунок 2 Workbench.

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

Назначение редакторов заключается в предоставлении возможности просмотра и редактирования файлов. Визуальное представление содержимого файла зависит от его типа и может меняться от традиционного текстового редактора с подсветкой синтаксиса для сценариев Ant до графического редактора для изображений в формате gif.

Виды, в отличие от редакторов, не обязательно связаны с каким-либо конкретным ресурсом. Они могут быть использованы для отображения содержимого активного в данный момент редактора (наподобие вида Outline), элемента, выбранного в другом виде (история версий ресурса в CVS), а также данных, полученных любым другим путем (таких, как отчет о выполнении тестов JUnit).

В отличие от редакторов, изменения, сделанные пользователем при помощи вида, должны немедленно сохраняются или переносится в соответствующие ресурсы. Например, в виде Navigator отсутствует команда Save или подобная ей – такие действия пользователя, как копирование или переименование, немедленно производятся с соответствующими ресурсами.

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

В Eclipse входит множество элементов пользовательского интерфейса – редакторов, видов, меню. Если бы кто-то попытался расположить их все на экране, то в результате получилось бы беспорядочное нагромождение окон, в котором было бы практически невозможно ориентироваться. Создатели Eclipse решили эту проблему при помощи понятия перспективы (perspective).

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

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

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

Графический интерфейс

Фундаментом, на котором построены все графические средства Eclipse, является входящий в Workbench компонент SWT (Standard widget toolkit). SWT является основным средством создания пользовательского интерфейса для приложений на основе Eclipse. Поскольку для прорисовки элементов интерфейса SWT максимально использует средства оконного менеджера операционной системы (Win32, GTK, Motif), приложения, построенные на базе SWT, визуально не отличаются от “родных” приложений, разработанных специально для конкретной операционной системы. При этом они сохраняют совместимость со всеми платформами, поддерживаемыми Eclipse.

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

SWT (в виде набора библиотек) может быть использован в качестве замены Swing и AWT, отдельно от Eclipse и компонента Workbench.

До последнего времени основным недостатком SWT было отсутствие визуального редактора для создания графических интерфейсов на его основе. Безусловно, разработку кода графического приложения с нуля трудно назвать увлекательной или интеллектуальной задачей. Заполнить этот пробел призван недавно стартовавший проект Eclipse Visual Editor.

На основе SWT построен компонент JFace, который решает более высокоуровневые задачи построения пользовательского интерфейса. JFace содержит классы для создания диалогов, страниц свойств, управления шрифтами, поддержки архитектуры модель/вид и т.п. Наверное, для читателей не будет неожиданным тот факт, что сам Eclipse создан исключительно с использованием SWT и JFace.

JDT – второй из основных подпроектов, составляющих Eclipse SDK. Это и есть упомянутая “IDE для Java”, содержащая инкрементальный компилятор Java, редакторы, средства для отладки, тестирования, навигации и рефакторинга исходного кода.

Важно понимать, что JDT построен исключительно на основе подпроекта Platform и не использует каких-либо закрытых или недокументированных интерфейсов. Это значит, что при наличии желания и ресурсов можно разработать компонент, функционально аналогичный JDT, для любого другого языка – от С++ до Python, и тем самым превратить Eclipse в, например, “IDE для Python”.

Вы можете полностью исключить JDT из конфигурации Eclipse и установить только свои компоненты, так что пользователям вашего продукта ничто не будет напоминать о Java. Единственный компонент из стандартной конфигурации, который является обязательным для функционирования приложений – это Platform.

Цукерберг рекомендует:  Создание приложений для Windows Store на jQuery 2.0

Рисунок 3 Перспектива Java.

Инкрементальная компиляция

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

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

Информация, собранная в процессе компиляции проекта, также используется для выполнения рефакторинга и специализированного Java-поиска (ссылок на декларации, объявления классов и т.п.). Именно доступность этой информации позволяет запускать рефакторинг и поиск без задержек, которые были бы необходимы для ее сбора в случае отсутствия автоматической компиляции. (И рефакторинг, и поиск будут работать и для не откомпилированных проектов, однако в этом случае точность полученных результатов не гарантируется.)

Что можно сказать о применимости автоматической компиляции для больших проектов – не окажется ли время, затрачиваемое на нее, неприемлемо большим? Как показывает практика, Eclipse позволяет комфортно работать с исходным кодом объемом порядка одного миллиона строк при условии, что он структурирован – разделен на проекты относительно небольшого размера. В случае, когда весь исходный код находится в одном проекте (я рекомендую избегать подобных ситуаций), может оказаться целесообразным отключить автоматическую компиляцию.

Экстремальное программирование и Eclipse

Очень привлекательной особенностью JDT является поддержка большого набора видов рефакторинга. Напомню, что рефакторингом называют методику переработки существующего кода с целью его улучшения. Популярная технология экстремального программирования (extreme programming) всячески поощряет разработчиков постоянно улучшать качество кода путем его рефакторинга. С опасностью добавления ошибок при изменении кода предлагается бороться как можно более частым выполнением как можно более полного набора автоматических тестов. JDT позволяет уменьшить эту опасность, полностью автоматически выполняя восемнадцать наиболее часто используемых видов рефакторинга, таких как перемещение элемента классы или выделение абстрактного интерфейса. Выполняя любой из видов рефакторинга, поддерживаемых JDT, вы можете быть уверены в том, что в результате произведенных изменений семантика программы не изменится.

Еще одним приятным свойством JDT, упрощающим применение рекомендаций методики экстремального программирования или Test driven development (TDD), является возможность запуска тестов JUnit прямо из IDE. Какой бы незначительной ни казалась эта деталь, она экономит существенное количество времени в процессе разработки. При работе в традиционной IDE цикл кодирование-модульное тестирование (unit testing) выглядит следующим образом: кодирование, сборка проекта, запуск JUnit, запуск тестов и анализ результатов. В JDT проект всегда находится в откомпилированном виде, поэтому этапы сборки и запуска JUnit пропадают, а выполнение набора тестов становится быстрее и проще. Этого оказывается достаточно для того, чтобы подход с написанием модульных тестов перед собственно кодом приложения начал выглядел намного более привлекательно.

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

Плагины

Как было отмечено выше, Eclipse предоставляет широкие возможности для расширения. В основе архитектуры, делающей это возможным, лежит использование плагинов (plug-in). Вместо того чтобы находиться в одном монолитном jar-файле, код Eclipse разделен на множество модулей, загружаемых динамически и независимо друг от друга (хотя каждый плагин может указать список плагинов, которые должны быть загружены до него). Для того, чтобы сократить время запуска платформы, плагины загружаются только перед непосредственным использованием (разумеется, полный список установленных плагинов доступен всегда).

Для того, чтобы Eclipse загрузил ваш плагин, необходимо написать дескриптор плагина – файл в формате XML под названием plugin.xml, который можно создать как при помощи PDE, так и в любом текстовом редакторе. Дескриптор сообщает Eclipse, какие ресурсы входят в плагин и каким образом платформа может их использовать. В ресурсы обычно входят библиотеки jar, текстовые сообщения в файлах .properties, графические изображения и т.п.

Разработчики могут создавать свои плагины, которые имеют абсолютно равные права с компонентами, изначально входящими в Eclipse; фактически приложение Eclipse представляет собой набор плагинов (для удобства конфигурирования группа связанных плагинов может быть объединена в подсистему (feature).

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

Для чего нужны фрагменты плагинов? Их основным свойством является возможность установки независимо от основного плагина. Как правило, фрагменты используются для добавления локализованных ресурсов и зависимых от операционной системы компонентов. Если некоторый плагин поддерживает локализацию, вы можете добавить поддержку нового языка при помощи отдельного фрагмента без изменения оригинального плагина и, более того, абсолютно независимо от его разработчиков (разумеется, по мере выхода новых версий плагина вам может понадобится вносить изменения в его фрагменты).

Расширения

Модульная архитектура еще не обеспечивает расширяемости платформы — она всего лишь обеспечивает механизм загрузки кода, написанного разработчиками. Новая функциональность может быть добавлена в Eclipse с помощью механизма расширений. Ключевое понятие здесь – точка расширения (extension point). Точка расширения определяет группу сервисов и дает возможность разработчикам плагинов добавлять свои сервисы в общий список.


Каким образом разработчики могут добавлять в Eclipse, например, свои редакторы? Eclipse, а точнее входящий в компонент Workbench плагин org.eclipse.ui, определяет точку расширения для редакторов. (Как мы помним, именно Workbench определяет пользовательский интерфейс Eclipse.) Основная задача точки расширения – объявить уникальный идентификатор, который будет использован конкретными расширениями для ссылки на точку расширения. Вот как выглядит соответствующий фрагмент дескриптора плагина org.eclipse.ui:

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

Следующий пример определяет стандартный текстовый редактор Eclipse (обратите внимание на то, что задано расширение файлов, с которыми работает этот редактор — txt).

Как происходит открытие файла для редактирования? Workbench ищет в списке всех расширений org.eclipse.ui.editors те редакторы, которые способны открыть файл с данным расширением (задается атрибутом extensions). Если обнаружено более одного подходящего редактора, пользователь может выбрать, какой из доступных редакторов он хочет использовать в данном случае. Существует соглашение о том, что все редакторы Eclipse обязаны реализовать интерфейс org.eclipse.ui.IEditorPart, поэтому Workbench создает объект класса, указанного в атрибуте class расширения, и приводит его к известному ему IEditorPart. В дальнейшем управление жизненным циклом редактора осуществляется только через этот интерфейс.

Что здесь является общим для всех реализаций механизма расширения, а что специфично для конкретного примера? Как правило, с точкой расширения действительно ассоциируется определенный интерфейс – через него клиенты точки расширения могут взаимодействовать с конкретными расширениями, не зная о деталях их реализации. Поскольку сценарии работы с различными точками расширениями, вообще говоря, не имеют ничего общего, большинство из точек расширения использует свой, уникальный интерфейс – в случае редактора это IEditorPart.

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

Типичное функционирование механизма расширений пояснит рисунок 4.

Рисунок 4. Механизм расширения Eclipse.

Клиенты точки расширения P (они не обязательно должны находится в плагине A, объявляющем точку расширения) могут получить список обнаруженных расширений P (в этом примере – единственное расширение в плагине B), создать их экземпляры и работать с ними через общий интерфейс I, объявленный в том же плагине, что и точка расширения.

Из приведенного примера может показаться, что существует жесткая взаимосвязь “один плагин – одна точка расширения”. На самом деле никакого ограничения на количество расширений, с которыми может работать один плагин, нет. Один и тот же плагин может объявлять свои точки расширения и подключаться к сторонним – критерием объединения расширений в одном плагине является лишь логическая целесообразность.

Часто оказывается полезным создание плагинов, которые не подключаются к точкам расширения и не объявляет свои. Такие плагины содержат архивы jar и используются в виде своеобразных разделяемых библиотек.

При помощи описанного механизма расширений может быть расширена практически вся функциональность Eclipse – перспективы, редакторы, виды, страницы настроек, инкрементальные билдеры. Предположим, что перед вами стоит задача создания инструментария для поддержки Web-сайта. Вы можете создать новый вид проекта “Web project”, редактор html, средства синхронизации с web-серверами, и разместить все новые элементы интерфейса в отдельной перспективе.

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

Пример: создание инкрементального билдера

Эффективность работы в Eclipse велика не только благодаря таким возможностям, как, например, поддержка рефакторинга. Множество, казалось бы, незначительных деталей также значительно ускоряет процесс разработки. Одна из них – вид Tasks, в котором отображается список задач (tasks). Задача – это напоминание о некоторой деятельности, после выполнения которой задача считается выполненной. JDT автоматически создает задачи для комментариев TODO и FIXME, найденных в исходном коде. Эти задачи позволяют быстро просмотреть фрагменты кода, нуждающиеся в дополнениях или исправлениях. После редактирования кода разработчик удаляет комментарий TODO или FIXME, и соответствующая задача исчезает из вида Tasks.

Предположим, что мы работаем над большим проектом, который должен быть переведен на несколько языков. Для ускорения работы переводчики могут пропускать некоторые сообщения, перевод которых требует дополнительного обсуждения, и возвращаться к ним позже. Хочется иметь возможность отмечать такие сообщения словом TODO для того, чтобы их список был постоянно доступен в виде Tasks.

Разумеется, для поддержки локализации все текстовые сообщения вынесены в файлы .properties, а не закодированы в исходных файлах Java. Поэтому задачи для непереведенных сообщений не появятся в виде Tasks автоматически, поскольку JDT создает задачи TODO только для исходных файлов java. Чтобы получить новую функциональность, нам придется создавать расширение Eclipse.

Прежде всего, при помощи стандартного мастера New Plug-in Project, создадим новый плагин под названием com.mycompany.propbuilder. Вот как выглядит дескриптор плагина plugin.xml:

Мы сразу добавили ссылку на плагин org.eclipse.core.resources, поскольку он понадобится в дальнейшем. Кроме того, в мастере создания проекта была выбрана опция создания класса Java для плагина – PropertyBuilderPlugin. Сразу же добавим в этот класс статический метод для сообщения об ошибках, которые могут произойти во время работы плагина. Сообщения будут записаны в лог-файл eclipse/workspace/.metadata/.log.

СОВЕТ

Во время разработки обычно удобнее выводить отладочные сообщения на консоль при помощи System.err.println(). Но для анализа ошибок, возникающих уже у конечных пользователей, их необходимо записывать в лог, поскольку в таких случаях консоль, как правило, недоступна.

Каким образом можно добавить свои задачи в вид Tasks? С точки зрения реализации, каждая задача представлена отдельным маркером. Вид Tasks отображает маркеры, соответствующие задачам, выделяя их из общего списка маркеров. Для того, чтобы маркеры можно было разделять на группы (например, отличать сообщения компилятора от задач), каждый маркер обладает своим типом (не надо путать этот тип с классами Java). Тип маркеров задач объявлен в плагине org.eclipse.core.resources и имеет идентификатор org.eclipse.core.resources.taskmarker.

Итак, для каждого непереведенного сообщения нам необходимо создавать новый экземпляр маркера. Чтобы легко отделять наши маркеры от задач, создаваемых JDT, их тип должен отличаться от org.eclipse.resources.taskmarker, но в то же время он должен указывать на то, что наши маркеры являются маркерами задач. Этого можно добиться при помощи механизма наследования – тип маркера может быть выведен из одного или нескольких базовых типов. В нашем случае, таким базовым типом является taskmarker; при этом все атрибуты, определенные в базовом типе, наследуются его потомками. Вот как выглядит объявление нового типа маркеров в файле plugin.xml:

Единственный атрибут, который не передается при наследовании маркеров – сохраняемость. Поскольку мы не хотим, чтобы созданные задачи пропадали при перезапуске Eclipse, атрибут persistent устанавливается явным образом.

Следующий вопрос, который необходимо решить – когда и как создавать маркеры задач? Чтобы найти все непереведенные сообщения в отдельном файле .properties, необходимо прочитать содержимое файла и создать маркеры для всех строк файла, в которых присутствует подстрока TODO. Очевидно, что обработка всех файлов .properties в большом проекте может занять продолжительное время, поэтому эффективнее анализировать только измененные файлы, и не менять маркеры, созданные для остальных файлов ранее.

Такой механизм обработки изменений в ресурсах проекта уже реализован в Eclipse – это не что иное, как инкрементальные билдеры. Нам остается только создать класс Java для своего билдера (назовем его PropertyBuilder) и поместить его объявление в дескриптор плагина.

Теперь, когда определены основные интерфейсы и алгоритмы, остается только написать класс PropertyBuilder. Как и любой инкрементальный билдер, он должен быть выведен из класса org.eclipse.resources.InrementalProjectBuilder. Главными методами билдера являются build() и clean() – они вызываются Eclipse для обработки проекта и удаления результатов работы соответственно.

СОВЕТ

После каждого создания, изменения или удаления маркера Workspace рассылает всем зарегистрированным слушателям сообщение об изменении ресурса. Из-за этого создание нескольких сотен или тысяч маркеров может оказаться весьма продолжительной операцией. В таких случаях их следует создавать в контексте метода IWorkspace.run(), вызов которого считается атомарной операцией. Соответственно, независимо от количества созданных маркеров, слушателям будет разослано только одно сообщение.

Как пользоваться новым расширением Eclipse? Прежде всего, необходимо установить плагин com.mycompany.propbuilder. Для этого нужно скопировать файлы plugin.xml и propbuilder.jar в директорию eclipse/plugins/com.mycompany.propbuilder и перезапустить Eclipse. После этого следует выбрать проекты, в которых мы собираемся искать непереведенные сообщения. В случае реального приложения такая возможность должна быть доступна пользователю через графический интерфейс, однако для упрощения примера мы просто добавим ссылку на билдер PropertyBuilder в файлах .project соответствующих проектов:

Наконец, включим отображение нового типа задач в виде Tasks:

Рисунок 5 Настройка вида Tasks.

Теперь в Tasks должны появиться созданные плагином com.mycompany.propbuilder задачи.

Рисунок 6 Новые задачи в виде Tasks.

Разработчикам приложений

Рассмотрим два аспекта создания приложений на базе Eclipse – правовой и технический.

Юридическую сторону вопроса призваны решить лицензии, под которыми распространяется Eclipse SDK – CPL (Common Public License) и более поздняя EPL (Eclipse Public License). Они позволяют использовать, распространять и продавать лицензированные исходные и бинарные коды без уплаты вознаграждения правообладателям. Этим уже воспользовались для создания коммерческих продуктов на базе Eclipse такие поставщики ПО, как Borland, IBM, SAP.

С технической точки зрения, подробно проиллюстрированной в предыдущем разделе, выдающаяся расширяемость Eclipse обусловлена прежде всего его архитектурой и проектными решениями. Модульная архитектура, организация проекта в виде набора расширяемых подсистем Platform, JTD и PDE, возможность расширения сторонними разработчиками практически любой подсистемы Eclipse позволяют использовать его для создания приложений разнообразнейших видов и назначения.

Основной целью проекта Eclipse является интеграция приложений для разработки в рамках различных IDE (одной из этих IDE является сам Eclipse SDK, а именно Platform, дополненный JDT и PDE). В то же время, Eclipse содержит множество компонентов, которые могут быть использованы приложениями самого широкого спектра, не нуждающимися, вообще говоря, в полной инфраструктуре Eclipse (примерами таких компонентов могут служить SWT и JFace). Для поддержки подобных приложений было введено понятие Rich Client Platform (RCP). RCP – это базовый набор компонентов Eclipse, который позволяет использующим его приложениям полностью контролировать внешний вид создаваемого пользовательского интерфейса (перспективы, меню, панели инструментов и т.п.).

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

На прилагающемся к журналу компакт-диске находится Eclipse SDK 3.0.1.

Советы и трюки для эффективной работы в Eclipse >Pavel | 12 окт. 2011

Введение

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

В качестве источников при составлении данной подборки выступили:

  • Сообщество разработчиков QNX — инженеры, преподаватели;
  • Портал Foundry27, являющийся платформой для открытой разработки QNX,
    в котором имеется форум, посвященный среде Eclipse;
  • Форумы проекта Eclipse.org;
  • Другие сайты и блоги, содержащие информацию, связанную с Eclipse.

26 советов, описанных ниже, были собраны из всех этих источников и отмечены как интересные и полезные для разработчиков. Они позволят повысить эффективность работы при использовании Eclipse IDE.

О проекте Eclipse

Eclipse IDE является интегрированной средой разработки с открытым исходным кодом. Впервые она была выпущена под лицензией Common Public License, и сейчас распространяется под лицензией Eclipse Public License.

Eclipse IDE — одна из самых популярных сред разработки в мире. Ее интерфейс доступен на дюжине языков, сообщество Eclipse включает по крайней мере 100 проектов, 1000 спонсоров, 170 членских организаций и миллионы пользователей.

QNX Software Systems является важным пользователем и спонсором, с длинной и разнообразной историей развития проекта. QNX в сотрудничестве с IBM Rational Software разработали Eclipse C Development Tools (CDT)
для обеспечения поддержки разработки на языке C/C++. Фирменная среда разработки QNX Momentics также основана на Eclipse.

Совет 1: Отображение помощника Key Assist

Функция Key Assist открывает всплывающее окно, в котором отображаются все горячие клавиши, активные в данном контексте.

  • Нажмите сочетание клавиш Ctrl+Shift+L для того, чтобы открыть окно Key Assist.

Полезной особенностью помощника является то, что вы можете открыть окно конфигурации горячих клавиш путем повторного нажатия сочетания Ctrl+Shift+L.

Совет 2: Настройка горячих клавиш


Если вы обнаружили, что определенные сочетания клавиш используете наиболее часто, вы можете открыть окно настроек и добавить более удобные и короткие сочетания.

  • Нажмите сочетание клавиш Ctrl+Shift+L для того, чтобы открыть окно Key Assist.
  • Нажмите еще раз Ctrl+Shift+L для того, чтобы открыть окно настроек.

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

Совет 3: Самые полезные горячие клавиши

  • Автозавершение слова — Alt+/ — Последовательные нажатия перебирают варианты
  • Следующий редактор — Ctrl+F6 — Вызывает диалог с выбором окна редактора
  • Следующая перспектива — Ctrl+F8 — Вызывает диалог с выбором перспективы
  • Добавить/Убрать отступ — Tab/Shift+Tab
  • Перемещение выделенного фрагмента кода вниз/вверх — Alt+Up/Down
  • Инкрементальный поиск — Ctrl+J
  • Максимизация окна — Ctrl+M
  • Поиск закрывающей/открывающей скобки — Ctrl+Shift+P — Курсор должен находиться после интересующей скобки
  • Удаление строки — Ctrl+D

Совет 4: Рефакторинг

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

  • Запуск — Alt+Shift+T — Запуск меню рефакторинга
  • Переименование — Alt+Shift+R — переименование выделенного идентификатора во всем проекте, отображение конфликтов и «затенений» имен.
  • Константа — Alt+C — Экспорт и именование константы.

IDE также обеспечивает предварительный просмотр изменений, таким образом, вы можете просмотреть их в пошаговом режиме.

Совет 5: Иерархия вызовов

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

  • Выделите интересующий идентификатор и нажмите Ctrl+Alt+H.

Например, если вы изменили описание функции, добавив новый параметр, в иерархии вызовов вы сможете увидеть все функции, которые затронет данное изменение.

Отображение всех сущностей, вызываемых функцией.

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

  • Нажмите кнопку «hierarchy tree» для переключения режима отображения
    дерева вызовов.

Данная функция позволит вам быстро найти места, где код производит вызов
системных функций ОС или сторонних библиотек.

Совет 6: Навигация с помощью гиперссылок

Eclipse IDE обеспечивает гиперссылки для определений и прототипов.

Для использования данной функции:

  • С нажатой кнопкой Ctrl наведите курсор мыши на интересующий идентификатор (имя функции, структуры и т.п.) для отображения гиперссылки.
  • Нажмите на ссылку для перехода к определению идентификатора.

Совет 7: Использование закладок

Закладки могут быть полезны для быстрого перемещения между различными частями программы. Для использования закладок:

  • Перейдите в необходимое место программы.
  • Нажмите правой кнопкой мыши на сером бордюре слева.
  • Выберите пункт Add Bookmark.

Для просмотра списка закладок:

  • Перейдите в меню: Select Window > Show View > Other … > General > Bookmarks.

Совет 8: Запрос аргументов при запуске программы на исполнение

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

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

Для установки аргументов запуска:

  • В диалоговом окне Launch Configuration выберите вкладку Arguments tab (см. Рис. 8а).
  • Когда Вы увидите запрос ввода аргументов запуска приложения, напечатайте в строке ввода в последовательности со всеми остальными параметрами, которые Вы хотите передать программе при выполнении, строку $ .

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

Следует запомнить, что необходимо соблюдать последовательность ввода аргументов.

Совет 9: Использование шаблонов ввода

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

IDE по умолчанию имеет много предустановленных шаблонов, но Вы можете добавить собственные. Также, Вы можете включить выделенные в редакторе строки, например, временные переменные, в какую-либо специальную конструкцию.

Для использования шаблонов:

  • Введите первые несколько букв шаблона.
  • Нажмите комбинацию Ctrl+Space и выберите шаблон, который Вы хотите применить.
  • После того, как шаблон будет развернут, используйте кнопку Tab для последовательного редактирования полей шаблона.

Совет 10: Отображение ассемблерного кода


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

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

Если Вы имеете скомпилированные объектные или исполняемые файлы в составе проекта, просто откройте их для просмотра ассемблерного кода (листинга).

Данный совет применим для среды разработки Momentics под платформу QNX, при использовании других компиляторов, файлы листинга, как правило, генерируются в виде отдельных файлов (прим. переводчика).

Совет 11: Отделение окон (представлений)

Eclipse IDE позволяет отделять отдельные окна (представления) от главного окна. Эта функция особенно полезна, если Вы используете при работе несколько мониторов.

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

Совет 12: Групповой запуск

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

  • Сервер и его клиент;
  • Драйвер и вызывающее его приложение;
  • HMI и вспомогательные процессы.

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

Совет 13: Переменные пути

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

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

Для создания новой переменной со ссылкой на путь в файловой системе:

  • Запустите диалоговое окно New Folder.
  • Введите ссылку на директорию в файловой системе и нажмите кнопку Variables.

Для просмотра переменных:

  • Выберите Windows > Preferences > General Workspace > Linked Resources.

Теперь Вы можете увидеть все переменные, которые уже были
сконфигурированы или добавить новые.

Совет 14: Пользовательские действия точек останова

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

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

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

Действие точки останова может, также, сделать запись в журнале событий или просто напечатать какой-либо текст (например, значение указанной переменной), а затем продолжить выполнение программы. Последняя возможность предлагает Вам механизм эффективной вставки printf в код без перекомпиляции и загрузки кода.

Вы можете установить несколько разных опций для каждой точки останова. Для доступа к этим функциям:

  • Нажмите правой кнопкой мыши на точке останова и выберите пункт Breakpoint Properties.

Eclipse IDE откроет окно, в котором Вы сможете добавить или изменить действия для данной точки останова.

Совет 15: Управление файлами на целевой системе

Данная функция специфична для версии Eclipse от QNX — QNX Momentics Tool Suite. Это очень полезная функция, позволяющая сэкономить время.

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

Если Вы используете QNX Momentics Tool Suite, среда разработки имеет файловый менеджер для работы с целевой системой, который позволяет просматривать список директорий, копировать файлы на целевую систему и с
нее, а также выполнять другие действия (включая удаление и запуск исполняемых файлов) так же, как если бы Вы работали с локальной файловой системой. С помощью данного файлового менеджера Вы можете производить все действия без использования telnet, vi или ftp.

Совет 16: Автоматическое добавление заголовочного файла

Eclipse IDE поддерживает автоматическое включение необходимых заголовочных файлов в исходный код. Для того, чтобы узнать, в каком заголовочном файле описан Ваш идентификатор, выделите имя функции и нажмите комбинацию Ctrl+Shift+N или нажмите правую кнопку мыши и
выберите пункт Source > Add Include.

Среда разработки отредактирует Ваш файл с исходным кодом, добавив директиву include для необходимого заголовочного файла. Например, если Вам необходима функция fopen(), и файл с исходным текстом не содержит ее описание, Eclipse автоматически вставит его для Вас.

Совет 17: Блочное редактирование

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

  • Используйте Tab или Backtab (Shift+Tab) для перемещения текста вправо или влево.
  • Используйте кнопку Alt совместно с клавишами-стрелками для перемещения блока текста вверх или вниз.
  • Автоматическое закомментирование блока текста с помощью сочетания Ctrl+/. Это добавляет ко всему блоку текста комментарий в стиле С++ «//».
  • Использование сочетания Ctrl+Shift+/ обрамляет текстовый блок символами комментария «/* … */».
  • Переформатирование блока текста в соответствии с выбранным стилем осуществляется при помощи сочетания Ctrl+Shift+F.

Совет 18: Переформатирование исходного кода

Eclipse IDE включает настраиваемый форматировщик исходного кода с несколькими примерами стилей. Для использования этих стилей:

  • Выберите Windows > Preferences > C/C++ > Code Formatter.
  • Выберите один из предустановленных стилей: K&R, BSD/Allman, GNU, Whitesmiths или пользовательский.

Весь новый код будет отформатирован в соответствии с выбранным стилем. Для применения стиля к существующему коду:

  • Выделите текст, который Вы хотите переформатировать.
  • Нажмите Ctrl+Shirt+F.

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

Совет 19: Автоматическое дополнение имен функций

Одной из самых популярных функций, ускоряющих разработку, является автоматическое дополнение имен вводимых функций. Для использования данной возможности, просто введите первые буквы имени функции и нажмите Ctrl+Space для отображения списка подходящих имен.

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

  • Выбрать необходимую функцию из списка.
  • Нажать Enter для добавления функции в текст.

После того, как Вы выбрали нужную функцию, IDE выводит подсказку для
заполнения ее параметров.

Совет 20: Автоматическое дополнение структур


Данная функция Eclipse IDE схожа с функцией дополнения имен функций. Введите первые буквы имени структуры, нажмите Ctrl+Space и IDE предложит список подходящих структур. Также, эта функция отображает имена элементов и типов структуры.

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

Для настройки задержки:

  • Выберите Window > Preferences > C/C++ > Editor > Content Assist.
  • Введите время задержки в миллисекундах.

Совет 21: Прототипы, Определения и Реализации

Eclipse IDE содержит функционал, который упрощают работу с функциями:

  • Подсветка функции и нажатие кнопки F3 позволяет перейти к ее определению.
  • Наведение курсора мыши на функцию и нажатие кнопки F2 открывает мини-редактор, в котором отображается ее определение в режиме «только чтение».

Таким образом, нет необходимости поиска файла, содержащего описание функции.

Совет 22: Раскрытие #define

Данная функция позволяет понять актуальное значение, которое подставляет компилятор при использовании конкретного определения #define.

  • Выберите идентификатор, установленный с помощью #define.
  • Нажмите F2.

IDE отображает определения, и позволяет просматривать их шаг за шагом, путем расширения. Этот метод также оптимальный способ отладки макросов. Он показывает, что на самом деле будет в коде при компиляции.

Совет 23: Undo и Redo

Eclipse IDE поддерживает отмену и повтор действий при редактировании. Для отмены внесенных изменений или повторного внесения, до сохранения файла, нажмите Ctrl+Z, чтобы отменить, или Ctrl+Y, чтобы повторно внести.

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

Eclipse IDE размещает на полях отметки напротив Ваших изменений, до сохранения файла. Чтобы отобразить оригинальный текст, который был на момент последнего сохранения файла, просто наведите курсор мышки на
соответствующую отметку на полях.

Совет 24. Локальная история

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

Для доступа к локальной истории:

  • Откройте Project Navigator.
  • Выберите Team > Show Local History.

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

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

Если Вы внесли несколько изменений в файл, Вы можете использовать отображение side-by-side для визуального сравнения версий, затем выберите те изменения, которые хотите сохранить, и те изменения, которые
хотите отменить.

Настройка локальной истории

Сохранение локальной истории может потребовать большого объема дискового пространства. Вы можете настроить максимальный объем дискового пространства, который может быть использован данной функцией.

  • Выберите Windows > Preferences.
  • Настройте пределы использования дискового пространства.

Совет 25: Быстрый доступ

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

  • Нажмите Ctrl+3 для отображения всплывающего окна.
  • Введите термин, который Вы хотите найти.

Совет 26: Сворачивание кода

Eclipse IDE может сворачивать в одну строчку функции, структуры и другие сущности, делая код более легким для чтения. Для настройки сворачивания:

  • Выберите Windows > Preferences > C/C++ > Editor > Folding.

Следующие команды ускоряют работу со сворачиванием кода:

  1. Наведение курсора мыши помогает увидеть содержимое скрытого блока кода.
  2. Сочетание Ctrl+/ (на цифровой клавиатуре, для ноутбука может
    быть необходима комбинация Ctrl+Fn+..) позволяет переключаться между
    режимами сворачивания (включено/выключено).
  3. Сочетание Shift+Ctrl+/ сворачивает все раскрытые блоки.

Получение Eclipse IDE

Вы можете найти Eclipse IDE на сайте проекта: http://www.eclipse.org

Об авторах и переводчике

Авторы статьи: Garry Bleasdale, Andy Gryc (QNX Software Systems).

Миграция на Eclipse: Руководство разработчика по сравнительной оценке Eclipse и IntelliJ IDEA

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

Содержание

Сравнение Eclipse и IDEA

Eclipse — это в высшей степени амбициозный проект. Это не только IDE для Java, но и расширяемая платформа разработчика, предназначенная для поддержки любого языка программирования. Однако рекомендованная реализация Java Development Toolkit (JDT) — это Java IDE, и именно это люди (особенно Java-программисты) имеют в виду, когда говорят о Eclipse. Тем не менее, даже если ограничиваться использованием только Java-платформы и JDT, открытая и расширяемая природа Eclipse все равно обеспечит дальнейшее развитие Eclipse и Eclipse-сообщества.

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

Более важным, чем цена и полный список возможностей, является эффективность работы, которую может обеспечить IDE. Множество параметров (в дополнение к функциональным возможностям), включая общий дизайн, стабильность и производительность, определяют степень полезности IDE. В данной статье исследуются базовые функции Eclipse 3.0 JDT в сравнении с доступными в IDEA.

Функциональные возможности

IDEA и Eclipse почти равны друг другу по основным функциям, требуемым для редактирования, запуска и отладки Java-кода, хотя и выполняют некоторые вещи немного по-разному. В дополнение к основным функциям программирования, и Eclipse и IDEA также поддерживают более развитые средства разработки Java-программ, такие как Ant, CVS, JUnit, и рефакторинг. (Ссылка на статью, описывающую функции рефакторинга в Eclipse, приводится в разделе «Ресурсы».) Чаще всего самым трудным в миграции на Eclipse является изучение того, как выполнять старые действия в новой среде — в ее бесчисленном множестве функций часто может быть очень тяжело найти необходимую. К счастью Eclipse имеет очень полную и легкую в использовании систему помощи с документацией в режиме онлайн.

До недавних пор главным преимуществом IDEA над Eclipse был интегрированный GUI-компоновщик. Сейчас эта ситуация изменилась в связи с появлением в Eclipse визуального редактора (Visual Editor). GUI-компоновщик Eclipse является отдельным компонентом и имеет важное преимущество над IDEA — он обеспечивает обмен данными между кодом и представлениями в графическом виде (изменение в одном практически мгновенно отображаются на другом) и не требует дополнительных метаданных или других файлов.

EclipseVisual Editor (VE) версии 0.5, поддерживающий AWT/Swing, в настоящее время доступен для Eclipse 2.1.x. Вскоре будет доступна версия 1.0 для Eclipse 3.0. VE 1.0 можно будет загрузить в виде отдельного пакета с Web-сайта Eclipse. Эта версия будет поддерживать не только AWT/Swing, но и SWT. Более подробную информацию и предварительный обзор VE можно найти в статье по Visual Editor, ссылка на которую приведена в разделе «Ресурсы».

Другим преимуществом IDEA была интегрированная поддержка Web-разработки. Тем не менее, даже если она вам нужна, это необязательно заставит вас отказаться от использования Eclipse. Несколько подключаемых модулей сторонних разработчиков добавляют в Eclipse эту функциональность, например, подключаемые модули Lomboz и Sysdeo Tomcat. Как получить, установить и использовать эти и другие подключаемые модули можно узнать из статей, ссылки на которые приведены в разделе «Ресурсы».


Общий дизайн и простота использования

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

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

Стабильность и производительность

Теоретически Eclipse должен иметь наибольшую производительность, поскольку использует SWT, который в свою очередь использует встроенные элементы управления (UI-элементы операционной системы), в то время как IDEA использует Swing/AWT. Однако на практике IntelliJ проделала отличную работу по реализации пользовательского интерфейса IDEA, и на достаточно мощных машинах разница в производительности не существенна. Пользователи обычно считают достаточно быстрым любой из этих пакетов. Аналогично, и Eclipse, и IDEA являются очень стабильными приложениями, и маловероятно, что пользователи сталкиваются с какими либо проблемами при работе с обоими.

Не попробуешь — не узнаешь

В конце концов, если вы проверяете пригодность Eclipse для ваших задач, вы должны взять его на тестирование, чтобы почувствовать этот пакет. Это действительно единственный путь оценить простоту его использования и увидеть, подходит ли он для вашего стиля работы. В следующем разделе приводится краткий обзор Eclipse. Если вы загрузили и установили Eclipse, можете следовать дальше. Если нет — обратитесь к статье «Начало работы с платформой Eclipse», ссылка на которую приведена в разделе «Ресурсы».

Начало работы с Eclipse

Прежде всего, было бы полезно познакомиться с несколькими понятиями, описывающими пользовательский интерфейс Eclipse. На самом верхнем уровне находится окно приложения Eclipse. Это так называемый (на языке Eclipse) рабочий стол; он содержит главное меню, строку кнопок и несколько различных панелей. Панели, так же как и в IDEA, предназначены для конкретных задач, например, для отображения ресурсов (пакетов, исходных кодов, сценариев компоновки, и т.п.), для ведения списка «to do» («надо сделать») и для отображения консоли во время выполнения программы. Эти панели называются видами.

Кроме видов каждая перспектива обычно содержит панель редактора. Поскольку редактор представляет собой основное средство создания и модификации таких ресурсов как исходный код, текстовые файлы и файлы изображения, он является главной панелью на рабочем столе Eclipse. Содержимое других видов будет меняться в зависимости от выбранного на панели редактора файла. Если, например, вы редактируете Java-файл, вид Outline покажет структуру класса в выбранном вами Java-файле.

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

При первом запуске Eclipse вы увидите экран с приветствием. Этот экран содержит ссылки на обзор по Eclipse, учебник и другие интересные материалы. Закройте этот экран, щелкнув на знак «X» в панели Welcome ниже основного меню. (Вы можете вернуться к экрану Welcome позже, выбрав его из меню Help.) Eclipse по умолчанию будет отображать перспективу Resource, как показано на рисунке 1.

Рисунок 1. Перспектива Resource

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

Открытие модуля IDEA в Eclipse

Если вы переходите на Eclipse из IDEA, у вас, возможно, есть IDEA-модуль, который вы захотите открыть. Для этого необходимо создать проект Eclipse для этого модуля и указать каталог, в котором он находится — обратите внимание, что слово проект в Eclipse соответствует понятию модуль в IDEA.

Предположим, что у вас имеется проект, созданный в >C:\Documents and Settings\user\IdeaProjects\Zoo . Предположим также, что файлы с исходным кодом расположены в подкаталоге src, а файлы классов — в каталоге classes . Следуйте следующим инструкциям после запуска Eclipse:

Вы увидите, что находитесь в перспективе Java, и проект Zoo перечислен в Package Explorer. Для исследования проекта вы можете щелкнуть на знак плюс, а затем выбрать папку src, чтобы найти ваши исходные файлы.

В учебных целях можно ввести ошибку в исходный файл, чтобы вы могли сравнить обработку ошибок в Eclipse и IDEA. Откройте, например, Snake.java и закомментируйте метод speak(). (Также как и в IDEA вы можете сделать это, выделив код метода и нажав комбинацию клавиш Ctrl-/.) Это вызовет ошибку, которую Eclipse обозначит слева значком «X» в красном квадратике (указывает на ошибку) возле лампочки (указывает, что Eclipse может дать совет по устранению ошибки).

Если вы поместите курсор над знаком лампочки, появится сообщение о том, что класс Snake не реализует абстрактный метод speak() , объявленный в суперклассе Animal . На рисунке 4 изображена данная ситуация и в редакторе IDEA, и в редакторе Eclipse. Как можно увидеть, они очень похожи.

Рисунок 4. Редакторы IDEA и Eclipse

Редактирование исходного кода в Eclipse

Для редактирования исходного кода Eclipse предлагает много таких же возможностей, что и IDEA, включая несколько типов автоматического завершения кода. Если вы начнете вводить ключевое слово Java, имя класса, или имя метода, например, и нажмете Ctrl-Space, Eclipse предложит вам список вариантов, из которых вы сможете выбрать нужный и вставить его в код.

Eclipse имеет также функцию под названием QuickFix, которая соответствует имеющимся в >Snake на рисунке) и нажать Ctrl-1 для вызова QuickFix. В вышеописанном случае отсутствия метода Eclipse предоставит вам на выбор три варианта: Add unimplemented methods (добавить нереализованный метод), Make type ‘Snake’ abstract (сделать тип ‘Snake’ абстрактным), или Rename in file (переименовать в файле). Здесь, естественно, вам нужно добавить нереализованный метод. (Не обращайте пока внимания на закоментированный код.)

Последний вариант Rename in file, предложенный QuickFix, может показаться ошибочным, но это из-за того, что фактически это предложение не связано с решением проблемы отсутствия метода. Тем не менее, это интересная возможность Eclipse, позволяющая вам сразу изменить все экземпляры идентификатора в файле. Чтобы попробовать эту возможность, откройте файл Animal.java , выберите переменную lion, нажмите Ctrl-1 и выберите Rename in file. Вы увидите, что оба экземпляра названия переменной были заключены в прямоугольник; как только вы начнете вводить новое имя, leona например, они оба изменяются.

По мере ввода исходного кода в Eclipse вы можете заметить, что иногда где-то над курсором появляется зеленая полоска. Например, вернитесь к новому методу speak() в классе Snake и введите System.out.println( . Eclipse добавит закрывающую круглую скобку автоматически (как в IDEA) и после закрывающей скобки появится зеленая полоска (См. рисунок 5). Она называется точкой вставки.

Рисунок 5. Нажатие клавиши tab перемещает курсор к точке вставки — зеленой полоске

Затем, внутри скобок введите кавычки. Eclipse опять поможет вам, добавив закрывающие кавычки, за которыми расположена зеленая полоска. (Первая зеленая полоска в это время исчезнет.) Введите что-нибудь, что может произнести змея, например, «Sssss,» и нажмите Tab. Вы увидите, что курсор переместился за кавычки к точке вставки. Предыдущая точка вставки вновь появится за круглыми скобками. Снова нажмите Tab для перемещения в конец строки и введите точку с запятой.

Как можно заметить, этот пример не уберегает вас от большого количества действий по набору текста; вместо нажатия Tab вы могли нажать стрелку перемещения курсора вправо и достигнуть конца строки, но как только вы начнете пользоваться этой возможностью, вы, возможно, найдете ее очень удобной. В некоторых случаях (в частности, при использовании шаблонов кода) точки вставки могут быть особенно полезны. Например, если вы вызовете шаблон для цикла for, клавиши Tab и Shift-Tab будут перемещать вас вперед и назад по различным частям цикла — итератору, условию, инкрементному выражению и телу цикла.

Разделение экрана редактора

Одной из невидимых сразу возможностей Eclipse является способность разделения экрана. Разделение достигается нажатием ярлыка файла в верхней части редактора и перемещения его на какой-нибудь край панели редактора. Предположим, например, что открыты файлы Animal и Snake.

Рисунок 6. Разделение экрана редактора перемещением ярлыка Snake к нижнему краю панели

Запуск и отладка программы

Eclipse использует инкрементный компилятор, поэтому нет необходимости явно компилировать ваши Java-файлы; откомпилированные файлы классов сохраняются автоматически при сохранении Java-файлов. Простейший способ запуска программы — выбрать файл, содержащий метод main() в Package Explorer, а затем выбрать Run > Run As > Java Application из главного меню Eclipse. (Обратите внимание, что мы не выбрали вариант Run > Run. из меню, который мы рассмотрим позднее.) После выбора и запуска Animal.java в окне Console ниже редактора вы увидите вывод информации, как показано на рисунке 7:

Рисунок 7. Вывод информации в окне Console

Запуск простой программы в отладчике осуществляется аналогичным способом. Во-первых, установите точку останова в методе main() , например, дважды щелкнув на левой границе возле вызова lion.speak() . Если бы наш код был менее тривиальным, мы могли бы установить условную точку останова (она срабатывает при выполнении конкретного условия, например, i==2 или после определенного количества проходов), нажав правой кнопкой мыши на точку останова и выбрав Breakpoint properties из контекстного меню.

Рисунок 8. Отладка с помощью перспективы Debug

Большинство видов в перспективе Debug должны быть более или менее вам знакомы по окнам в IDEA, хотя они могут называться по-разному и немного по другому расположены. Обратите внимание, например, что вид Debug (не путайте с перспективой Debug) отображает стек вызовов; он комбинирует фреймы и потоки, которые знакомы вам по IDEA. Вид Variables показывает текущее состояние переменных программы, а вид Console показывает программу.

Вы также заметите, что инструментальные кнопки (Step over, Step into и т.д.) для управления выполнением программы расположены на панели инструментов вида Debug. Эти элементы управления расположены здесь вместе со стеком вызовов, так что вы можете выбрать программу или поток для управления выполнением, выбрав его в стеке вызовов при отладке более одной программы (или экземпляра программы) или при отладке программы с несколькими потоками. При желании можно создать эту ситуацию, загрузив пример повторно, без прекращения первого экземпляра.

Иногда вам не нужно (или нельзя) запускать программу, используя пункт меню Run > Run As > Java Application. Если вам необходимо передать аргументы либо в программу, либо в виртуальную машину, в которой она выполняется, необходимо использовать пункт меню Run > Run. При этом появится диалоговое окно, в котором вы можете установить эти параметры и изменить другие настройки, как показано на рисунке 9:

Рисунок 9. Запуск Java-программы с настройками

Настройка Eclipse

Одной из прекрасных возможностей, общих для IDEA и Eclipse, является доступность сокращенных клавиатурных команд для выполнения различных действий. Некоторые из этих команд, такие как вырезка и вставка, присутствуют в обоих приложениях, но большинство команд — нет. Вы можете решить начать изучение сокращенных клавиатурных команд Eclipse с нуля, но если ранее вами использовались клавиатурные команды IDEA, вы имеете возможность настроить команды Eclipse в соответствии с имеющимися в IDEA. Делать это довольно утомительно (и в конечном счете непрактично); хорошим компромиссом может быть добавление наиболее часто используемых вами клавиатурных команд, а затем постепенное изучение остальных.

Например, если вы один из многих программистов, которые испорчены использованием услужливых IDE, вам, возможно, нравится быстро писать код, не слишком заботясь о стиле, останавливаясь только для исправления напечатанного при помощи команды форматирования текста. В IDEA вы, вероятно, пользовались комбинацией Ctrl-Alt-L, но в Eclipse комбинация клавиш для этой команды другая — Ctrl-Shift-F. Если подобное форматирование кода стало для вас почти автоматической функцией, легче и менее болезненно (чем переучить себя) будет изменить комбинацию клавиш в Eclipse. Поменять комбинацию клавиш в Eclipse на Ctrl-Alt-L можно следующим образом:

Рисунок 10. Добавление сокращенной клавиатурной команды для форматирования исходного кода

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

Итоги

И Eclipse 3.0 и IntelliJ IDEA 4 предоставляют Java IDE с очень богатыми возможностями, обеспечивающими контроль синтаксиса, помощь при кодировании и генерацию исходного кода. Кроме того, оба приложения поддерживают рефакторинг, Ant, тестирование модулей и CVS. Вскоре будет доступна версия 1.0 Eclipse Visual Editor для построения GUI с использованием либо AWT/Swing, либо SWT. Но между ними существуют также и существенные отличия.

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

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

Начало работы с платформой Eclipse (документация)

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.

ПО с открытым исходным кодом выпускается под лицензией, имеющей целью гарантировать пользователям определённые права. Самое очевидное из них, конечно, то, что исходный код обязательно должен быть предоставлен пользователям, и они имеют полное право модифицировать и самостоятельно распространять ПО. Такая защита пользовательских прав достигается с помощью механизма под названием «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 Foundation) — это некоммерческое поддерживаемое участниками объединение, которое содержит проекты Eclipse и помогает совершенствовать сообщество разработчиков открытого исходного кода и «экосистему» дополняющих друг друга продуктов и сервисов.

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

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

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

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

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

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

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

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

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

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

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

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

Можно также запустить программу в отладчике Java. Сначала нужно установить контрольную точку в main() System.out.println() с помощью двойного щелчка мышки на сером поле с левой стороны окна редактирования рядом с вызовом System.out.println() . Появится голубая точка. В меню Run выберите команду Debug (Отладка) . Как описано раньше, появится диалог «Launch Configurations». Выберите команду Run . Перспектива автоматически сменится на перспективу 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 содержит мощный набор плагинов (см. рисунок 8), которые поддерживают проекты, такие как JDT и PDE.

Тёмно-синие блоки обозначают компоненты, являющиеся центральной частью Платформы функционально насыщенных клиентов (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.

Eclipse SWT Обзор возможностей [GeekBrains]

Море бесплатной информации по программированию https://geekbrains.ru?utm_source=youtube_geekbrains&utm_term=01&utm_medium=internal&utm_campaign=youtube_description_SzjH4dpNasQ

В настоящее время создать мультиплатформенные десктоп-приложения можно на самых разных языках. Для программистов Java уже создано множество решений. Одно из них – библиотека с открытым исходным кодом для разработки графических интерфейсов пользователя SWT.
Это альтернатива стандартным API Java (AWT, Swing, JavaFx) для создания графического интерфейса пользователя.

На вебинаре мы рассмотрим особенности использования SWT. Вы увидите…

Программирование приложения Java Desktop используя SWT

View more Tutorials:

1- Введение

Eclipse 4.6, 47 (NEON, OXYGEN)

Вопросом является, есть ли в Java способ выбора технологии для программирования приложения Desktop, или какая технология помогает программировать веб приложение с интерфейсом похожим на приложение Desktop.

2- RCP (Rich Client Platform)

RCP (Rich Client Platform) — Это платформа (Platform) разработанная на основе SWT, используется для программирования приложений Desktop и еще дальше он построил для вас платформу, позволяющую вас разрабатывать приложения Desktop вида Workbench, похоже на Eclipse IDE, или программировать Plugin которые могут интегрировать в Eclipse IDE.

Но даже если вы хотите использовать только SWT для программирования не использовать то, что предоставлено RCP-ом вам так же нужно создать приложение RCP.

Workbench Application:

3- Необходимые настройки для начала

Есть необходимые настройки, которые нужно сделать перед тем, как начать:

Вам нужно иметь Eclipse самой новой версии. Сейчас это Eclipse 4.7 (Код OXYGEN).

Установка Plugin WindowBuilder, это 1 Plugin позволяющий вас сделать интерфейс дизайна приложения SWT с помощью перетаскивания, очень удобно.

Смотрите инструкцию установки по ссылке:

4- Некоторые понятия о SWT.

4.1- Display & Shell

Класс Display и Shell являются ключевыми компонентами приложения SWT.

org.eclipse.swt.widgets.Shell описывает окно (Window)

org.eclipse.swt.widgets.Display отвечает за управление цикла события (event loops), шрифт, цвет и контролирует информацию коммуникации между потоками интерфкйса пользователя (UI Thread) и другими потоками (other Thread). Display это основа для всех способностей свойств SWT.

Каждое приложение SWT требует минимум один Display и один или более объектов Shell.

Eclipse SWT Обзор возможностей [GeekBrains]

Море бесплатной информации по программированию https://geekbrains.ru?utm_source=youtube_geekbrains&utm_term=01&utm_medium=internal&utm_campaign=youtube_description_SzjH4dpNasQ

В настоящее время создать мультиплатформенные десктоп-приложения можно на самых разных языках. Для программистов Java уже создано множество решений. Одно из них – библиотека с открытым исходным кодом для разработки графических интерфейсов пользователя SWT.
Это альтернатива стандартным API Java (AWT, Swing, JavaFx) для создания графического интерфейса пользователя.

На вебинаре мы рассмотрим особенности использования SWT. Вы увидите…

Создание просто SWT приложения на Eclipse

05.08.2011, 14:46

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

Запуск приложения в Eclipse
Добрый день! Прошу помочь разобраться с эклипсом и приложениями, содержащие фрагменты. Все.

Eclipse запуск приложения
Стыдно такое спрашивать, но. Первый раз имею дело с java, пришла в нее из С. В Eclipse запускаю.

Стоит ли писать Android-приложения в Eclipse?
Всем добрый день! Помогите, пожалуйста, советом. В гугле я не смог найти ответ на свой вопрос.

Отладка в Eclipse приложения используещего ncurses
Коллеги, добрый вечер. Только осваиваю Linux и Eclipse, просьба не пинать сильно. Хочу отладить.

Eclipse SWT обзор возможностей

В настоящее время создать мультиплатформенные десктоп-приложения можно на самых разных языках. Для программистов Java уже создано множество решений. Одно из них — библиотека с открытым исходным кодом для разработки графических интерфейсов пользователя SWT. Это альтернатива стандартным API Java (AWT, Swing, JavaFx) для создания графического интерфейса пользователя.
На вебинаре мы рассмотрим особенности использования SWT. Вы увидите её в действии получите практические рекомендации по её использованию.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих