[gatein-issues] [JBoss JIRA] (GTNPORTAL-3529) Enhance UI container layout fully extensible and customizable

Trong Tran (JIRA) issues at jboss.org
Mon Aug 18 00:35:29 EDT 2014


     [ https://issues.jboss.org/browse/GTNPORTAL-3529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Trong Tran updated GTNPORTAL-3529:
----------------------------------

        Status: Resolved  (was: Pull Request Sent)
    Resolution: Done


> Enhance UI container layout fully extensible and customizable
> -------------------------------------------------------------
>
>                 Key: GTNPORTAL-3529
>                 URL: https://issues.jboss.org/browse/GTNPORTAL-3529
>             Project: GateIn Portal
>          Issue Type: Enhancement
>      Security Level: Public(Everyone can see) 
>          Components: WebUI
>    Affects Versions: 3.8.2.Final
>            Reporter: Vu Viet Phuong
>            Assignee: Vu Viet Phuong
>             Fix For: 3.9.0.Final
>
>
> In PortalDataMapper, we have this
> {code}
> if (UITabContainer.TAB_CONTAINER.equals(container.getFactoryId())) {
>                 uiTempContainer = uiContainer.createUIComponent(context, UITabContainer.class, null, null);
>             } else if (UIColumnContainer.COLUMN_CONTAINER.equals(container.getFactoryId())) {
>                 uiTempContainer = uiContainer.createUIComponent(context, UIColumnContainer.class, null, null);
>             } else {
> ...
> {code}
> - This should be improved by making it more flexible, and extensible. Using ServiceLoader to load the factories class that help to create UIContainer by their factory-id
> - The proposed solution is:  using factory-id attribute of container model to create corresponding UI container type. And the creation task is delegated to a factory service, that can be loaded via service loader. This design make gatein ui container creation more flexible, it's easy to deploy gatein extension which define a new UI container type with new factory-id
> - factory-id has already be used before in gatein, we use it to create UITabContainer, UIColumnContainer... This issue will add interface for factory service: UIComponentFactory and a default implementation for create current gatein build-in container: DefaultUIContainerFactory. It's declared as a service load by java ServiceLoader
> - When gatein try to create UI container (from model loaded from database or from xml config file). ServiceLoader will load registered UIComponentFactory services, then delegate creation task with factory-id as argument
> - A developer can deploy a jar that declare a new ui factory service, then help to create a new type of UI container easily 



--
This message was sent by Atlassian JIRA
(v6.2.6#6264)


More information about the gatein-issues mailing list