海纳百川 有容乃大--封装、集成
Java的成功,离不开它那个庞大的类库,不单是sun的类库,很多细节的实现都取自第三方(如xml解析采用Apache的实现)。如前言所述,我们暂时不大算编写丰富的公共API,但是我们可以集成其他成熟的类库,同时隔离他们的依赖,隔离各个脚本的执行上下文,消除命名冲突的危险。
这里我们详细介绍一个复杂一点的实例:类似Windows XP文件浏览器左侧的滑动折叠面板(任务菜单)效果。
我们先集成Scriptaculous Effect类库,并且在这个基础上按我个人的习惯对一个面板折叠效果做一个简单的封装,展示框架的类库封装功能。
1. 集成Scriptaculous类库:
这里我们不做过多介绍,详细情况请参考集成实战;我们发布的版本中已经把Scriptaculous放置于us.aculo.script包中,您可以把这些作为系统内置的类库使用。
2. 编写我们的折叠面板函数(org/xidea/example/display/effect.js):
/** * 滑动面板实现. * 当指定元素可见时,将其第一个子元素向上滑动至完全被遮掩(折叠)。 * 当指定元素不可见时,将其第一个子元素向下滑动至完全显示(展开)。 */ function slidePanel(panel){ panel = $(panel); if(panel.style.display=='none'){ //调用Scriptaculous Effect的具体滑动展开实现 new Effect.SlideDown(panel); }else{ //调用Scriptaculous Effect的具体滑动闭合实现 new Effect.SlideUp(panel);
|