Статьи

Обзор среды IDE NetBeans 7.1: поддержка платформы NetBeans

В среде IDE NetBeans 7.1 добавлена ​​поддержка JavaFX 2.0 ( см. Мой обзор ) и множество новых функций и улучшений, в том числе улучшения самой платформы NetBeans.

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

В этой статье я сконцентрируюсь на изменениях в платформе NetBeans в ее новейшей версии, то есть в платформе NetBeans 7.1.


Оконная система



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



Причина недавних улучшений заключается в том, что команда NetBeans, очевидно, объединила усилия с разработчиками другой IDE , планируя повторно использовать оконную систему NetBeans. Из пресс-релиза:


Сообщество, работающее над проектом NetBeans, с гордостью сообщает о доступности новой, улучшенной и наиболее гибкой версии своей оконной системы — платформы стыковки в среде IDE, а также многих других приложений на основе платформы NetBeans.
Объединив усилия команд, работающих над дизайном двух крупных IDE, мы сумели объединить опыт, превосходство и творческий подход дизайнеров, художников, дизайнеров и дизайнеров интерфейса, чтобы создать оконную систему, готовую к 21-му веку. ,

http://wiki.netbeans.org/WinSys71PressRelease

Обратите внимание, что тщательно составленное выше сообщение не содержит названия другого IDE! Поскольку эта информация пока еще не является общедоступной, я оставлю ее дорогому читателю для размышлений. ? Очевидно, что в «другой IDE» отсутствуют некоторые функции в оконной системе платформы NetBeans. Таким образом, они должны были быть представлены здесь до того, как «другая IDE» смогла принять платформу NetBeans.



перспективы



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



@TopComponent.Registration(mode = "editor", openAtStartup = true, role="admin")



Чтобы переключать перспективы программно, вам нужно всего лишь вызвать диспетчер окон:



WindowManager.getDefault().setRole("user");



Если вы хотите выбрать Роль во время запуска, есть также новый интерфейс Слушателя, который вы можете использовать под названием WindowSystemListener, который будет получать события в течение жизненного цикла оконной системы (beforeLoad, afterLoad, beforeSave, afterSave). Очень удобное улучшение по сравнению с существующей системой. Более подробную информацию и полный пример можно найти в блоге Geertjan .



Дизайнер макетов окон



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

Изображение 1: приложение запущено в режиме разработки

Если вы когда-либо пытались создать свой собственный режим, вы найдете эту функцию чрезвычайно полезной!
 

 



Изображение 2: автоматически созданные определения режима

Поведение оконной группы



Система стыковки позволяет отстыковывать / стыковать одну Windows. В NetBeans Platform 7.1 теперь вы можете делать то же самое со всей областью стыковки. Так что теперь вы можете легко отсоединить группу Windows . Эта функциональность доступна из контекстного меню окна.

 

Изображение 3: свернутая группа окон

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



Сменные MultiViews

В случае, если вы используете MultiView API, есть очень интересное улучшение. Теперь вы можете зарегистрировать MultiView для существующего MimeType. Он будет доступен из MimeLookup и может быть найден с помощью MultiViews.createCloneableMultiView, фабричного метода, который создает многовидовое представление для данного типа пантомимы. Таким образом, любой существующий редактор MultiView, зарегистрированный для MimeType, автоматически имеет точку расширения и может быть улучшен .

Изображение 4: настраиваемая вкладка с несколькими окнами в стандартном редакторе Java

Снова у Geertjan есть запись в блоге с образцом для этой новой функциональности.



SaveCookie Замена



До версии 7.1 Система для отслеживания сохраняемых изменений в TopComponents была основана на API DataSystems. Чтобы активировать кнопку сохранения, TopComponent в основном был вынужден поддерживать объект DataObject и файл. Это было способом повторного использования. Вы не могли легко включить такие вещи, как изменения базы данных, в такую ​​систему и вызвать некоторые проблемы с displayName. 7.1 представляет Saveable как замену SaveCookie и AbstractSaveable, чтобы помочь вам реализовать его. 



Визуальный отладчик

Я уже описал это в своем обзоре поддержки JavaFX. В среде IDE NetBeans 7.1 имеется визуальный отладчик, позволяющий делать снимки пользовательского интерфейса и просматривать их в среде IDE. Эта функция также работает для приложений на платформе NetBeans. Даже когда вы открываете несколько окон и отстыковываете некоторые из них, все работает как положено. Незакрепленные окна будут сохранены в виде отдельного снимка в редакторе, и вы сможете просматривать иерархию компонентов, проверять зарегистрированные прослушиватели и даже прикреплять специальные прослушиватели регистрации событий. Я думаю, что это должно быть рассмотрено в отдельной статье. Я действительно глубоко впечатлен этой функцией. 



Настраиваемый каталог кеша



Во время наших тренировок в университетах и ​​на конференциях у нас часто возникали проблемы с производительностью IDE и платформы NetBeans, когда каталог кэша находится на медленном сетевом диске. С новым параметром командной строки « —cachedir » вы можете переопределить расположение по умолчанию. Это оказывает хорошее влияние на производительность, если каталог кеша находится на быстром локальном диске.



Загружаемая платформа NetBeans для сборок ANT



Платформа NetBeans действительно имеет одно приятное преимущество перед своим основным конкурентом Eclipse RCP, а именно использование стандартных систем сборки. NetBeans и Maven настраивают непрерывную сборку одним щелчком в контекстном меню, а в Eclipse это тема продвинутых тренингов по RCP. Еще одно приятное преимущество Maven — возможность определить, какую платформу следует использовать в приложении. Таким образом, есть четко определенная версия, размещенная в репозитории, который используют все разработчики.

С ANT часто возникало затруднение по-настоящему правильно все настроить, поэтому каждый разработчик работает с одними и теми же API-интерфейсами, и в зависимости от настройки один разработчик, обновляющий IDE, может нарушить сборку для всех членов команды, установив зависимость модуля после Обновить. Поэтому вы должны быть осторожны в том, что вы делаете, и настраивать политики для какой платформы, например, устанавливая контроль над версиями.

Начиная с версии 7.1, сборка проводов была обновлена ​​для поддержки загрузки указанной версии платформы как части процесса сборки. Это на самом деле очень просто. В вашем проекте приложения платформы NetBeans вам просто нужно найти файл platform.properties и заменить строку, указывающую вашу платформу, которая обычно:



nbplatform.active=default



с этим:

suite.dir=${basedir}
nbplatform.active.dir=${suite.dir}/netbeans701
harness.dir=${nbplatform.active.dir}/harness
bootstrap.url=http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastSuccessfulBuild/artifact/nbbuild/netbeans/harness/tasks.jar
autoupdate.catalog.url=http://updates.netbeans.org/netbeans/updates/7.0.1/uc/final/distribution/catalog.xml.gz



Если вы выполните чистку и сборку, ANT автоматически загрузит платформу.

Регистрация и слои

В попытке преобразовать большую часть реестра на основе слоев в Annotations и AnnotationProcessors , регистрация файловых шаблонов была изменена. Для этого можно использовать новую аннотацию @TemplateRegistration . Многие из вас, вероятно, помнят предупреждение о сборке, что использование пустого слоя крайне неэффективно. :-).

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

И как еще одно усовершенствование реестра, пользовательский интерфейс « этот слой в контексте » для исследования и управления файлом слоя был исправлен для работы, как и ожидалось, для проектов на основе Maven , IDE будет загружать необходимые JAR-файлы из хранилища при необходимости, без нужно построить комплект. 



Вывод

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

Что мне действительно нравится, так это то, что инструменты стали лучше. При общении с пользователями, которые знакомы как с Eclipse RCP, так и с NetBeans, большинству из них больше нравятся API-интерфейсы NetBeans (и процесс сборки), но они отмечают, что инструментарий Eclipse RCP лучше. Так что любое улучшение здесь действительно ценится.

Поздравляем команду NetBeans с отличным релизом!