`
文章列表
根据官方1.9的代码和使用手册画出的几个理解图。 web.xml配置与启动流程 数据库配置 数据库操作
一、GEF简介 GEF(Graphical Editing Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。 GEF的优势是提供了标准的MVC(Model-View-Control)结构,开发人员可以利用GEF来完成以上这些功 ...
一些网站 http://www.ibm.com/developerworks/cn/linux/opensource/os-gef/ http://www.eclipse.org/gef/ http://gdwrx-winson.iteye.com/blog/445668

GEF入门参考

    博客分类:
  • GEF
一些网站 http://www.ibm.com/developerworks/cn/linux/opensource/os-gef/ http://www.eclipse.org/gef/ http://gdwrx-winson.iteye.com/blog/445668
在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 par ...
以eclipse网站上例子A Shape Diagram Editor为例
    org.eclipse.core.resources.builders用于提供一种操作,这种操作可以在IResource改变的时候自动去build,如同改变java文件,会自动进行build,显示错误一样,我们扩展这个builder,并且在自己的项目中使用。我们要做的就是实现build的过程,至于时机由eclipse控制       <extension id="builder的ID" name="builder的NAME" point="org.ecl ...
org.eclipse.ui.decorators这个扩展点可以为对应的节点添加不同的图标显示。 使用方式都差不多,以下就转载一下使用方式: 1、添加扩展点 org.eclipse.ui.decorators 2、修改plugin.xml    <extension          point="org.eclipse.ui.decorators">       <decorator             id="my.ui.decorator"             label="IFolder Decorator& ...
    eclipse插件开发中常使用命令来声明实现一个菜单,具体步骤是:1.声明一个命令;2.创建使用该命令的菜单项;3.创建该命令对应的处理器(handler)。         1.通过org.eclipse.ui.commands扩展点声明一个command,每个command即为一个ui ...
    在eclipse插件开发过程中,需要引入很多的第三方jar包,但经常的会出现一个 NoClassDefFoundError的异常,看起来和ClassNotFoundException非常的类似,应该都为类加载时异常。     在一次开发过程中遇到这个问题,通过网上的一篇文章,我了解了这两个异常的区别:http://blog.csdn.net/lang_m/article/details/552805。     了解了这两个类的区别后,卧稍微总结了一下eclipse插件开发过程中引起NoClassDefFoundError的可能原因。      1.所需要的jar包,配置了在开发过程中配 ...
    适配器模式通常可以适用于:     Adapter pattern可以将以前实现的类包装建出新的类,一旦类出现bug,在确定既有类没bug的情况下,只要重点检查Adapter参与者类,即是已有的类需要符合新建的接口,在不改动原有类的情况下,使用适配器模型来符合该接口(API)。     版本更新与兼容性要求时,也可以考虑适配器模式来兼容Version2与Version1。         模式参与者:     Target:决定现在需要什么方法的参与者,如下例的NoteBookVoltage     Client:利用Target的方法来完成事情,如下例的Main     Adapte ...
    迭代器模式属于行为型模式,提供一种方法顺序访问一个聚合对象中得各个元素,而又不需要关心、暴露该对象的内部实现。     使用迭代器模式来实现一个书架,类图如下:         Aggregate:表示使用迭代器的集合接口(本身创建Iterator)     BookShelf:实现Aggregate接口的书架类,创建对应的Iterator     Iterator:定义访问和遍历元素的接口     BookShelfIterator:具体实现Iterator,对BookShelf进行遍历和跟踪的类
    在开发Eclipse插件开发rcp过程中需要用到很多的事件监听,稍稍的统计一下比较基础的和经常会用到的事件。     SWT/JFACE事件:     1.鼠标事件:MouseListener,MouseMoveListener,MouseTrackListener     2.键盘事件:Keylistener     3.焦点事件:FocusListener     4.组件窗口控制事件:ControlListener     5.选择事件:SelectionListener     6.Viewer的拖拽事件:DragSourceAdapter,ViewerDropAdapter ...
    在第二步中需要有个PluginClassCodeGenerator类,是用来生产插件工程的启动类Activator,在eclipse源码中,也需要依赖向导中保存的一些上下文信息,也需要进行改造,改造后如下。 import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import org.eclipse.core.resources ...
    在第一步完成后,我从pde的向导代码入手看eclipse生成代码的机制,发现经过一些小改造,其实完全可以脱离向导的实现,因为在向导中,eclipse保存一些信息作为创建插件工程的必须项。     有兴趣的话可以看看eclipse的最终实现类:NewProjectCreationOperation,最终调用这类的execute(IProgressMonitor monitor)方法。    经过改造后的类如下: import java.util.ArrayList; import java.util.Set; import java.util.TreeSet; import ...
Global site tag (gtag.js) - Google Analytics