Eclipse Form程序设计指南(3)

程序|设计

4、复杂控件

(1)       ExpandableComposite

l         Web页面中一个通用的主题是具有收缩一部分页面内容的能力

l         Eclipse Form也提供了这样一个控件:ExpandableComposite

l         下面的代码片断是使用ExpandableComposite的一个例子:

              ExpandableComposite ec = toolkit.createExpandableComposite(body,

                ExpandableComposite.TREE_NODE

                       | ExpandableComposite.CLIENT_INDENT);

              ec.setText("Expandable Composite title");

              String ctext = "We will now create a somewhat long text so that "

                + "we can use it as content for the expandable composite. "

                + "Expandable composite is used to hide or show the text using the "

                + "toggle control";

              Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);

              ec.setClient(client);

              td = new TableWrapData();

              td.colspan = 2;

              ec.setLayoutData(td);

              ec.addExpansionListener(new ExpansionAdapter() {

                public void expansionStateChanged(ExpansionEvent e) {

                       form.reflow(true);

                }

              });

l         这个控件有很多风格,TREE_NODE使得该控件具有树型节点的展开、收缩功能;而TWISTIE使得控件具有三角箭头风格

l         EXPANDED使得初始展开显示

l         CLIENT_INDENT使得Client内容缩进对齐

l         ExpandableComposite呈现为激活控件和标题,而可以展开、收缩的内容称为Client

l         Client必须是可展开的composite(上例是Label控件)

l         最后需要添加Expansion监听器在状态变化时,reflow Form(即根据控件的新的大小重新定位和更新滚动条)

l         下面是上例的运行结果:

(2)Section

l         Eclipse Form中最常用的定制控件就是Section(在PDE中到处可见)

l         Section扩展ExpandableComposite,但具有下面的新特性:

n         在标题下面有一个分隔控件

n         在分隔控件下面可以有一个描述文本

l         下面的代码片断是使用Section的一个例子,代码和ExpandableComposite没有太大差别,这里是用了TWISTIE风格:

              Section section = toolkit.createSection(body, Section.DESCRIPTION

                       | Section.TWISTIE | Section.EXPANDED);

              td = new TableWrapData(TableWrapData.FILL);

              td.colspan = 2;

              section.setLayoutData(td);

              section.addExpansionListener(new ExpansionAdapter() {

                public void expansionStateChanged(ExpansionEvent e) {

                       form.reflow(true);

                }

              });

              section.setText("Section title");

              toolkit.createCompositeSeparator(section);

              section

                       .setDescription("This is the description that goes below the title");

              Composite sectionClient = toolkit.createComposite(section);

              sectionClient.setLayout(new GridLayout());

              button = toolkit.createButton(sectionClient, "Radio 1", SWT.RADIO);

              button = toolkit.createButton(sectionClient, "Radio 2", SWT.RADIO);

              section.setClient(sectionClient);

l         下面是上例的运行结果:

时间: 2025-01-01 13:39:03

Eclipse Form程序设计指南(3)的相关文章

Eclipse Form程序设计指南之入门

程序|设计 1.介绍 ·Eclipse Form是Eclipse 3.0的新特性 ·Eclipse Form是一组定制小部件和支持类组成的插件,以前由PDE和Update组件内部使用,在Eclipse 3.0中已经成为公用API ·Eclipse Form提供: * 适合包含到内容区域(编辑器或视图)中的"Form"概念 * 用来管理颜色.超链接组和其它象SWT控件一样的Form外观的工具包 * 象HTML表格一样布局的新布局管理器 * 为Form设计的定制控件(超链接.图像链接.可滚

Eclipse Form程序设计指南(1)

程序|设计 1.介绍 l         Eclipse Form是Eclipse 3.0的新特性 l         Eclipse Form是一组定制小部件和支持类组成的插件,以前由PDE和Update组件内部使用,在Eclipse 3.0中已经成为公用API l         Eclipse Form提供: n         适合包含到内容区域(编辑器或视图)中的"Form"概念 n         用来管理颜色.超链接组和其它象SWT控件一样的Form外观的工具包 n   

Eclipse Form设计指南之定制布局

设计 3.定制布局 Eclipse Form提供了2个新的布局 (1)TableWrapLayout ·问题:如果将上例中超链接的文本设置的足够长 link.setText("This is an example of a form that is much longer and will need to wrap."); 即使设置了SWT.WRAP,文本内容不会自动WRAP,这是因为体内容的布局是GridLayout ·Eclipse Form提供替代的布局TableWrapLayo

Eclipse Form程序设计快速入门

1.介绍 Eclipse Form是Eclipse 3.0的新特性. Eclipse Form是一组定制小部件和支持类组成的插件,以前由PDE和Update组件内部使用,在Eclipse 3.0中已经成为公用API. Eclipse Form提供: ·适合包含到内容区域(编辑器或视图)中的"Form"概念 ·用来管理颜色.超链接组和其它象SWT控件一样的Form外观的工具包 ·象HTML表格一样布局的新布局管理器 ·为Form设计的定制控件(超链接.图像链接.可滚动的composite

《阿里巴巴Java开发手册》IDEA插件与Eclipse插件使用指南

首先非常感谢大家对插件的支持与意见,这里详细介绍一下<阿里巴巴Java开发手册>IDEA插件与Eclipse插件的安装使用. 关于规约插件的背景介绍,可见上篇文章:提升团队研发效能利器,<阿里巴巴Java开发手册>插件全球首发(附插件下载地址) 一.阿里巴巴Java开发手册IDEA插件使用指南 通过Jetbrains官方仓库安装 1. 打开 Settings >> Plugins >> Browse repositories... 2. 在搜索框输入alib

MEF程序设计指南八:部件生命周期(Parts Lifetimeime)托管

MEF中的每一个可进行动态装配的导出部件都是具有生命周期的,在没有特别需求的情况下一般都没有对生命周期进行管理,而实际上 MEF已为每一个部件进行了默认的生命周期管理,MEF的生命周期分为三种:Any.Shared及NonShared,被定义在 System.ComponentModel.Composition.CreationPolicy枚举对象中. namespace System.ComponentModel.Composition { public enum CreationPolicy

MEF程序设计指南七

使用目录(Catalog)动态装载xap与目录筛选(Filtered Catalog) 如果不使用MEF进行托管扩展处理,只有通过WebClient进行程序包的下载.解析.实际上MEF的动态下载的底层实现一样是使用的 WebClient,然后利用AggregateCatalog进行动态组合,详细可查看MEF的源代码(路径: Composition.Initialization\System\ComponentModel\Composition\Hosting \DeploymentCatalog

MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)

在MEF中,使用[System.ComponentModel.Composition.ExportAttribute]支持多种级别的导出部件配置,包括类.字段.属性以及方法 级别的导出部件,通过查看ExportAttribute的源代码就知道ExportAttribute被定义为 Attribute,并为其设置了使用范围. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA

112_《Delphi2高级程序设计指南》

<Delphi2高级程序设计指南> Delphi 教程 系列书籍 (112) <Delphi2高级程序设计指南> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3 Part4 Part5 Part6 作者: 姚庭宝 出版社: 电子工业出版社 内容简介 Delphi 2.0高级程序设计指南(非常的优秀) 目录 第一部分 基础篇 第一章 Delphi快速入门 第二章 Delphi面向对象的编程方法 第三章 字符串列表及应用 第