410013796724260
• Webmoney
R335386147728
Z369087728698
Урок 2. Панель инструментовСтруктура приложения JaBricks для второго урока, представленная на следующем сриншоте, включает :
По сравнению с предыдущим уроком в конфигурацию приложения добавлены два бандла (templ-jdialog-1.0.0.jar, templ-jpanel-1.0.0.jar), файлы с изображениями, ресурсные файлы и файл описания панели инструментов «configuration/toolbar.xml». Кроме этого, в описание файла со списком инсталлируемых бандлов «configuration/bundles.ini» необходимо включить добавляемые в конфигурацию бандлы. Для построения панели инструментов используется бандл gui-toolbar-1.0.0.jar. Формат описания панели инструментов позволяет размещать кнопки как с левой стороны, так и с правой стороны панели инструментов. Кроме этого, на кнопки помимо изображений можно нанести надписи. К кнопкам можно «привязать» бандлы, которые приложение будет стартовать при нажатии на кнопки. Можно также обработать нажатие кнопки и внутри фрейма. В описании структуры панели инструментов можно включить бандлы разных версий, т.е. имеющих одинаковое наименование (SymbolicName), но отличающиеся номером версий. Таким образом, JaBricks позволяет подключать и стартовать бандлы разных версий. Бандл gui-toolbar-1.0.0.jar должен всегда присутствовать в конфигурации, поскольку в базовом фрейме base-jframe установлена с ним связь. Файл описания панели инструментов «configuration/toolbar.xml» может отсутствовать; в этом случае панель инструментов в главном фрейме приложения будет отсутствовать. Листинг файла bundles.iniЛистинг файла с описанием инсталлируемых бандлов имеет следующий вид : bundles=org.apache.felix.eventadmin-1.4.8.jar@start, \ org.apache.felix.log-1.0.1.jar@start, \ util-resources-1.0.0.jar@start, \ util-logger-1.0.0.jar@start, \ gui-widgets-1.0.0.jar, \ base-jframe-1.0.0.jar, \ base-jpanel-1.0.0.jar, \ base-jdialog-1.0.0.jar, \ gui-menu-1.0.0.jar, \ gui-toolbar-1.0.0.jar, \ templ-jdialog-1.0.0.jar, \ templ-jpanel-1.0.0.jar, \ templ-jframe-1.0.0.jar@main Описание формата и назначение артибутов представлено в первом уроке. С описаниями бандлов templ-jdialog-1.0.0.jar и templ-jpanel-1.0.0.jar мы будет знакомиться в разделе программирования. Листинг toolbar.xmlЛистинг файла описания структуры панели инструментов «configuration/toolbar.xml» имеет следующий вид :
<?xml version="1.0" encoding="UTF-8"?> <root name="root" rollover="true" borderpainted="true"> <toolbar> <item name="toolbar.jpanel" type="button" image="configuration/resources/images/database.png" text="toolbar.jpanel" textposition="bottom" width="96" height="64" groupId="org.jabricks.templates" artifactId="templ-jpanel" version="1.0.0" /> </toolbar> <toolbar> <item name="toolbar.jdialog" type="button" image="configuration/resources/images/info.png" text="toolbar.jdialog" textposition="bottom" width="96" height="64" groupId="org.jabricks.templates" artifactId="templ-jdialog" version="1.0.0" /> <item name="toolbar.exit" type="button" image="configuration/resources/images/exit.png" text="toolbar.exit" textposition="bottom" width="96" height="64" /> </toolbar> </root> С форматом описания структуры панели инструментов можно познакомиться здесь. В примере панель инструментов разделена на 2 части тегами <toolbar>. В левой панели размещается одна кнопка, в правой – 2 кнопки. Кнопка определяется тегом <item> с атрибутами. Наименования атрибутов имеют интуитивно-понятные обозначения. Атрибуты rollover и borderpainted относятся к настройкам панели JToolbar. Свойства остальных атрибутов :
Скачивание файловПоскольку после первого урока структура приложения уже сформирована, то сейчас необходимо скачать только бандлы, ресурсные файлы, файл описания панели инструментов и файл описания инсталлируемых бандлов. Перечисленные файлы собраны и упакованы в один архивный файл lesson2.zip. Скачайте и «разверните» архив lesson2.zip, перенесите файлы в структуру, представленную на верхнем скриншоте. Старт приложенияПосле старта приложения и нажатия на кнопки панели инструментов Вы должны увидеть следующий интерфейс : Протоколируемые сообщенияЕсли Вы использовали для старта командную строку (командный файл run.bat), то в консоль будут выведены следующие сообщения об инициализации и старте соответствующих бандлов. Первоначально фреймворк инсталлирует бандлы, описанные в файле configuration/bundles.ini и присутствующие в поддиректории configuration/bundles (состояние INSTALLED). После этого, бандлы с атрибутом @start и @main стартуются фреймворком; бандлы, связанные со стартованными, переводятся фреймворком в состояние RESOLVED. После этого с небольшими временными интервалами нажимаются кнопки панелей инструментов, вызывая старт связанных с ними бандлов. Подсвеченные комментарии поясняют процесс старта и останова фреймворка и бандлов. java version "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode) 16:49:29,463 START ~~~~~ Framework CREATED ~~~~~ 16:49:29,956 INFO Framework init 16:49:29,959 INFO Framework start 12:08:13,959 INFO Install bundles 16:49:29,986 OSGi gui-widgets : INSTALLED 16:49:30,800 OSGi base-jdialog : INSTALLED 16:49:30,197 OSGi base-jframe : INSTALLED 16:49:30,320 OSGi base-jpanel : INSTALLED 16:49:30,422 OSGi gui-menu : INSTALLED 16:49:30,515 OSGi gui-toolbar : INSTALLED 16:49:30,534 OSGi org.apache.felix.eventadmin : INSTALLED 16:49:30,663 OSGi org.apache.felix.log : INSTALLED 16:49:30,846 OSGi templ-jdialog : INSTALLED 16:49:30,859 OSGi templ-jframe : INSTALLED 16:49:30,878 OSGi templ-jpanel : INSTALLED 16:49:30,978 OSGi util-logger : INSTALLED 16:49:31,570 OSGi util-resources : INSTALLED // старт бандлов и фреймворка 16:49:31,149 OSGi util-logger : STARTED 16:49:31,168 OSGi base-jframe : RESOLVED 16:49:31,168 OSGi templ-jframe : RESOLVED 16:49:31,168 OSGi gui-widgets : RESOLVED 16:49:31,168 OSGi gui-menu : RESOLVED 16:49:31,168 OSGi gui-toolbar : RESOLVED // регистрация фреймворком сервисов 16:49:31,178 OSGi ServiceEvent REGISTERED : \ 'jabricks/LocaleEvent' 16:49:31,179 OSGi ServiceEvent REGISTERED : \ 'jabricks/Container/Request' 16:49:31,737 OSGi templ-jframe : STARTED // старт бандла templ-jpanel 16:49:43,161 OSGi base-jpanel : RESOLVED 16:49:43,162 OSGi templ-jpanel : RESOLVED // старт бандлом сервисов (подписка на сообщения) 16:49:43,167 OSGi ServiceEvent REGISTERED : \ 'jabricks/LocaleEvent' 16:49:43,169 OSGi ServiceEvent REGISTERED : \ 'jabricks/Container/GUISaver' 16:49:43,171 OSGi ServiceEvent REGISTERED : \ 'jabricks/Container/Response' // отправка сообщения с запросом контейнерв фрейма 16:49:43,175 OSGi templ-jpanel : \ send 'jabricks/Container/Request' // фреймворк получает запрос на контейнер 16:49:43,176 OSGi templ-jframe get event on topic : \ jabricks/Container/Request 16:49:43,177 INFO ... from bundle templ-jpanel;1.0.0 // фреймворк отвечает на запрос отправкой бандлу контейнера 16:49:43,179 OSGi templ-jframe;1.0.0 : \ send 'jabricks/Container/Response' 16:49:43,195 OSGi templ-jpanel get event on topic : \ jabricks/Container/Response 16:49:43,195 OSGi templ-jpanel : STARTED // старт бандла org.jabricks.templates.templ-jdialog 16:50:00,678 OSGi base-jdialog : RESOLVED 16:50:00,679 OSGi templ-jdialog : RESOLVED 16:50:01,370 OSGi ServiceEvent REGISTERED : \ 'jabricks/LocaleEvent' 16:50:01,370 OSGi templ-jdialog : STARTED // останов бандла org.jabricks.templates.templ-jdialog 16:50:12,458 OSGi ServiceEvent UNREGISTERING : \ 'jabricks/LocaleEvent' 16:50:12,459 OSGi templ-jdialog : STOPPED // останов приложения (фреймворка) 16:50:18,682 OSGi ServiceEvent UNREGISTERING : \ 'jabricks/LocaleEvent' 16:50:18,682 OSGi ServiceEvent UNREGISTERING : \ 'jabricks/Container/Request' Примечание : в представленных выше сообщениях отображены только наименования (artifactId) бандла. Реально Вы увидите символическое наименование (SymbolicName) бандла, включающее groupId и artifactId. Символ переноса '\' делит строку на две части. Описание бандлов для ознакомленияВ данном уроке Вам желательно познакомиться с описаниями следующих бандлов, используемых в приложении :
Связанные страницыСписок уроковПредыдующий, 1-й урок Следующий, 3-й урок Скачать файлыПосле скачивания конфигурации к Уроку 2 (383 Кб) создайте структуру, представленyю на верхнем скриншоте. Главный модуль jabricks.jar и файл инициализации jabricks.ini можно скачать в Уроке 1. |