在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层的实现类中的事件处理了
分享到:
相关推荐
emf swt runtime gef
Eclipse-EMF-GEF资料.rar
Eclipse插件开发--gef开发指南与入门系列宝典打包下载。
eclipse-gef-3.6.1-3.el6.i686.rpm
emf-gef-ve.7z
GEF插件解压,放入eclipse安装根目录下对应的文件夹下,重启eclipse
GEF-ALL-3.7 GEF-ALL-3.8 官方包。 GEF Draw2d 学习资料
Pwndbg + GEF + Peda-一劳永逸,一劳永逸 这是一个在单个命令中安装Pwndbg,GEF和Peda GDB插件的脚本。 运行install.sh ,然后使用以下命令之一启动相应的GDB环境: gdb-peda gdb-peda-intel gdb-peda-arm gdb-...
Java web解决方案,学习jsp的必备工具。
目前的最新的GEF,用于eclipse是实现可视化。
GEF-II电场仪使用手册
GEF简易教程-学习GEF的入门教程,不错的gef入门教程
GEF: Graphical Editing Framework <br>GEF是一套MVC Framework,它能帮你比较容易的...依赖:org.eclipse.draw2d*** 本软件GEF-ALL-3.2.2完整版包含(Draw2D, GEF and Zest) 大小:6.6M 请用于Eclipse3.2.2环境下.
emf-sdo-runtime GEF-runtime VE_SDK
java教务系统源码UNR_IPS_AUS_TALLER_PROG_2-JAVA-ProyectosMDIEclipseVE-GEF-EMF-SDO-XSD 一些带有期末考试的源代码文件,以及其他代码,来自公立大学学院的第三职业:“ Analista Universitario en Sistemas”:...
GEF 图形编辑框架,是Eclipse旗下一个重要的插件,用于开发图形界面。这是系列教程源码之三。
gef-binja是一个插件,是为BinaryNinja的gef定义的XML-RPC的服务器端。 它将从您当前的BN会话中生成一个线程化的XMLRPC服务器,从而使gef可以与Binary Ninja进行交互。 YouTube教程 安装 GUI安装 在Binary Ninja中,...
GEF-Update-5.3.3,eclipse4.18离线安装包,eclipse有自带gef,这个是增强包,可以不安装
GEF-SDK,eclipse pulgin
将GEF-ALL-XX.zip解压缩,然后拷贝解压后的eclipse目录下的两个文件夹到 WINDOWS 下你的Eclipse安装目录。 UBuntu下到 usr/lib/eclispe和usr/share/eclipse, Merge合并所有的现有文件夹。