Министерство образования науки Российской Федерации Воронежский Государственный Университет Факультет Компьютерных Наук Кафедра Информационных Систем КУРСОВАЯ РАБОТА Плагин для среды разработки Eclipse. «JavaFX Development Tools» Выполнил: студент 3 курса, группы 1.2, дневного отделения, факультета компьютерных наук Петрушин Иван Александрович Научный руководитель: Седунов Алексей Александрович (ассистент кафедры Программирования и Информационных Технологий) Воронеж 2012 Оглавление 1 Анализ проблемной области ............................................................................ 3 1.1 Проблемная область ................................................................................ 3 1.2 Основные термины .................................................................................. 5 2 Постановка задачи............................................................................................. 6 2.1 Существующие решения .......................................................................... 6 2.2 Описание компонентов плагина ............................................................. 6 2.3 Требования к функциональным возможностям плагина ...................... 7 2.4 Требования к компонентам плагина....................................................... 7 2.4.1 Требования к мастеру создания JavaFX-проектов. ........................... 7 2.4.2 Требования к специализированной перспективе ............................ 8 2.4.3 Требования к навигатору ................................................................... 8 2.4.4 Требования к средствам визуального проектирования .................. 8 2.5 Инструментарий ....................................................................................... 9 2.6 Диаграмма вариантов использования (Use-Case) ................................ 10 3 Архитектура ПО ................................................................................................ 11 3.1 Структурная схема плагина.................................................................... 11 3.2 Диаграмма классов ................................................................................ 12 4 Требования к аппаратному и программному обеспечению ......................... 13 4.1 Требования к составу и параметрам технических средств .................. 13 4.2 Требования к программным средствам, используемым системой .... 13 5 Схема Интерфейса ........................................................................................... 14 6 Список литературы .......................................................................................... 18 2 1 Анализ проблемной области 1.1 Проблемная область Какими характеристиками должно обладать качественное программное обеспечение? Существуют ли инструменты, помогающие программисту оптимизировать процесс разработки? Ни для кого не секрет, что большинство разработчиков мира отдают своё предпочтение технологии Java, так как именно она позволяет создавать кроссплатформенные, надёжные и расширяемые приложения. Java активно развивается уже на протяжении семнадцати лет, и самым существенным из последних нововведений, на мой взгляд, является создание дополнительной платформы JavaFX , ставшей серьёзным конкурентом для фактического лидера области разработки Rich Internet Application (далее - RIA) Adobe Flex и активно развивающейся технологии Microsoft Silverlight.. JavaFX позволяет создавать приложения для работы с мультимедийным контентом, графические интерфейсы пользователя для бизнес-приложений, игры для персональных компьютеров и мобильных устройств, насыщенные графикой, мультимедиа веб-сайты и др. Кроме того, существенным преимуществом данной платформы является полная интеграция с JavaAPI. Это означает, что большинство программистов, приступая к освоению новой области, предпочтут воспользоваться максимально привычным и знакомым инструментом. И в таком случае на стороне JavaFX окажется «армия» действующих Java - разработчиков. Так как релиз технологии состоялся относительно недавно, а за прошедший год концепция платформы существенно изменилась, на сегодняшний день не существует вспомогательного инструмента, который мог бы упростить разработку приложений на базе JavaFX 2.x , тем самым решив следующие проблемы: 1. Отсутствия инструмента поддерживающего разработку приложений в полном жизненном цикле (построение\компиляция\ отладка\запуск). 2. Низкой производительности разработчика из–за отсутствия средства для быстрого создания графического пользовательского интерфейса (далее - GUI). 3 3. Отсутствия удобного инструмента для обзора всего спектра имеющихся универсальных GUI - объектов платформы, что требует от новичка тратить дополнительное время для поиска существующих решений в документации. В данном курсовом проекте будет рассмотрена разработка плагина для одной из самых популярных интегрированных сред разработки (далее - IDE) Eclipse . Eclipse представляет из себя платформу с открытым исходным кодом и с продуманной, хорошо спроектированной и расширяемой архитектурой, что позволяет любому желающему создавать инструментальные средства, которые легко интегрируются в эту среду. В Eclipse входят три подпроекта, разрабатываемых более или менее независимо друг от друга – Platform, JDT (Java development tools) и PDE (Plugin development environment). Platform предоставляет базовые сервисы, JDT позволяет разрабатывать приложения Java, а PDE – новые компоненты (плагины) Eclipse. Рисунок 1.1 Архитектура Eclipse Таким образом, исходя из существующих проблем и опираясь на выше описанные требования, можно отметить конечную цель разработки курсового проекта: спроектировать инструмент, который упростит разработку RIA на платформе JavaFX 2.x . 4 1.2 Основные термины Термин Plug-in (плагин) Описание Независимый модуль, динамически подключаемый к основной программе, предназначенный для расширения и/или использования её возможностей Workspace (рабочая область) Компонент, определяющий основные объекты (ресурсы), с которыми могут взаимодействовать разработчики посредством точек расширения Resource (ресурс) Проект (project), папка (folder) и файл (file) Extension point (точка расширения) Объект, определяющий группу сервисов и дающий возможность разработчикам плагинов добавлять свои сервисы в общий список Project (проект) Объект, находящийся в рабочей области и объединяющий набор ресурсов, правил для их обработки и других свойств (таких, как настройки компилятора) Компонент, определяющий базовый пользовательский интерфейс GUI Eclipse и предоставляющий разработчикам плагинов собственный набор расширений для создания универсальных редакторов(editors), представлений (views) и перспектив (perspectives) Workbench Editor (редактор) Элемент GUI Eclipse предназначенный для просмотра и редактирования файлов определённого формата View (представление) Элемент управления GUI Eclipse Perspective (перспектива) Контейнер для представлений и редакторов. Позволяет задать начальную компоновку для управления расположением и состоянием всех элементов GUI Eclipse Builder (билдер) Компонент, обрабатывающий ресурсы, входящие в проект. Nature (тип проекта) User (пользователь) Определяет множество билдеров, которые могут работать с ресурсами, входящими в проект любой разработчик пользующийся данным плагином 5 2 Постановка задачи Требуется разработать плагин для Eclipse IDE, который предоставит разработчикам все необходимые инструменты для управления JavaFXпроектами и создания дизайна своих приложений с помощью средств визуального проектирования. 2.1 Существующие решения Как было отмечено в предыдущем пункте, на сегодняшний день не существует аналогов инструменту, который рассматривается в данной курсовой работе. Ранее, до появления новой (в эволюционном и концептуальном смысле) версии платформы JavaFX 2.0 существовало два решения: 1) плагин для Eclipse IDE (JavaFX 1.3); 2) инструмент, поставляемый с NetBeans IDE 6.9 (JavaFX 1.3); Но сейчас эти инструменты принципиально не имеют смысла, так как разработчики данной платформы отказались от поддержки и развития декларативного языка программирования Java FX 1.3, и полностью перешли на сторону концепции Java API . 2.2 Описание компонентов плагина Компонент Wizard JFX Visual Editor JFX Palette JFX Properties View JFX Navigator JFX Perspective JFX Nature JFX Назначение Создание нового JavaFX-проекта в рабочем пространстве пользователя. Конструирование дизайна приложения. Управление GUI объектами. Просмотр существующих GUI объектов платформы JavaFX. Конфигурация свойств объектов. Структурированное отображение элементов проекта. Композиция компонентов Visual Editor, Palette и Navigator (FX) внутри Workbench среды Eclipse. Управление билдерами компиляции и запуска приложения. Builder Java JRE 1.7 Builder JavaFX JRE 2.0 6 Popup Menu JFX Быстрый доступ к различным функциям плагина. Project Observer Context Navigator Context Editor Context 2.3 Требования к функциональным возможностям плагина Разрабатываемый инструмент должен предоставлять пользователю следующие возможности: 1) Управлять JavaFX-проектами; Создание проекта с помощью компонента Wizard JFX; Работа с проектом в режиме активной Perspective JFX; Сохранение; Запуск; Отладка. 2) Изменять опции режима запуска приложения; Standalone; As Web Start; Run in Browser. 3) Конструировать дизайн приложения с помощью визуального редактора (Visual Editor JFX) и палитры (Palette JFX). 2.4 Требования к компонентам плагина 2.4.1 Требования к мастеру создания JavaFX-проектов. Для инициализации проекта под платформой JavaFX,пользователю должен быть доступен соответствующий мастер, который предоставит пользователю возможность указания следующих характеристик проекта: 1) Название; 2) Расположение; 3) Версию платформы. После завершения работы с мастером, в указанной рабочей области должен быть автоматически создан проект с заданными свойствами и специальной структурой папок: o Project’s folder Source Test Resources 7 После инициализации стандартная перспектива должна быть автоматически изменена на специализированную (Perspective JFX). Также, по умолчанию, должен быть создан класс-дизайнер, в котором непосредственно будет содержаться код сгенерированный средствами компонентов визуального проектирования. 2.4.2 Требования к специализированной перспективе Перспектива должна включать в Workbench только те компоненты управления, которые необходимы для работы с активным проектом, а именно: 1) 2) 3) 4) Визуальный редактор (Visual Editor JFX); Палитра объектов (Palette JFX); Навигатор (Nature JFX). Стандартный обозреватель проектов Eclipse IDE. 2.4.3 Требования к навигатору Компонент Navigator JFX должен отображать элементы проекта в древовидной структуре, чтобы пользователь мог легко отслеживать их расположение и зависимости. Контекстное меню навигатора должно предоставлять пользователю быстрый доступ к управлению объектами GUI JavaFX. 2.4.4 Требования к средствам визуального проектирования Проектирование дизайна графического интерфейса должно осуществляться посредством взаимодействия пользователя с тремя компонентами плагина: 1) Visual Editor JFX; 2) Palette JFX; 3) Properties View JFX. Визуальный редактор должен поддерживать следующие функции: 1) Управление объектами GUI JavaFX, в условной области редактора: Прорисовка; Изменение размеров; Перемещение; 2) Синхронизация свойств объекта с Properties View; 8 3) Синхронизация состояния объекта с его кодом в классе-дизайнере; Требования к компоненту Palette JFX: 1) Структурированное отображение объектов GUI JavaFX классификации: Containers; Controls; Shapes; Resources; Effects; Charts. 2) Управление объектами GUI JavaFX: Добавление выбранного пользователем объекта в редактора; Автогенерация кода объекта в класс-дизайнер. по их область Компонент Properties View JFX должен предоставлять пользователю возможности просмотра и изменения текущих свойств выделенного объекта GUI JavaFX, отображаемого в области визуального редактора. 2.5 Инструментарий Технология Eclipse IDE PDE 3.7 Описание Платформа для создания плагинов JUnit 4.0 Технология тестирования Subversion Система контроля версий Goggle Code Хостинг – сервис для SVN JDOM Java-инструмент для работы с XML JavaBeans Технология создания компонент многоразового использования 9 2.6 Диаграмма вариантов использования (Use-Case) 10 3 Архитектура ПО 3.1 Структурная схема плагина 11 3.2 Диаграмма классов 12 4 Требования к аппаратному и программному обеспечению 4.1 Требования к составу и параметрам технических средств Таблица 4.1 Минимальные системные требования Требование Оперативная память Свободное пространство на ЖД Процессор Минимальное значение 128 Мб 300 Мб Рекомендуемое значение 1 Гб и более 1 Гб и более 533 МГц 1 Гб и более 4.2 Требования к программным средствам, используемым системой Java Virtual Machine + Операционная система: Microsoft Windows; Linux; Mac OS. Инструменты необходимые для разработки: 1) Eclipse IDE; 2) Plugin Development Kit. Таблица 4.2 Минимальные программные требования Требование Минимальное значение Версия Java JDK , JRE 1.7.0 Версия JavaFX SDK, JRE 2.0 Версия Eclipse 3.4 13 Рекомендуемое значение 1.7.0 и выше 2.0.2 и выше 3.7 и выше 5 Схема Интерфейса После старта Eclipse IDE , пользователю станет доступен её GUI (Workbench в стандартной компоновке) (Рисунок 5.1). Рисунок 5.1 Workbench of IDE По желанию, пользователь может самостоятельно изменить перспективу (Рисунок 5.2). Рисунок 5.2 Изменение перспективы (Windows -> Open Perspective -> JavaFX) 14 Перспектива JavaFX компонует специализированные элементы как показано на рисунке 5.3 . Рисунок 5.3 Perspective JFX Для создания нового проекта под платформой JavaFX пользователю необходимо воспользоваться специализированным мастером (Рисунок 5.4). Рисунок 5.4 Создание JavaFX проекта (File -> New -> JavaFX Project) 15 В появившемся окне мастера, пользователь должен заполнить всю необходимую информацию о проекте, требуемую для его успешной инициализации, и нажать кнопку «Finish» (Рисунок 5.5). Рисунок 5.5 Wizard JFX После успешной инициализации в рабочем пространстве будет создан соответствующий проект и Eclipse автоматически изменит текущую перспективу на специализированную (Рисунок 5.6) . Рисунок 5.6 Успешная инициализация нового проекта 16 Для создания GUI своего приложения с помощью средств визуального проектирования, пользователь может выбирать нужные графические объекты из категорий палитры и перемещать их в рабочую область редактора (Рисунок 5.7) . Рисунок 5.7 Проектирование GUI приложения (Controls -> List Box ->Move in Editor’s area) Также, управление JavaFX – объектами доступно из контекстного меню редактора и навигатора (Рисунок 5.8) . Рисунок 5.8 Navigator- Editor Context(Right mouse’s button -> Add ->Controls-> List Box) 17 6 Список литературы 1. «Eclipse Plug-ins», 3rd Edition, 2008. Eric Clayberg, Dan Rubel. 2. «Eclipse Rich Client Platform»2nd Edition, 2010. Jeff McAffer, Jean-Michel Lemieux. 3. «Проект Eclipse», RSDN Magazine #4, 2004. Askar Rahimberdiev. 4. http://www.vogella.de/eclipse.html 18