在Draw2d中,Lightweight是gef图形系统的”shell”及”display”,其在swt中的代理是canvas,所以所有的GEF的事件来源于这个canvas,下面就看下gef事件处理的流程,首先肯定要监听canvas的事件,这个通过LightweightSystem的addListeners函数注册其内的canvas的各种事件监听器。
1.SWT层事件监听器安装:
Class ScrollingGraphicalViewer. createControl(Composite parent)
Class FigureCanvas(int style, Composite parent, LightweightSystem lws)-> lws.setControl(this);
Class LightweightSystem. setControl(Canvas c)-> addListeners();
getEventDispatcher()
protected class EventHandler
handleEvent(Event event)
2. LightweightSystem层消息分发器安装:
class GraphicalEditor. createGraphicalViewer(Composite parent). setGraphicalViewer(viewer);
class EditDomain. addViewer(EditPartViewer viewer): viewer.setEditDomain(this);
class GraphicalViewer. setEditDomain(EditDomain domain):
getLightweightSystem()
.setEventDispatcher(eventDispatcher = new DomainEventDispatcher(domain, this));
class LightweightSystem.setEventDispatcher(EventDispatcher dispatcher) ;
3. LightweightSystem消息分发器处理流程:
以键盘消息为例
class EventDispatcher.dispatchMousePressed(org.eclipse.swt.events.MouseEvent me)-> domain.mouseDown(me, viewer);
class Editdomain
public void mouseDown(MouseEvent mouseEvent, EditPartViewer viewer) {
Tool tool = getActiveTool();
if (tool != null)
tool.mouseDown(mouseEvent, viewer);
}
之后就是具体的Tool层的实现类中的事件处理了
分享到:
相关推荐
4. **事件驱动**:SWT采用事件驱动模型,通过监听用户的交互动作,如鼠标点击、键盘输入等,来触发相应的处理逻辑。 5. **跨平台**:尽管SWT主要是为了在Windows上提供优秀的用户体验,但它也支持其他操作系统,如...
EMF (Eclipse Modeling Framework), SWT (Standard Widget Toolkit), 和 GEF (Graphical Editing Framework) 是Java开发中用于构建图形用户界面和模型驱动应用程序的重要工具和技术。这些组件都是Eclipse项目的一...
【标题】"eclipse-jsp插件-GEF-ALL-3.10.0" 涉及的是一个用于Eclipse集成开发环境的插件,主要为图形编辑框架(Graphical Editing Framework,简称GEF)。这个插件是GEF的全集版本,版本号为3.10.0,意味着它包含了...
GEF 提供了一套组件和设计模式,使得开发者能够专注于业务逻辑,而无需关注底层的绘图和事件处理细节。 5. **Eclipse技巧.rar** 和 **Eclipse Development using the GEF and the EMF-src.zip**: 这两个文件可能...
Pwndbg + GEF + Peda-一劳永逸,一劳永逸 这是一个在单个命令中安装Pwndbg,GEF和Peda GDB插件的脚本。 运行install.sh ,然后使用以下命令之一启动相应的GDB环境: gdb-peda gdb-peda-intel gdb-peda-arm gdb-...
eclipse-gef-3.6.1-3.el6.i686.rpm
标题“emf-gef-ve.7z”和描述中的信息看似简洁,但实际上涉及了几个重要的IT技术领域,包括EMF(Eclipse Modeling Framework)、GEF(Graphical Editing Framework)和VE(Visual Editor)。这些是Java开发中用于...
【标题】"lomboz-emf-gef-jem-3.1RC2.zip" 提供的是一个集成开发环境,主要用于Java Web应用的开发,特别是针对JSP(Java Server Pages)的学习和实践。这个压缩包中包含的核心组件是Lomboz、EMF(Eclipse Modeling ...
本指南将深入探讨Eclipse插件开发中的GEF框架,帮助开发者快速入门并掌握相关知识。 首先,让我们理解Eclipse插件开发的基本概念。Eclipse采用插件化架构,每个功能模块都是一个独立的插件,这些插件通过OSGi(Open...
【GEF-ALL-3.7+GEF-ALL-3.8+GEF_Draw2d学习资料】是一份综合性的资源包,包含了GEF(Graphical Editing Framework)的3.7和3.8版本以及与其相关的Draw2D库的学习材料。GEF是Eclipse平台上用于构建图形化编辑器框架的...
在这个"GEF-Update-3.7.1.zip"压缩包中,包含了以下关键文件: 1. **content.jar**:这是一个包含GEF库核心内容的Java档案文件,里面封装了GEF框架的核心类和接口,以及相关的资源和配置。开发者可以通过导入这个...
GEF-II地电场仪是一种专门用于测量地球表面地电场的设备,主要观测地球内部自然电场以及外部非人工电流体系与地球介质相互作用产生的电场。本手册详细介绍了该仪器的使用方法、技术指标、组成部分以及故障排除等,为...
- VE 是基于 GEF 的一个可视化 Java 开发工具,它提供了一个直观的图形化界面,用于创建和修改 Java Swing 和 SWT 用户界面。 - VE 1.2.1 版本与 GEF 3.2.1 结合,可以实现对 Eclipse 3.2.1 的良好支持,帮助开发者...
**gef-st**可能是指GEF的特定子集或特定主题,比如“gef-st”可能代表“结构”或“状态”,意味着这部分教程可能专注于处理图形编辑器的结构组织或状态管理。 在提供的压缩文件中,`www.pudn.com.txt`可能是一个...
### GEF简易教程知识点详解 #### 一、GEF简介与环境配置 **GEF**,全称为**Graphical Editing Framework**,是Eclipse平台上用于创建复杂图形编辑器的框架。它提供了一套完整的工具集,使开发者能够构建具有图形化...
- **创建GraphicalEditor类**:继承自`org.eclipse.gef.ui.parts.GraphicalEditor`,用于定义自己的图形编辑器。 - **定义EditDomain**:通过构造函数设置编辑域(`EditDomain`),它是处理图形编辑命令的核心组件。 -...
在标题"GEF-whole-upload.rar_GEF-whole-upload _gef_gef whole upload_whol"中,我们可以看出这是关于GEF的完整上传资源,可能包含一系列教程或案例,帮助学习者全面了解和掌握GEF的使用。"gef"和"gef whole upload...
这个压缩包`GEF-ALL-3.2.zip`包含了GEF的3.2版本及其后续的3.6.2版本的相关资源,对于想要学习和使用GEF来开发图形化应用的程序员来说是一份宝贵的学习材料。 **GEF 3.2** 版本是GEF框架的一个早期稳定版本,它提供...
根据提供的文档内容,本文将详细解释“GEF-whole-upload.pdf”中提到的关键知识点,包括RCP项目的建立、在RCP中显示Editor以及GEF的基本结构。 ### GEF概述及应用 GEF(Graphical Editing Framework)是Eclipse...
而"GEF-runtime-3.2.2.zip"和"GEF-ALL-3.2.2.zip"则分别包含了GEF的运行时组件和所有组件,用于在Eclipse环境中支持图形化编辑功能。 在安装Lomboz 3.2时,这四个插件(包括未列出的其他两个插件)都是必不可少的,...