Афоризм
Зачем мне талия? Я замужем теперь.
Наталья Резник
Последние статьи

 • Активности Android
Многоэкранные Android приложения
 • Fragment dynamic
Динамическая загрузка фрагментов в Android
 • Fragment lifecycle
Жизненный цикл Fragment'ов в Android
 • Fragment example
Пример Fragment'ов в Android
 • Data Binding
Описание и пример Data Binding
 • Пример MVVM
Пример использования MVVM в Android
 • Компонент TreeTable
Описание компонента TreeTable для Swing
 • Пример TreeTable
Пример использования TreeTable
 • Хранилища Android
Внутренние и внешние хранилища данных
 • Пример SQLite
Пример использования SQLite в Android
 • WebSocket
Описание и пример реализации WebSocket
 • Визуальные компоненты
Улучшен компонент выбора даты из календаря
 • Анимация jQuery
Описание и примеры анимации элементов DOM
 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
 • платформа JaBricks
Платформа OSGi-приложения JaBricks
Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

Урок 4. Многоверсионность

Структура приложения JaBricks для четвертого урока, представленная на следующем скриншоте, включает :

  • набор бандлов в поддиректории конфигурации «configuration/bundles»;
  • набор изображений в поддиректория «configuration/resources/images»;
  • ресурсные файлы в поддиректории «configuration/resources/properties»;
  • список инсталлируемых бандлов «configuration/bundles.ini»;
  • описание структуры панели инструментов «configuration/toolbar.xml»;
  • файл инициализации jabricks.ini и приложение jabricks.jar;
  • файл старта приложения из командной строки run.bat (для Windows).

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

  • два однотипных бандла templ-jdialog, но разных сборок (версий '1.0.0' и '2.0.0') : открывают диалоговое окно (отличия касаются только цветовой гаммы);
  • два однотипных бандла templ-jpanel, но также разных сборок (версий '1.0.0' и '2.0.0') : размещают свои интерфейсные панели в контейнере фрейма (отличия также связаны с цветовой гаммой);
  • в качестве пятого модуля используем бандл «О программе» (form-about), который позволяет просматривать набор инсталлируемых в приложение бандлов и отслеживать их состояние.

Используемые в приложении бандлы необходимо зарегистрировать в «configuration/bundles.ini».

В качестве повторения второго урока, напоминаю, что для построения панели инструментов используется бандл gui-toolbar. Формат описания панели инструментов позволяет размещать кнопки как с левой стороны, так и с правой стороны панели инструментов. Кроме этого, на кнопки помимо изображений можно нанести надписи. К кнопкам можно «привязать» бандлы, которые приложение будет стартовать при нажатии на кнопки. Можно также обработать нажатие кнопки и внутри фрейма.

Поскольку в описание структуры панели инструментов можно включить бандлы разных версий, т.е. имеющих одинаковое наименование (SymbolicName), но отличающиеся номером версий, то в данном уроке мы проверим, как JaBricks будет справляться с данной функцией. А в модуле «О программе» мы должны увидеть состояния инсталлируемых, стартованных и остановленных бандлов.

На заметку : что касается ресурсных файлов поддиректории «configuration/resources/properties», то следует обратить внимание на их наименования, совпадающие с наименованием соответствующих бандлов. Главный фрейм использует свои ресурсные файлы для локализации панели инструментов и главного меню. Модуль «О программе» (form-about) получает свои локализованные свойства в виде Properties по зпросу от бандла управления внешними ресурсами util-resources. Данные свойства form-about использует для локализации своего интерфейса.

Листинг файла 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, \
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, \
gui-widgets-1.0.0.jar, \
templ-jdialog-1.0.0.jar, \
templ-jdialog-2.0.0.jar, \
templ-jpanel-1.0.0.jar, \
templ-jpanel-2.0.0.jar, \
form-about-1.0.0.jar, \
templ-jframe-1.0.0.jar@main
 

Описание формата и назначение артибутов представлено в первом уроке. С описаниями бандлов templ-jdialog и templ-jpanel мы будет знакомиться в разделе программирования. Интересующиеся могут зайти на страницу описания модуля «О программе» (form-about).

Листинг toolbar.xml

Листинг файла описания структуры панели инструментов «configuration/toolbar.xml» имеет следующий вид :

Листинг
<?xml version="1.0" encoding="UTF-8"?>
<root name="root" rollover="true" borderpainted="true">
  <toolbar>
     <item
        name="toolbar.jpanel1" 
        type="button" 
        image="configuration/resources/images/database.png"
        text="toolbar.jpanel1" textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.templates"
        artifactId="templ-jpanel"
        version="1.0.0" />
     <item
        name="toolbar.jpanel2" 
        type="button" 
        image="configuration/resources/images/database.png"
        text="toolbar.jpanel2" textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.templates"
        artifactId="templ-jpanel"
        version="2.0.0" />
  </toolbar>
  <toolbar>
     <item
        name="toolbar.jdialog1"
        type="button"
        image="configuration/resources/images/info.png"
        text="toolbar.jdialog1"
        textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.templates"
        artifactId="templ-jdialog"
        version="1.0.0" />
     <item
        name="toolbar.jdialog2"
        type="button"
        image="configuration/resources/images/info.png"
        text="toolbar.jdialog2"
        textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.templates"
        artifactId="templ-jdialog"
        version="2.0.0" />
     <item
        name="toolbar.about" 
        type="button"
        image="configuration/resources/images/question.png"
        text="toolbar.about"
        textposition="bottom"
        width="96" height="64" 
        groupId="org.jabricks.about" 
        artifactId="form-about" 
        version="1.0.0"/>
  </toolbar>
</root>

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

В описание структуры панель инструментов разделена на 2 части тегами <toolbar>. В левой панели размещается две кнопки, в правой – 3 кнопки. Описание кнопки определяется тегом <item> с атрибутами. Наименования атрибутов имеют интуитивно-понятные обозначения. Атрибуты rollover и borderpainted относятся к настройкам панели JToolbar. Свойства остальных атрибутов :

  • name – наименование кнопки, используется в локализации текстовой надписи;
  • image – отображаемое на кнопке изображение;
  • text – текст на кнопке;
  • textposition – положение текста на кнопке;
  • width, height – размер кнокпи;
  • groupId, artifactId, version – связанный с кнопкой бандл;
  • guimode – режим представления интерфейсной части бандла, созданного с использованием базового модуля base-universal; может принимать одно из значений "jdialog" и "jpanel".

Старт приложения

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

Бандлы для ознакомления

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

  • gui-toolbar – модуль формирования панели инструментов;
  • util-resources – модуль управления внешними ресурсами;

Связанные страницы

Список уроков
Предыдующий, 3-й урок
Следующий, 5-й урок

Скачивание файлов

Структура приложения после выполнения предыдущих уроков уже сформирована. Сейчас необходимо скачать только необходимые для данного урока бандлы, ресурсные файлы, файл описания панели инструментов и файл описания инсталлируемых бандлов. Перечисленные файлы собраны и упакованы в один архивный файл configuration.lesson04.zip (445 Кб).

Скачайте и «разверните» архив configuration.lesson04.zip, перенесите файлы в структуру, представленную на верхнем скриншоте.

  Рейтинг@Mail.ru