2012-06-21 3 views
0

Мне нужно создать пользовательский компонент, который состоит из выпадающего списка, дерева и панели отображения для деталей выбранного элемента узла.JSF/ICEFaces Custom Component Design Pattern & Readed

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

Я могу узнать, есть ли хорошая хорошая передовая практика, когда дело доходит до создания пользовательского компонента для многократного использования.

После штурма мозга я выявил следующие проблемы.

1) Как отменить выбор на задний план? Возможное решение: реализовать шаблон наблюдателя для пользовательского компонента, поэтому, когда пользователь нажимает [OK], он будет возвращать значение в бэк-файл перед закрытием пользовательского компонента.

2) Отображение деталей выбранного узла. (Различные типы элементов могут отображаться по-разному) Возможное решение: я могу подумать об использовании интерфейса: Включить, но я думаю о более элегантном решении

Любые другие вопросы ????

Любая помощь?

ответ

1

Я проигнорирую часть ICEfaces в вопросе, поскольку я ее не использую.

1) Как передать выбор на задний план?

Обеспечить атрибут value, в котором вы можете просто указать свойство компонента. Проще всего позволить вашему пользовательскому компоненту расширить UIInput, который уже предоставляет этот атрибут.


2) Отображение деталей выбранного узла. (Различные типы элементов могут отображаться по-разному) Возможное решение: я мог бы рассмотреть вопрос об использовании интерфейса: Включить, но я имею в виду более элегантное решение

Вы могли бы обеспечить поддержку конкретных <f:facet> с. В encodeChildren() компонента или его средства визуализации вы можете получить их по номеру UIComponent#getFacet().