Диалог "О программе"

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

Ранее при создании действий (Actions) мы добавили вызов стандартного диалога "О программе" платформы Eclipse RCP в меню Help > About Berdaflex File Arranger, но он не содержал никакой информации. Типовой диалог "О программе" содержит логотип программы, краткую информацию в текстовом виде, кнопку для получения информации о составе подключаемых модулей Plugins-Details, кнопку для получения информации о системной конфигурации.

Рис. 1. Информационный диалог "О программе"


Дополнительную информацию об интересующем вас модуле можно получить после нажатия кнопки More Info. Для описания более детальной информации о подключаемых модулях принято создавать файл about.html с соответствующим описанием, который помещается в корневой каталог подключаемого модуля. Если требуется создать несколько страниц описания, то для этих целей зарезервирован каталог about_files, в который помещаются все дополнительные ресурсы (данный каталог создается относительно корневого дополнительно).

Рис. 2. Информация о составе подключаемых модулей

Это связано с тем, что web-ресурсы требуется предварительно распаковывать для последующего просмотра, когда подключаемые модули распространяются в виде jar-архивов. Стандартный диалог "О программе" позволяет указывать только изображения в формате GIF, причем, если размер изображения не превышает 250x330 пикселей, то логотип помещается в левой части диалога, а текстовая информация — в правой. Если же размер логотипа превышает указанные размеры, то текстовая информация отображаться не будет, т.е. диалог будет содержать только изображение, размер которого не должен превышать 500x330.

Примечание
Текстовая информация автоматически "парсится" на наличие гиперссылок, по которым можно открывать web-ресурсы с помощью интернет-броузера. Для добавления текстовой информации откроем закладку Branding и в секции About Dialog -> Text вводим текст. Путь к файлу изображения логотипа указывается в секции About Dialog-Image.

Рис. 3. Редактор секции About Dialog

Примечание
После добавления новых ресурсов (логотипа, about.html и т.д.) необходимо проконтролировать включение данных ресурсов в конечный билд (файл build.properties).

Интернационализация диалога

Для возможности интернационализации в дальнейшем текстовые ресурсы желательно выносить в файлы ресурсов. Применительно к файлу манифеста зарезервирован файл plugin.properties, который помещается в корневой каталог подключаемого модуля. В данном файле создадим переменную aboutText следующего содержания:

aboutText=Berdaflex File Arranger\n\n\
Version: 0.1.1\n\
Build id: 20061209\n\
License: Eclipse Public License Version 1.0\n\
Visit httр://www.filearranger.com\n\n\
(c) Copyright Berdaflex Software Systems and others 2000, 2006.\n\
All rights reserved.\n\
Visit httр://www.berdaflex.com\n\n\
Author: Siarhei Berdachuk\n\n\
This product based on eclipse RCP technology\n\
httр://www.eclipse.org\n\
This product includes software developed by the\n\
Apache Software Foundation httр://www.apache.org/

В файле манифеста меняем ранее введенный текст на данную переменную. Для идентификации переменных используется символ "%":
. . .
<extension
id="product"
point="org.eclipse.core.runtime.products">
<product
application="com.berdaflex.filearranger.application"
name="Berdaflex File Arranger">
<property
name="aboutText"
value="%aboutText"/>
<property
name="aboutImage"
value="logo_filearranger.gif"/>
</product>
</extension>

Теперь можно создать дополнительные файлы ресурсов, поддерживающие различные локали. Русскоязычная версия файла свойств манифеста будет называться plugin_ru_RU.properties и содержать русскую версию текста, закодированную в юникоде:

aboutText=Berdaflex "\u0410\u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0424\u0430\u0439\u043b\u043e\u0432" . . .

Примечание
Для интернационализации (русификации) системных сообщений и надписей на кнопках требуется скачать LanguagePack с поддержкой требуемого языка для Eclipse RCP.

Рис. 4. Русифицированный информационный диалог "О программе"

Выделение динамически изменяемой информации

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

0=0.1.1
1=20061209

Текст диалога теперь можно заменить в соответствии с форматом java.text.MessageFormat на:

aboutText=Berdaflex File Arranger\n\n\
Version: {0}\n\
Build id: {1}\n\
. . .

Единственным минусом данного решения является отсутствие поддержки интернационализации ресурсов маппинга, но для номера версии это не так важно.
Рекомендуемые ресурсы

Сайт проекта File Arranger: сайт
Статья "Добавление действий (Actions) в системное меню": сайт
Статья "Перекодировка в юникод": сайт

Сергей Бердачук, сайт



Компьютерная газета. Статья была опубликована в номере 48 за 2006 год в рубрике программирование

©1997-2024 Компьютерная газета