`
zhongkem
  • 浏览: 152471 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

gef中的属性视图小结

阅读更多

1.如果要实现在属性视图中编辑被选择的对象,则至少必须满足以下两个条件:

  • 被选择的对象必须实现或者能够适配成IPropertySource接口对象。
  • 被选择的对象必须能够被实现了ISelectionProvider接口的选择提供者提供属性视图

2.Eclipse中内置了一些实现了IPropertyDescriptor接口的类

  • PropertyDescriptor 可以实现不可编辑的属性
  • ColorPropertyDescriptor 会弹出颜色选择对话框
  • ComboBoxPropertyDescriptor 可以通过下拉框选择需要的属性
  • TextPropertyDescriptor 实现可编辑的属性
  • StandardComboBoxPropertyDescriptor

3.实现属性栏打开自定义的对话框

     可以参考在属性页中打开对话框 ,写得已经很详细了。

4.实现属性的显示顺序

       在PropertySheetPage显示的属性中, 如果需要自定义属性显示的上下顺序, 就需要给PropertySheetPage添加一个PropertySheetSorter, 从而决定属性显示的上下顺序.

 4.1 在Editor中加入如下代码:

 

	...................
		if (type.equals(IPropertySheetPage.class)) {
			return new PropertySheetPage() {
				public void createControl(Composite parent) {
					// super.createControl(parent);
					PropertySheetSorter sorter = new PropertySheetSorter() {
						public int compare(IPropertySheetEntry entryA,
								IPropertySheetEntry entryB) {
							return getCollator().compare(
									entryA.getDescription(),
									entryB.getDescription());
						}
					};
					this.setSorter(sorter);
					super.createControl(parent);
				}
			};
		}
		return super.getAdapter(type);
	}

 

 4.2 在处理属性视图的类中加入以下代码

public IPropertyDescriptor[] getPropertyDescriptors() {
		ArrayList<IPropertyDescriptor> properties = new ArrayList<IPropertyDescriptor>();
		TextPropertyDescriptor name=new TextPropertyDescriptor(Node.PROPERTY_RENAME, "Name");
		name.setDescription("01");//设置这个是为了排序
		properties.add(name);//增加任务名
		if (node instanceof TaskModel) {			
			TextPropertyDescriptor des=new TextPropertyDescriptor(TaskModel.PROPERTY_DESCRIPTION,
			"Description");
			des.setDescription("02");
			properties.add(des);//增加任务描述
...........................

 

 

 其实就是通过entryA.getDescription()来作为排序依据.

 

 

 

 

 

 

分享到:
评论
1 楼 zoukailiang0 2012-06-22  
请问上面代码中的type变量是怎么获取的啊?我是用默认的property pannel

相关推荐

    GEF中属性页面的实现

    本文将深入探讨如何在GEF中实现属性视图,并通过一个处理器(Processor)模型的例子来阐述具体步骤。 1. **属性视图的概述** - 属性视图用于展示图形模型的相关属性,如处理器的温度、IP地址和类型等。 - 当图形...

    RCP 视图显示GEF图

    用视图显示在GEF编辑器编辑好的图形 在视图里加入GraphicalViewer viewer = new ScrollingGraphicalViewer(); viewer.createControl(parent);

    GEF入门学习例子

    在GEF中,可以通过自定义小部件并集成到视图中来实现这一功能。 7. **文件名称列表**: `gef.tutorial.step2`可能代表了一个逐步教程的第二步,通常包含了一些示例代码和配置文件,用于演示上述概念的实现。 学习这...

    GEF中文教程+代码

    在本教程中,我们将深入探讨GEF的基本概念、设计原则以及如何使用它来开发自己的图形编辑器。 **1. GEF简介** GEF的设计目标是将图形编辑器的实现细节抽象化,让开发者能够专注于业务逻辑和模型设计,而不是底层的...

    GEF_Demo_Code20170307

    这个项目旨在演示如何利用GEF进行图形界面开发,并且特别关注了通过适配器(Adapter)扩展点来实现属性页配置以及在非Editor的ViewPart中使用GEF。 GEF是Eclipse平台下的一个开源库,专门用于构建可自定义的、图形...

    GEF中文帮助实例

    在GEF中,模型是数据结构的抽象,用于存储和管理图形化编辑器所显示的信息。开发者需要定义自己的模型类,这些类通常继承自GEF提供的基础类,如`org.eclipse.gef.mvc.models.Model`。模型类中的属性和方法反映了图形...

    Eclipse的GEF学习

    在GEF中,模型需具备变化通知机制,以便于及时更新控制器和视图。通常,模型的设计应紧密贴合业务逻辑,以确保数据的准确性和完整性。 2. **控制器(Control)**:控制器,即EditPart,是GEF的核心部件,负责处理模型...

    GEF 入门版中文教程 源码

    在GEF中,模型通常由EMF(Eclipse Modeling Framework)来定义和管理,可以将业务逻辑和视图分离。 2. **视图(View)**:视图是模型的可视化表示,它将模型数据呈现为用户界面。GEF提供了基础框架来实现这一转换,...

    GEF_Tutorial.rar(GEF开发指南)

    在GEF中,你需要首先定义你的数据模型,这可能涉及使用EMF(Eclipse Modeling Framework)来创建Ecore模型。Ecore模型是元模型的一种表示,可以用于生成Java类,这些类将成为你的数据模型的基础。 **4. 实现图元和...

    [翻译]Eclipse图形化编辑框架(GEF)/更新第7章:层和视图

    在本篇博文中,我们将深入探讨GEF中的“层”和“视图”这两个核心概念。 **层的概念** 在GEF中,“层”是一个重要的组织机制,用于管理图形元素的绘制顺序和交互行为。层允许开发者将图形元素分组,每个组在一个...

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

    在gef中,转折线的实现涉及到PathFigure和Segment类的使用。PathFigure用于定义一个图形的轮廓,而Segment则代表了轮廓中的一段线段。通过添加和调整Segment实例,我们可以构建出具有转折点的线条。 实现gef转折线...

    IBM GEF 推广资料

    通过这个深入的教程,参与者不仅可以学习到GEF的基本用法,还能了解如何在实际项目中规划和应用GEF,从而提升开发高效图形编辑工具的能力。无论是新手还是有一定经验的开发者,都能从中受益。如果你有关于GEF的计划...

    GEF锚点鼠标定位

    在GEF中,锚点的定位直接影响到连接线的形状和行为,特别是当用户通过鼠标进行交互时。"GEF锚点鼠标定位"这个主题主要探讨的是如何使锚点跟随鼠标移动,从而提供更加灵活和直观的用户操作体验。 1. **GEF框架基础**...

    GEF入门实例代码2《Eclipse插件开发》中实例

    此外,理解MVC(模型-视图-控制器)模式和MVC在GEF中的应用对于提升开发效率至关重要。 总之,通过这个"GEF入门实例代码2",开发者可以了解到如何在Eclipse中构建一个基于GEF的图形编辑器,这不仅涉及数据模型的...

    GEF-SDK-3.6.2 jar

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

    GEF的Eclipse官方示例(源代码)

    GEF中的视图由Part类实现,它可以包含多个图层,每个图层由Figure类表示,负责绘制图形元素。 3. **编辑域(Edit Domain)**:编辑域是GEF应用的顶级容器,管理着所有的编辑器实例。它提供了全局的服务,如撤销/...

    java gef开发实例

    3. **MVC在GEF中的应用**: - **模型**:可以是一个自定义的Java类,包含业务数据,不直接与视图或控制器交互。 - **视图**:通过创建和管理Figures来展示模型,当模型改变时,自动更新视图。 - **控制器**:通过...

    GEF 入门操作

    在GEF中,模型和视图是独立的实体,它们之间的通信通过控制器进行。这种设计减少了模型与视图间的直接联系,但也意味着控制器需要处理更多的交互逻辑。GEF通过请求(Request)和编辑策略(Edit Policies)以及命令...

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

    GEF插件开发涉及创建模型、视图和控制器(MVC)组件,其中模型定义数据结构,视图负责显示,而控制器处理用户的交互。开发者需要理解Eclipse插件开发的基本流程,包括创建插件项目、定义扩展点、编写实现类等步骤。 ...

    GEF 入门教程 中文版

    - 图形编辑部件是GEF中的基本单位,它将模型元素映射到视图上。 - 每个模型元素都有一个对应的图形编辑部件,它们负责绘制图形元素,并处理用户交互。 #### 五、撤销/重做功能 **知识点1:撤销/重做机制** - GEF...

Global site tag (gtag.js) - Google Analytics