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()来作为排序依据.
分享到:
相关推荐
本文将深入探讨如何在GEF中实现属性视图,并通过一个处理器(Processor)模型的例子来阐述具体步骤。 1. **属性视图的概述** - 属性视图用于展示图形模型的相关属性,如处理器的温度、IP地址和类型等。 - 当图形...
用视图显示在GEF编辑器编辑好的图形 在视图里加入GraphicalViewer viewer = new ScrollingGraphicalViewer(); viewer.createControl(parent);
在GEF中,可以通过自定义小部件并集成到视图中来实现这一功能。 7. **文件名称列表**: `gef.tutorial.step2`可能代表了一个逐步教程的第二步,通常包含了一些示例代码和配置文件,用于演示上述概念的实现。 学习这...
在本教程中,我们将深入探讨GEF的基本概念、设计原则以及如何使用它来开发自己的图形编辑器。 **1. GEF简介** GEF的设计目标是将图形编辑器的实现细节抽象化,让开发者能够专注于业务逻辑和模型设计,而不是底层的...
这个项目旨在演示如何利用GEF进行图形界面开发,并且特别关注了通过适配器(Adapter)扩展点来实现属性页配置以及在非Editor的ViewPart中使用GEF。 GEF是Eclipse平台下的一个开源库,专门用于构建可自定义的、图形...
在GEF中,模型是数据结构的抽象,用于存储和管理图形化编辑器所显示的信息。开发者需要定义自己的模型类,这些类通常继承自GEF提供的基础类,如`org.eclipse.gef.mvc.models.Model`。模型类中的属性和方法反映了图形...
在GEF中,模型需具备变化通知机制,以便于及时更新控制器和视图。通常,模型的设计应紧密贴合业务逻辑,以确保数据的准确性和完整性。 2. **控制器(Control)**:控制器,即EditPart,是GEF的核心部件,负责处理模型...
在GEF中,模型通常由EMF(Eclipse Modeling Framework)来定义和管理,可以将业务逻辑和视图分离。 2. **视图(View)**:视图是模型的可视化表示,它将模型数据呈现为用户界面。GEF提供了基础框架来实现这一转换,...
在GEF中,你需要首先定义你的数据模型,这可能涉及使用EMF(Eclipse Modeling Framework)来创建Ecore模型。Ecore模型是元模型的一种表示,可以用于生成Java类,这些类将成为你的数据模型的基础。 **4. 实现图元和...
在本篇博文中,我们将深入探讨GEF中的“层”和“视图”这两个核心概念。 **层的概念** 在GEF中,“层”是一个重要的组织机制,用于管理图形元素的绘制顺序和交互行为。层允许开发者将图形元素分组,每个组在一个...
在gef中,转折线的实现涉及到PathFigure和Segment类的使用。PathFigure用于定义一个图形的轮廓,而Segment则代表了轮廓中的一段线段。通过添加和调整Segment实例,我们可以构建出具有转折点的线条。 实现gef转折线...
通过这个深入的教程,参与者不仅可以学习到GEF的基本用法,还能了解如何在实际项目中规划和应用GEF,从而提升开发高效图形编辑工具的能力。无论是新手还是有一定经验的开发者,都能从中受益。如果你有关于GEF的计划...
在GEF中,锚点的定位直接影响到连接线的形状和行为,特别是当用户通过鼠标进行交互时。"GEF锚点鼠标定位"这个主题主要探讨的是如何使锚点跟随鼠标移动,从而提供更加灵活和直观的用户操作体验。 1. **GEF框架基础**...
此外,理解MVC(模型-视图-控制器)模式和MVC在GEF中的应用对于提升开发效率至关重要。 总之,通过这个"GEF入门实例代码2",开发者可以了解到如何在Eclipse中构建一个基于GEF的图形编辑器,这不仅涉及数据模型的...
在Android ADT中,GEF的作用主要体现在可视化布局编辑器上,它允许开发者通过拖放的方式设计XML布局文件,实时预览UI效果,以及方便地调整控件的属性和布局关系。此外,GEF还支持图元工厂(MetaFactory),可以生成...
GEF中的视图由Part类实现,它可以包含多个图层,每个图层由Figure类表示,负责绘制图形元素。 3. **编辑域(Edit Domain)**:编辑域是GEF应用的顶级容器,管理着所有的编辑器实例。它提供了全局的服务,如撤销/...
3. **MVC在GEF中的应用**: - **模型**:可以是一个自定义的Java类,包含业务数据,不直接与视图或控制器交互。 - **视图**:通过创建和管理Figures来展示模型,当模型改变时,自动更新视图。 - **控制器**:通过...
在GEF中,模型和视图是独立的实体,它们之间的通信通过控制器进行。这种设计减少了模型与视图间的直接联系,但也意味着控制器需要处理更多的交互逻辑。GEF通过请求(Request)和编辑策略(Edit Policies)以及命令...
GEF插件开发涉及创建模型、视图和控制器(MVC)组件,其中模型定义数据结构,视图负责显示,而控制器处理用户的交互。开发者需要理解Eclipse插件开发的基本流程,包括创建插件项目、定义扩展点、编写实现类等步骤。 ...
- 图形编辑部件是GEF中的基本单位,它将模型元素映射到视图上。 - 每个模型元素都有一个对应的图形编辑部件,它们负责绘制图形元素,并处理用户交互。 #### 五、撤销/重做功能 **知识点1:撤销/重做机制** - GEF...