Skinned by web design directory add article: Personalize your Website with skins

Содержание

веб-приложений Skin с использованием Xkins

Добавьте возможности создания скинов в ваше веб-приложение

Мир Java |

Скин относится к внешнему виду пользовательского интерфейса; это придает веб-приложению другой внешний вид. Скин изменяет способ отображения пользовательского интерфейса, когда пользователь нажимает кнопку, но не меняет поведение пользовательского интерфейса. Таким образом, изменение скина приводит к изменению внешнего вида приложения, но для достижения этой модификации ваше веб-приложение должно знать, как использовать скин.

Зачем вообще нужно создавать скин для веб-приложения? Ну, есть несколько мотивов использования скинов, но уж точно они не всегда обязательны. В простом приложении создание скинов было бы излишним, но в некоторых ситуациях, как описано в списке ниже, необходимо иметь дело со скинами:

  • Когда скин является системным требованием: Когда пользователь может выбрать свой собственный скин или даже создать свой собственный.
  • Если вы хотите предоставить возможности скинов корпоративной инфраструктуре компонентов: если вы создаете разные решения для разных клиентов, вы можете повторно использовать все свои компоненты (taglib), если ваши компоненты имеют возможности скинов, просто изменив скин каждого клиента.
  • Когда требуется другой скин в соответствии с бизнес-сценарием: например, в маркетплейсе или мультибанковском приложении разные сущности работают в одной системе, и вам нужно брендировать приложение в соответствии с корпоративным имиджем пользователя.

Создание скина для веб-приложения — непростая задача. Вы можете использовать каскадные таблицы стилей и изменить путь к изображению, но вы ограничены тем, что вы можете сделать с помощью CSS. Если у вас есть компонент, который выглядит совершенно по-разному в каждом скине, то есть если HTML в каждом скине отличается, CSS вам не поможет. Однако вы можете использовать CSS, если простое изменение стилей решит вашу проблему.

Хорошим подходом к созданию темы оформления является определение каждой части пользовательского интерфейса и обобщение этих частей для применения внешнего вида к каждой из них. Например, если в скине A у вас есть компонент фрейма, который представляет собой простую таблицу, а в скине B более сложная таблица с верхними и нижними колонтитулами, изображениями и даже звуками, другой HTML (подробнее и tages) должны генерироваться для каждого кадра скина. В качестве примера предположим, что в Skin A HTML-код, который должен быть сгенерирован для отображения метки, имеет вид:

 

Это мой ярлык

Теперь, в Skin B, метка будет отображаться следующим образом:

 

Как видите, эти две части пользовательского интерфейса полностью различаются в каждом скине. Они оба имеют одинаковую информацию ( Это моя метка ), но отображаются с другими тегами HTML. Эта функциональность не может быть достигнута только с помощью CSS. Возможно, использование Extensible Stylesheet Language Transformations или XSL может быть вариантом. Или вы можете использовать Xkins.

Что такое Xkins?

Xkins — это платформа, управляющая оболочками для вашего веб-приложения. В первые дни серверной части Java вы жестко кодировали HTML в сервлет. Затем появился JSP (JavaServer Pages), позволяющий размещать HTML-код вне Java-кода. В настоящее время у нас есть та же проблема с библиотеками тегов, в которых теги HTML жестко запрограммированы в коде Java. Используя Xkins, вы можете размещать HTML вне своего кода с помощью дополнительной и мощной функции: скинов. Для получения подробной информации о Xkins посетите домашнюю страницу Xkins.

На рис. 1 показана роль Xkins в веб-приложении.

Рис. 1. Роль Xkins в веб-приложении

Веб-приложение, использующее Xkins и Struts через библиотеки тегов, следует этому жизненному циклу запроса:

  • Struts инициализирует Xkins с подключаемым модулем Xkins.
  • Контроллер Struts получает HTTP-запрос.
  • Struts выполняет процесс и перенаправляет его в представление страницы JSP.
  • Страница JSP использует библиотеки тегов для отображения страницы.
  • taglib использует Xkins через фасад Xkins: XkinProcessor .
  • XkinProcessor получает скин пользователя и шаблон, который taglib командует отобразить.
  • XkinProcessor использует TemplateProcessor , связанный с шаблоном.
  • TemplateProcessor — это класс, отвечающий за визуализацию части пользовательского интерфейса, которая составляет скин. TemplateProcessor может использовать Velocity, JBYTE (Java By Template Engine), Groovy или другой механизм шаблонов для рендеринга вывода.
  • TemplateProcessor использует ресурсы скина (элементы и пути) и возвращает результат обработки шаблона в taglib.
  • taglib отображает результат обработки шаблона в веб-браузере.

Xkins решает вопросы управления темами, следуя этим основным принципам:

  • Не генерируйте все HTML-коды из кода Java: Taglibs обычно генерируют HTML-код. Изменение этого кода требует изменения кода Java и повторного развертывания приложения. Xkins позволяет внедрить генерацию HTML, помещая HTML в файлы определений (XML-файлы). Кроме того, Xkins позволяет исключить простые HTML-теги форматирования из страниц JSP, чтобы еще больше улучшить внешний вид приложения.
  • Определение структуры скина: Шаблоны, ресурсы и пути составляют скин. Ресурсы могут быть либо константами, либо элементами, такими как изображения и файлы CSS. Определение путей поможет вам упорядочить файлы скинов. Определение шаблонов помогает повторно использовать элементы пользовательского интерфейса во всем приложении.
  • Разрешить расширения для платформы Xkins: вы можете расширить Xkins, чтобы использовать собственный язык шаблонов для рендеринга в соответствии с вашими потребностями. Если вам нужно, например, генерировать изображения, вы можете реализовать обработчик шаблонов, который берет шаблон и генерирует изображение. Xkins поставляется с обработчиками шаблонов на основе Velocity и JBYTE. Например, если вы предпочитаете Groovy, вы можете создать обработчик шаблонов Groovy для визуализации элементов пользовательского интерфейса.
  • Разделить пользовательский интерфейс на основные элементы: В Xkins вы можете разделить все части пользовательского интерфейса и создать из них шаблоны. Таким образом, вы можете повторно использовать эти части и изменить все, что вам нужно, чтобы скин выглядел по-другому.
  • Используйте наследование, чтобы свести к минимуму обслуживание скина: В Xkins скин может расширять другие скины и использовать все шаблоны, пути и ресурсы, которые есть у его родителя. Таким образом, вы сокращаете обслуживание шаблона.
  • Использование композиции для создания скинов: Помимо наследования Xkins также использует композицию, чтобы свести к минимуму обслуживание и способствовать повторному использованию ваших шаблонов. С помощью этой функции пользователи могут создавать свои собственные персонализированные скины из вашего приложения, выбирая различные части пользовательского интерфейса из существующих скинов.
  • Определение типа скина: Используя тип скина, вы можете гарантировать, что все скины, загруженные в экземпляр Xkins, имеют как минимум те же шаблоны, что и тип. Тип скина — это скин, на который должны распространяться все другие скины, чтобы быть действительными в экземпляре Xkins. Под экземпляром Xkins, я подразумеваю группу скинов, загруженных вместе для использования веб-приложением.

Одним из важных преимуществ Xkins является то, что весь HTML находится в одном месте, и, если вам нужно его настроить, вы просто меняете шаблоны. Например, если ваши страницы слишком велики, определите, где происходит чрезмерное создание HTML, или решите, какие изображения можно удалить, а затем измените шаблоны, чтобы уменьшить размер страницы. Вы также можете иметь упрощенную оболочку для тех пользователей, которые обращаются к вашему веб-приложению с низкоскоростными соединениями, и более богатую оболочку пользовательского интерфейса для пользователей широкополосного доступа.

Обратите внимание, что вы можете использовать Xkins вместе с CSS. На самом деле использование CSS рекомендуется для стилей и цветов шрифтов, потому что повторное использование классов CSS избавляет от необходимости каждый раз явно указывать начертание шрифта, тем самым сводя к минимуму размер страницы.

Тема оформления может быть заключена в один файл (zip-файл) для упрощения развертывания в веб-приложении. Если вы определяете тип скина, сторонние скины могут быть добавлены в ваше веб-приложение, если они соответствуют объявленному вами типу скина.

Вы можете использовать Xkins разными способами, но использование Xkins с библиотеками тегов предлагает наилучший подход в веб-приложении. Вы можете использовать эти теги для создания своих страниц или для украшения существующих тегов.

Определение скина

Вот несколько советов по определению скина:

  • Определение цвета скина; используйте глобальные константы, чтобы другие скины могли расширять и переопределять их.
  • Создание многократно используемых шаблонов для каждой библиотеки тегов.
  • Создавайте шаблоны с элементами, которые могут быть заменены расширяемой обложкой, чтобы не приходилось переписывать весь шаблон для изменения внешнего вида пользовательского интерфейса.
  • Создайте базовую оболочку для веб-приложения и используйте ее в качестве типа для своего экземпляра Xkins.
  • Избегайте размещения HTML внутри кода Java. Если у вас есть taglib, сервлет или даже страница JSP с кодом HTML, рассмотрите возможность переноса этого HTML в шаблон Xkins.

Пример

Теперь мы пройдем этапы определения, проектирования, разработки и развертывания Xkins в простом веб-приложении, требующем управления интерфейсом. В нашем примере мы реализуем приложение, которое регистрирует подписчиков для двух книжных интернет-магазинов: Amazing и Barnie & Nibble. Приложение будет использоваться на обоих сайтах (через фрейм, портлет или любой другой формат, выбранный магазином), но оно должно иметь внешний вид, специфичный для каждого книжного магазина.

Чтобы реализовать наше приложение, выполните следующие шаги:

  1. Получите HTML-страницы с каждой обложкой
  2. Определите шаблоны обложек
  3. Создайте обложки
  4. Используйте обложки
  5. Разверните веб-приложение с HTML-страницами
  6. 7 каждый скин

    Прежде всего, мы получаем графический дизайн страницы, предоставленный каждым книжным магазином. Этим материалом могут быть прототипы страниц, и он должен содержать все возможные элементы страницы, которые появляются в приложении, для которого выполняется оформление (в нашем примере только одна страница) — см. рис. 2 и 3.

    Рисунок 2. Внешний вид Amazing Рисунок 3. Внешний вид Barnie & Nibble

    Как мы видим, обе страницы имеют разные цвета, изображения и расположение полей. Кроме того, различаются необходимые информационные индикаторы, плюс кнопки Amazing имеют формат GIF, а кнопка Barnie & Nibble представляет собой HTML-кнопку со стилями.

    Определить шаблоны скинов

    Теперь мы должны вырезать фрагменты этих страниц, чтобы обобщить некоторые шаблоны для использования в нашем приложении. Мы могли бы начать с нуля, или мы могли бы основывать наше HTML-расчленение на базовой оболочке, используемой для создания форм. Этот базовый скин поставляется с фреймворком Xkins в тегах Xkins Forms. Xkins Forms — это реализация библиотеки тегов, которая использует Xkins для создания форм для веб-приложений.

    Основной скин определяет рамку, поле, кнопку и т. д. Мы должны использовать этот скин и добавлять шаблоны, которые нужны нашему приложению (например, брендинг). Этот базовый скин также позволяет нам использовать теги Xkins Forms для создания наших страниц JSP.

    Давайте посмотрим список необходимых нам шаблонов:

    • кадр : Таблица, содержащая всю форму
    • frameMandatoryCaption : Текст с указанием обязательных полей
    • FieldLabel : кусок текста, содержащий метку
    • FieldLabelmandatory : кусок текста, указывающий на обязательную метку
    • FieldInput : контрольные вход
    • FieldPut. ndput : управление входом
    • FieldPultMantmardationMardation : управление
    • FieldPultmantmardationMardationMardatornative : контроль
    • . : кнопка для выполнения действия
    • брендинг : брендинг, соответствующий каждому книжному магазину
    создание скинов

    После того, как различные части нашего пользовательского интерфейса определены, мы создаем оба скина с помощью Xkins. Начнем с присвоения им имени в файле

    xkins-definition.xml :

     
    
       
       
       
    
     

    Теперь мы должны создать структуру каталогов в каталоге ROOT нашего веб-приложения в соответствии с определенным файлом конфигурации, показанным на рисунке 4.

    Рисунок 4. Каталоги скинов кожа. Мы пройдемся по некоторым шаблонам скина. Чтобы просмотреть все шаблоны примера, загрузите исходный код из ресурсов.

    Давайте посмотрим на синтаксис определения скина, содержащийся в файле Definition.xml файл скина Amazing:

     
    
     

    base

    — это скин по умолчанию, который поставляется с Xkins Forms и помогает нам скинировать наше приложение. Скин Amazing расширяет его (так же, как и Barnie & Nibble). Теперь мы начинаем переопределять базовые шаблоны скинов для каждого скина, начиная с поля template:

      
       <имя шаблона="поле" группа="поле">
           $label $input  ]]>
       
       
Это моя этикетка