`
lggege
  • 浏览: 375480 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GEF 给PropertySheetPage设置属性排序功能

    博客分类:
  • GEF
阅读更多
在PropertySheetPage显示的属性中, 如果需要自定义属性显示的上下顺序, 就需要给PropertySheetPage添加一个PropertySheetSorter, 从而决定属性显示的上下顺序.

protected void setSorter(PropertySheetSorter sorter) {


但是, 这个方法是protected的, 所以, 只有在给Editor添加PropertySheetPage的时候, 需要使用比较脏的方法给PropertySheetPage 设置一个sorter了.


我的做法如下:
		propertySheetPage = new PropertySheetPage() {
			/**
			 * @see org.eclipse.ui.views.properties.PropertySheetPage#createControl(org.eclipse.swt.widgets.Composite)
			 */
			@Override
			public void createControl(Composite parent) {
				// 设置一个使用描述来排序的Sorter
				PropertySheetSorter sorter = new PropertySheetSorter() {
					public int compare(IPropertySheetEntry entryA, IPropertySheetEntry entryB) {
// 使用IPropertySheetEntry的description排序.
						return getCollator().compare(entryA.getDescription(), entryB.getDescription());
					}
				};
				this.setSorter(sorter);

				super.createControl(parent);
			}
		};

注: 排序的规制是使用entryA.getDescription()来作为排序依据.

于是: Model中的代码如下:
	public IPropertyDescriptor[] getPropertyDescriptors() {

		TextPropertyDescriptor locationXPD = new TextPropertyDescriptor(P_LOCATION_X, "X坐标"); 
		locationXPD.setDescription("01"); 

		TextPropertyDescriptor locationYPD = new TextPropertyDescriptor(P_LOCATION_Y, "Y坐标");
		locationYPD.setDescription("02"); 

		return new IPropertyDescriptor[] { locationXPD, locationYPD};
}


效果: 'X坐标' 排在了 'Y坐标' 的前面了.
分享到:
评论

相关推荐

    GEF中属性页面的实现

    在GEF(Graphical Editing Framework)中,属性视图(Property View)的实现是一个关键功能,它允许用户查看和编辑图形模型的属性。属性视图是数据源与用户界面之间的桥梁,确保图形模型和属性视图之间保持同步更新...

    GEF入门学习例子

    这个入门学习例子旨在帮助初学者理解GEF的基本用法和核心概念,通过实例展示如何利用GEF实现工具栏、菜单栏、属性栏以及图形的交互功能,如移动、删除、撤销、连线等,并涵盖了大纲视图和鹰眼功能的实现。...

    自己下的GEF资源打包

    "GEF-whole-upload.pdf"这个名字可能表明这是一份综合性的文档,涵盖了GEF的全部内容,或者是某个大型项目的完整上传指南,指导用户如何将整个GEF应用部署到服务器或者共享给他人。 总的来说,这个“GEF资源打包”...

    gef 转折线的相关方法实现和 GEF的API chm 格式

    1. 创建PathFigure实例:这是折线的基础,你可以设置其填充颜色、边框颜色等属性。 2. 创建Segment实例:如LineSegment、BezierSegment等,用于表示转折线的不同部分。每个Segment都有自己的坐标点,可以通过设置...

    GEF入门必读 GEF入门系列 GEF-whole-upload

    GEF的核心功能是提供了一套强大的组件和API,用于创建可交互的、图形式的用户界面。通过使用GEF,开发者可以轻松地创建出具有拖放、连接线、节点和图形编辑功能的应用。在Java编程中,GEF是一个非常有价值的工具,...

    GEF_Tutorial.rar(GEF开发指南)

    这通常涉及到设置项目属性,导入必要的库,以及配置项目的构建路径。 **3. 设计模型** 在GEF中,你需要首先定义你的数据模型,这可能涉及使用EMF(Eclipse Modeling Framework)来创建Ecore模型。Ecore模型是元模型...

    GEF-ALL-3.7+GEF-ALL-3.8+GEF_Draw2d学习资料

    它支持多种图形操作,如绘制矩形、圆形、线条等基本形状,以及填充颜色、设置边框样式等功能。同时,Draw2D还提供了事件处理机制,使得图形可以响应用户的交互操作。 该资源包中的文档包括: 1. "GEF.doc" 和 ...

    GEF-Update-3.7.1.zip

    开发者可以通过导入这个JAR文件,将GEF的功能整合到他们的Eclipse插件项目中。 2. **artifacts.jar**:此文件通常包含了软件的元数据,例如依赖关系、版本信息等。在Eclipse插件开发中,它可能用于帮助Eclipse的...

    GEF简易教程-学习GEF的入门教程

    这一步至关重要,没有正确设置依赖,将无法在项目中使用GEF功能。 #### 三、创建Editor与GEF基本结构 在RCP项目中,**Editor**是最常见的GEF承载对象,它继承自`EditorPart`,提供了图形修改后的自动保存机制,这...

    GEF实现拷贝粘贴

    标题“GEF实现拷贝粘贴”涉及到的是在软件开发中使用Graphical Editing Framework(GEF)进行图形界面编辑时,如何实现复制和粘贴功能的技术。GEF是Eclipse平台下用于构建图形化编辑器的框架,它提供了一套完整的...

    GEF-SDK-3.6.2 jar

    在Android ADT中,GEF的作用主要体现在可视化布局编辑器上,它允许开发者通过拖放的方式设计XML布局文件,实时预览UI效果,以及方便地调整控件的属性和布局关系。此外,GEF还支持图元工厂(MetaFactory),可以生成...

    GEF Example Source Code

    **GEF(Graphical Editing Framework)** 是一个用于构建图形编辑工具的开源框架,它为开发人员提供了一套全面的库和工具,用于创建基于Eclipse的富客户端平台(RCP)的应用程序,特别是那些涉及图形用户界面(GUI)...

    简单gef框架

    3. **gef的命令与功能**:gef提供了许多实用的命令,如`gef help`可以查看所有可用命令,`gef config`用于配置gef的设置,`gef load`则可以加载新的gef插件。此外,gef还包含了一些针对内存分析、反汇编、堆栈跟踪等...

    gef学习文档+学习源码

    在本文中,我们将深入探讨Gef的学习过程,涵盖其基本概念、核心功能以及如何应用于MVC架构和富客户端开发。 首先,让我们了解Gef的基础知识。Gef是用Python编写的,它通过添加新的命令、改进现有命令和提供额外的...

    GEF快速入门教程和EMF教程

    - 添加依赖后,项目的构建路径将包含GEF库,从而可以在项目中使用GEF功能。 ### 创建Editor 接下来,我们将创建一个Editor,这是GEF应用中最核心的部分之一。通常情况下,GEF会集成到Editor中而非View中,这是...

    GEF教程及demo源码GEF_RCP_DEMO.zip

    在Java环境中,GEF常与SWT(Standard Widget Toolkit)结合使用,提供强大的图形渲染和交互功能。 本教程主要涉及以下几点关键知识点: 1. **GEF基础概念** GEF的核心是其五层架构,包括Model(模型)、View...

    GEF实例教程PDF

    - **GEF (Graphical Editing Framework)**:GEF是Eclipse平台提供的一个用于构建图形编辑器的框架,能够帮助开发者快速构建功能丰富的图形用户界面。适用于创建各种类型的图形编辑器,如流程图编辑器、UML建模工具等...

Global site tag (gtag.js) - Google Analytics