- 博客(23)
- 收藏
- 关注
原创 JFinal学习
根据官方1.9的代码和使用手册画出的几个理解图。[img]http://dl2.iteye.com/upload/attachment/0107/5372/48e5a3f9-0271-37d3-8992-1cd39ca880d8.png[/img][align=center]web.xml配置与启动流程[/align][img]http://dl2.iteye.com/...
2015-04-13 18:23:05
106
原创 GEF简介与事件机制
一、GEF简介 GEF(Graphical Editing Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。 GEF的优势是提供了标准的MVC(Model-View-Control)结构,开发人员可以利用GEF来完成以上这些功能,而不需要自己重新设计。与其他一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖...
2014-08-07 09:56:59
1382
原创 GEF入门参考
一些网站http://www.ibm.com/developerworks/cn/linux/opensource/os-gef/http://www.eclipse.org/gef/http://gdwrx-winson.iteye.com/blog/445668
2014-08-07 09:37:31
138
原创 GEF入门参考
一些网站http://www.ibm.com/developerworks/cn/linux/opensource/os-gef/http://www.eclipse.org/gef/http://gdwrx-winson.iteye.com/blog/445668
2014-08-07 09:36:52
133
SWT-GEF事件转义相关类
在Draw2d中,Lightweight是gef图形系统的”shell”及”display”,其在swt中的代理是canvas,所以所有的GEF的事件来源于这个canvas,下面就看下gef事件处理的流程,首先肯定要监听canvas的事件,这个通过LightweightSystem的addListeners函数注册其内的canvas的各种事件监听器。1.SWT层事件监听器安装:Cl...
2014-08-07 09:35:31
319
原创 GEF中Editor创建的时序图
以eclipse网站上例子A Shape Diagram Editor为例[img]http://dl2.iteye.com/upload/attachment/0099/9265/9147f34e-6225-38dd-a04c-69ec65c2da85.gif[/img][img]http://dl2.iteye.com/upload/attachment/0099/9267/d...
2014-08-07 09:33:26
150
原创 org.eclipse.core.resources.builders扩展点-转载
org.eclipse.core.resources.builders用于提供一种操作,这种操作可以在IResource改变的时候自动去build,如同改变java文件,会自动进行build,显示错误一样,我们扩展这个builder,并且在自己的项目中使用。我们要做的就是实现build的过程,至于时机由eclipse控制 [code="xml"] ...
2013-10-12 14:28:50
177
原创 org.eclipse.ui.decorators 使用(转)
org.eclipse.ui.decorators这个扩展点可以为对应的节点添加不同的图标显示。 使用方式都差不多,以下就转载一下使用方式:1、添加扩展点 org.eclipse.ui.decorators2、修改plugin.xml 添加扩展点后,xml里...
2013-10-12 14:24:37
218
原创 org.eclipse.ui.menus扩展点
eclipse插件开发中常使用命令来声明实现一个菜单,具体步骤是:1.声明一个命令;2.创建使用该命令的菜单项;3.创建该命令对应的处理器(handler)。 1.通过org.eclipse.ui.commands扩展点声明一个command,每个command即为一个ui功能点的声明。 声明一个category来管理自己建的commands: i...
2013-06-06 11:17:50
475
1
原创 Eclipse开发中的 NoClassDefFoundError
在eclipse插件开发过程中,需要引入很多的第三方jar包,但经常的会出现一个 NoClassDefFoundError的异常,看起来和ClassNotFoundException非常的类似,应该都为类加载时异常。 在一次开发过程中遇到这个问题,通过网上的一篇文章,我了解了这两个异常的区别:http://blog.csdn.net/lang_m/article/details/...
2013-03-26 16:18:04
512
原创 适配器(Adapter)
适配器模式通常可以适用于: Adapter pattern可以将以前实现的类包装建出新的类,一旦类出现bug,在确定既有类没bug的情况下,只要重点检查Adapter参与者类,即是已有的类需要符合新建的接口,在不改动原有类的情况下,使用适配器模型来符合该接口(API)。 版本更新与兼容性要求时,也可以考虑适配器模式来兼容Version2与Version1。 ...
2013-01-21 15:38:01
110
原创 迭代器(Iterator)
迭代器模式属于行为型模式,提供一种方法顺序访问一个聚合对象中得各个元素,而又不需要关心、暴露该对象的内部实现。 使用迭代器模式来实现一个书架,类图如下: [img]http://dl.iteye.com/upload/attachment/0079/4930/a3468da6-c5e1-3a6b-873f-7d48bcbb583d.jpg[/img] Ag...
2013-01-18 17:41:49
90
原创 Eclipse事件与通讯
在开发Eclipse插件开发rcp过程中需要用到很多的事件监听,稍稍的统计一下比较基础的和经常会用到的事件。 SWT/JFACE事件: 1.鼠标事件:MouseListener,MouseMoveListener,MouseTrackListener 2.键盘事件:Keylistener 3.焦点事件:FocusListener 4.组件窗...
2013-01-18 15:58:55
269
原创 使用代码生成插件工程,脱离eclipse本身的新建工程向导(3)
在第二步中需要有个PluginClassCodeGenerator类,是用来生产插件工程的启动类Activator,在eclipse源码中,也需要依赖向导中保存的一些上下文信息,也需要进行改造,改造后如下。[code="java"]import java.io.ByteArrayInputStream;import java.io.IOException;import ...
2012-11-22 10:58:04
120
原创 使用代码生成插件工程,脱离eclipse本身的新建工程向导(2)
在第一步完成后,我从pde的向导代码入手看eclipse生成代码的机制,发现经过一些小改造,其实完全可以脱离向导的实现,因为在向导中,eclipse保存一些信息作为创建插件工程的必须项。 有兴趣的话可以看看eclipse的最终实现类:NewProjectCreationOperation,最终调用这类的execute(IProgressMonitor monitor)方法。 ...
2012-11-22 10:52:47
163
原创 使用代码生成插件工程,脱离eclipse本身的新建工程向导(1)
第一步,新建一个普通的Java工程。在网上,我找到了网友们的实现,经过测试是能正常使用的。[code="java"]import java.util.ArrayList;import java.util.Arrays;import java.util.List;import org.eclipse.core.resources.ICommand;import o...
2012-11-22 10:43:26
136
原创 HelloStruts2
很久没进行web开发,感觉快要忘光了,重拾起快遗忘的记忆,从struts2基础学起。 第一步,当然是从官网下载最新的struts2,地址http://struts.apache.org/,我习惯下载-all.zip,解压,准备开始第一个struts2。 第二步,打开MyEclipse,我用的是MyEclipse10,新建一个Dynamic web project工程...
2012-11-09 16:48:28
91
原创 线程安全的单例类
单例模式中,有两种实现,一种是饥饿模式,另一种是懒汉模式。 饥饿模式的实现:[code="java"]public final class EagerSingleton { private static EagerSingleton instance = new EagerSingleton(); private Ea...
2012-11-08 14:17:11
103
原创 使用当前系统编辑器打开文件
在使用eclipse过程中,我们可以通过导航器右键菜单中的open with System editor命令让调用系统(如windows,linux)自身已有的程序打开一个文件资源;通过跟踪代码发现首先运行了OpenWithMenu的openEditor方法,然后再调用WorkbenchPage的openEditor方法等等,层次很深,而最终应该是调用了SWT中的Program类的laun...
2012-10-09 14:46:27
399
原创 从handler中获取全局状态
当运用eclipse扩展点handler来使用command的时候,有时我们需要获取得到上下文信息,其实在org.eclipse.core.commands.IHandler这个接口中定义的execute(ExecutionEvent event)方法里面,我们可以从event这个参数获取得到全局状态(随上下文信息改变)。 我们可以通过继承org.eclipse.core.com...
2012-09-27 15:16:18
230
原创 过滤第三方插件扩展点
在开发rcp过程中,不可避免的需要加入第三方插件,与此同时会引入很多我们不想要的扩展点,不改动源码包的情况下我们可以选择用代码的方式过滤不想要的扩展点。 我们可以在我们定义的WorkbenchWindowAdvisor的postWindowStart()方法中对这些第三方扩展点进行过滤。 第一种情况,过滤主菜单、工具栏。eclipse机制中的IWorkbenchWi...
2012-09-26 09:57:42
130
原创 插件开发基础类(转载)
1..IWorkbench:workbench是eclipse用户界面中最底层的对象,它建立在Display之上,包含一个或多个IWorkbenchWindow,用于向终端用户呈现信息当你的workbench插件被激活的时候,eclipse平台将为之创建一个实例,在平台的整个生命周期中,只允许出现该workbench的唯一实例2..IWorkbenchWindow在...
2012-09-25 16:36:54
80
原创 获取需要平台的信息
开发rcp程序的时候,需要获取许多平台和编辑器的相关信息。 /** * 获取当前活动的IWorkbenchPage * * @return */ public static IWorkbenchPage getActivePage() { return PlatformUI.getWorkbench().getActiveWorkbenchWindow() .g...
2012-09-25 16:16:18
138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人