В случае активного использования форм очень важно как можно больше ресурсов делать общими, для экономии памяти. Поэтому механизм управления цветом следует отделять от инструментария при использовании более одной формы.
Конечно, возможно создать отдельный инструментарий для каждой формы, но для этого будет требоваться слишком много системных ресурсов. Вместо этого:
Создавайте один инструментарий для всех форм, имеющих одинаковый цикл жизни. Например, создавайте один инструментарий для многостраничного редактора и уничтожайте его при завершении работы редактора. Соответственно, все страницы редактора должны использовать этот инструментарий.
Создавайте один механизм управления цветами (FormColors
) для всего модуля. Передайте его инструментарию при его создании. Он будет уведомлен о том, что цвета общие и не будет уничтожать их.
Используйте поддержку шрифтов платформы и, по возможности, используйте предопределенные шрифты JFaceResources
. Достаточно использовать шрифты 'banner' и 'header'. Использование большого количества шрифтов может просто сбить с толку пользователя, и если вы используете нестандартные шрифты, вам нужно заботиться об их альтернативах для разных платформ. Шрифты JFace работают на всех платформах, поддерживаемых Eclipse.
Уничтожайте механизм управления цветами при завершении работы модуля (последнее не означает завершение работы Eclipse - выгрузка модулей может происходить динамически).
Загружайте все цвета, требуемые для форм, с помощью механизма управления цветами.