1、介绍
eclipse form是eclipse 3.0的新特性。
eclipse form是一组定制小部件和支持类组成的插件,以前由pde和update组件内部使用,在eclipse 3.0中已经成为公用api。
eclipse form提供:
·适合包含到内容区域(编辑器或视图)中的“form”概念
·用来管理颜色、超链接组和其它象swt控件一样的form外观的工具包
·象html表格一样布局的新布局管理器
·为form设计的定制控件(超链接、图像链接、可滚动的composite等)
·每页是一个form的多页编辑器(就象pde)
2、快速入门
(1)helloworld例子
下面的例子在视图中创建一个空的formpublic class formview extends viewpart {
private formtoolkit toolkit;
private scrolledform form;
public void createpartcontrol(composite parent) {
toolkit = new formtoolkit(parent.getdisplay());
form = toolkit.createscrolledform(parent);
form.settext("hello, eclipse forms");
}
public void setfocus() {
form.setfocus();
}
public void dispose() {
toolkit.dispose();
super.dispose();
}
}
·首先要创建formtoolkit对象实例
·由formtoolkit创建form对象(这里是scrolledform)
·调用scrolledform的settext()方法,在form的顶部设置标题内容
·注意:最后要dispose管理资源的formtoolkit对象
·要在workbench中运行,需要plugin.xml中,将org.eclipse.ui.forms添加到必需插件列表,并注册视图<?xml version="1.0" encoding="utf-8"?>
<?eclipse version="3.0"?>
<plugin
id="formsamples"
name="formsamples plug-in"
version="1.0.0"
provider-name="nelson_tu"
class="org.xqtu.samples.formsamplesplugin">
<runtime>
<library name="formsamples.jar">
<export name="*"/>
</library>
</runtime>
<requires>
<import plugin="org.eclipse.ui"/>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="org.eclipse.ui.forms"/>
</requires>
<extension
point="org.eclipse.ui.views">
<view
class="org.xqtu.samples.views.formview"
name="form sample"
id="formview"/>
</extension>
</plugin>
(2)添加内容public void createpartcontrol(composite parent) {
toolkit = new formtoolkit(parent.getdisplay());
form = toolkit.createscrolledform(parent);
form.settext("hello, eclipse forms");
composite body = form.getbody();
gridlayout layout = new gridlayout();
body.setlayout(layout);
hyperlink link = toolkit.createhyperlink(body, "click here.",swt.wrap);
link.addhyperlinklistener(new hyperlinkadapter() {
public void linkactivated(hyperlinkevent e) {
system.out.println("link activated!");
}
});
}
·首先获得form的体内容,它是一个composite对象
·设置其布局为gridlayout
·通过formtoolkit创建一个超链接(hyperlink)控件
·添加超链接事件侦听器,响应超链接的点击
(3)添加通用控件
·由于form的体内容是一个composite对象,所以允许在其中创建swt控件
·但是swt控件是被设计为适合窗口、对话框的,所以在form中使用是有问题的
在form中,使用formtoolkit创建对应的通用控件public void createpartcontrol(composite parent) {
toolkit = new formtoolkit(parent.getdisplay());
form = toolkit.createscrolledform(parent);
form.settext("hello, eclipse forms");
composite body = form.getbody();
gridlayout layout = new gridlayout();
body.setlayout(layout);
hyperlink link = toolkit.createhyperlink(body, "click here.",swt.wrap);
link.addhyperlinklistener(new hyperlinkadapter() {
public void linkactivated(hyperlinkevent e) {
system.out.println("link activated!");
}
});
layout.numcolumns = 2;
griddata gd = new griddata();
gd.horizontalspan = 2;
link.setlayoutdata(gd);
label label = toolkit.createlabel(body, "text field label:");
text text = toolkit.createtext(body, "");
text.setlayoutdata(new griddata(griddata.fill_horizontal));
text.setdata(formtoolkit.key_draw_border, formtoolkit.text_border);
button button = toolkit.createbutton(body,"an example of a checkbox in a form", swt.check);
gd = new griddata();
gd.horizontalspan = 2;
button.setlayoutdata(gd);
toolkit.paintbordersfor(body);
}
上面的例子添加了三个通用控件:label、text和checkbox
由于缺省创建的text控件的外观是3d的,而要达到象pde一样的flat外观,需要做些额外工作:
·调用setdata()方法,添加重画边框的附加信息
·调用formtoolkit的paintbordersfor()方法重画flat外观的边框
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器