提要 本文重点讨论如何利用bea weblogic portal所提供的新功能实现ui(titlebar)的定制开发。
一、 引言
也许,没有什么比发行你的第一个portal产品更让你激动的了。在经过长时间的努力后,你(和你的团队)所倾力开发的应用程序终于与用户见面了!然而,本文不是教给你如何进行基本的portal开发,而是探讨如何为你的现有portal加入新的功能。
本文将描述有关bea weblogic portal的一些非常有用的新特征-你可以借助这些特征来扩展你的portal页面功能。
二、 定制titlebar
如果你已经使用过所有内置的titlebar功能,那么你可以很容易地实现titlebar的定制--你仅需要把一些新图标放到其上即可。首先,让我们看一下bea为portal开发在titlebar所提供的内置功能(分别对应四个图标):
· minimize:如果页面上有相当多的portlet以至于用户想最小化其中的某些以便看清其它portlet,那么在设计初期可能把它们分解成独立的页面更好些。
· maximize:这在使用一种多列布局时非常有用,尽管通常情况下,许多用户更喜欢单列布局。
· delete:如果不进行编程,那么这个图标不会作为用户设置数据的一部分而存储起来;因此这有可能惹恼你的用户-每次必须返回。更不用提,如果他们真正想要返回的话,他们不得不开始一个新的会话。
· help:这项功能几乎是必须的。
因此,对大多数用户来说,在titlebar中只放置一个图标就够了。然而,下面我们将详细讨论如何进一步定制titlebar-再添加两个用户常用图标。
三、 加入打印图标
我们知道,现在已经到了无纸办公时代。尽管如此,portal用户仍会使用打印图标。而实际上,除了昂贵的报告和旅行计划外,他们真正想要打印的其实只是该页面的一部分:单个的portlet。作为开发者,只要用户需要,我们就应该尽最大努力满足他们的要求。因此,下面我将向你介绍怎样打印单个的portlet。
注意,本文中的例程实现与命名惯例有一定联系。但是,我们所使用的命名不会影响真正的实现机制。首先,让我们来看一下window.jsp文件中的下面一行代码:
| <render:writeattribute name="id" value="<%= window.getpresentationid() %>"/> |
| function printportlet(apppath, portletid, portletname){ var pagestring = apppath+'/resources/jsp/ printpage.jsp?portletid='+portletid; var printwindow = window.open(pagestring, 'printpage',"location=no,scrollbars=no,resizable"); printwindow.focus(); } |
| <td class="bea-portal-window-titlebar-buttons" nowrap="nowrap"> |
| <img src="<render:getskinpath imagename="printericon.gif" />" style="cursor:pointer; position:relative; top:-2px" onclick="printportlet('<%=request.getcontextpath()%>', '<%=window.getdefinitionlabel()%>')"> |