Portlet布局框架 收藏

Portlet 布局组件类似java 中的awt/swing 组件。原因有二:

<!---->1)     <!---->awt/swing 一样,提供了相近的增删组件的API

<!---->2)     <!---->基于Composite 设计模式,用户可以自己开发组件。

 

Portlet 布局组件:

一个portlet 布局, 在用户看来就是一个PortletPage 。一个PortletPage 包含多个portlet 组件。通常portlet 布局组件继承于PortletContainer 类,有width,height,CSS 属性等。

 

PortletContent

允许使用include 属性包含外部内容。

PortletTableLayout

表格布局。

PortletRowLayout

行布局。

PortletColumnLayout

列布局。

PortletTabbedPane

Tab 面板布局。

PortletTab

一个tab 定义了一个标题和一个 portlet 组件,当tab 被选择的时候这个组件将被显示。

PortletFrame

一个portlet frame 显示一个portlet 。它包含标题边框和要显示的portlet 的类名。如果transparent 属性不被设为true, 标题栏不会被显示。required-role 元素可以被指定为"GUEST", "USER", "ADMIN" "SUPER"

   

设计一个布局:

    一个外部的web 应用可以指定一种布局,通过年纪 WEB-INF/layout.xml 文件。 布局描述文件定义了在一个 double-tabbed 面板中的 portlet 的组织。下面时一个例子。

<portlet-tabbed-pane> <!----><!---->1 <!---->

    <portlet-tab>

        <title lang="en">Examples</title> <!----><!---->2 <!---->

        <portlet-tabbed-pane style="sub-menu">  <!----><!---->3 <!---->

            <portlet-tab>

                <title lang="en">Simple Examples</title>

                <table-layout>    <!----><!---->4 <!---->

                    <row-layout>  <!----><!---->5 <!---->

                        <column-layout width="50%> <!----><!---->6 <!---->

                            <portlet-frame> <!----><!---->7 <!---->

                                <portlet-class>org.myorg.portlets.examples.simpleone.1</portlet-class>

                            </portlet-frame>

                        </column-layout width="50%>

                         <column-layout width="50%>

                            <portlet-frame label="simpletwo"> <!----><!---->8 <!---->

                                 <portlet-class>org.myorg.portlets.examples.simpletwo.1</portlet-class>

                            </portlet-frame>

                        </column-layout>

                    </row-layout>

                </table-layout>

            </portlet-tab>

            <portlet-tab>

                <title lang="en">Demos</title>

                <table-layout>

                    <row-layout>

                        <column-layout>

                            <portlet-frame>

                                 <name>DemoPortlet</name>

                                <portlet-class>com.kuaff.spirit.portlets.examples.DemoPortlet.1</portlet-class>

                            </portlet-frame>

                        </column-layout>

                    </row-layout>

                </table-layout>

            </portlet-tab>

        </portlet-tabbed-pane>

    </portlet-tab>

</portlet-tabbed-pane>

 

<!----><!---->1 <!---->

每一个描述文件都必须以portlet-tabbed-pane 开始

<!----><!---->2 <!---->

Tab 标题可以本地化。

<!----><!---->3 <!---->

不是必须的。

<!----><!---->4 <!---->

Table 布局。

<!----><!---->5 <!---->

Row 布局。

<!----><!---->6 <!---->

Table 布局。

<!----><!---->7 <!---->

portlet frame

<!----><!---->8 <!---->

指定一个标签。意味着它可以被连接。

 

了解更多的信息,可以查看 layout-mapping.xml 文件,它定义了portlet 组件类和描述符之间的关系。

你可能感兴趣的:(设计模式,框架,Web,css,swing)