正 文

Eclipse Forms设计漂亮UI之简介


www.7dspace.com  更新日期:2006-1-24 5:27:39  七度空间



  Eclipse Forms Mission

  Eclipse Forms是一个贯穿所有Eclipse UI的基于SWT和JFace的来提供可移植Web风格用户界面的可选Rich Client插件。

  Eclipse Forms打破了只能用于特定Eclipse UI(编辑器,视图,向导,窗口)的模式。为了满足开发者的需要,一个Eclipse form能够以任何UI的形式出现。UI开发者能够使用为他们的任务选择最合适的概念。

  Eclipse不是用来设计完全替代SWT或JFace的.这个插件只有一些精心挑选的专有定制组件 ,布局和支持类,以便使用SWT和JFace时达到预期效果.

  很明显的,一个Eclipse Form通常看起来象网页一样.事实是form的纲领可行性的各方面都是使forms强大的和具有吸引力.要同过浏览器达到这样的弹性需要DOM支持,并且经常几乎是聚耦的.Eclipse Forms是可移植的,并且是在SWT和JFace之上写的.

  Eclipse Forms已经在3.0 release中重写来只依赖于平台UI插件,而不再依赖于PDE UI插件.虽然它们还不是RCP的最小化部分,但是你能够在任何RCP程序中添加Eclipse Forms.

  要点不能被低估.当构建Eclipse Forms时,你是在使用SWT.没有Eclipse Forms按钮,也没有Eclipse Forms tree组件等等.你只是使用Eclipse Forms来让现有的组件达到富客户体验.

  Eclipse Forms是通过下列元素来达到目的的:

  "form"概念和视图,编辑器等是一个层次的概念.

  一个工具包(toolkit)来管理颜色,超链接组还有其它方面.并且充当许多SWT组件的工厂类.

  一个新的layout manager来管理布局,和HTML表格相似.

  一组定制的组件用来配合form.(超链接,图片超链接,滚动组合<scrollable composite>,段<section>)

  一个各个页面都是forms的多页面编辑器(e.g. PDE manifest编辑器)

  虽然Eclipse Forms的设计中没有任何阻止您在一个窗口中建立form.但是大部分时候都是在视图和编辑器中使用forms,而不是窗口或向导.的确,在一个普通的窗口或向导中加入form看上去有点怪,毕竟其他部分都是普通的SWT组件.无论如何,在未来,这是一个探索的方向.

  Baby steps

  在您的用户接口中使用Eclipse Forms非常简单.在开始前你在插件依赖部分加入org.eclipse.ui.forms插件.我们会创建一个拥有form的

  Eclipse view,然后往里面填充内容.注意这篇文章插件的所有代码都以zip文件格式提供下载.

  Hello, Eclipse Forms

  我们从往view里添加一个空白form来开始游戏:

public class FormView extends ViewPart {
 private FormToolkit toolkit;
 private ScrolledForm form;

 /**
 * The constructor.
 */
 public FormView() {}

 /**
 * This is a callback that will allow us to create the viewer and
 * initialize it.
 */
 public void createPartControl(Composite parent) {
  toolkit = new FormToolkit(parent.getDisplay());
  form = toolkit.createScrolledForm(parent);
  form.setText("Hello, Eclipse Forms");
 }

 /**
 * Passing the focus request to the form.
 */
 public void setFocus() {
  form.setFocus();
 }

 /**
 * Disposes the toolkit
 */
 public void dispose() {
  toolkit.dispose();
  super.dispose();
 }
}

  就象你在这段代码中看到一样,不需要太多就可以创建一个form.我们开始是创建一个toolkit实例().我们通过toolkit以提供的 composite为parent来创建一个可以滚动的form.我们设置了form的标题.而且我们确定在需要的时候把focus传给form,当 view dispose时把toolkit也dispose掉。

  这个视图应该看起来象这样:


图片2

  在view里的一个空的form,使view变窄一点会让form标题包裹起来,一旦没有空间来容纳整个form,滚动条就会显示。

  注意我们用到了可滚动的form,因为我们把它放到了一个可以改变大小的视图中.在更复杂的环境里,比如一个form需要作为一个布局的一部分,没有滚动能力的form也可以用.在这种情况下,我们会调用FormToolkit.createForm(),让外层的parent来解决需要滚动条的问题。
2页,页码:[1] [2] 

上一篇:Windows 2000缓冲区溢出技术原理
下一篇:结合第三方工具工具对Weblogic进行调优
标题:Eclipse Forms设计漂亮UI之简介 作者:starshus 来源:blog
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐