随笔分类 -  Eclipse RCP

摘要:org.eclipse.debug.core.model.ISourceLocator A source locator locates source elements for stack frames. A launch (optionally) specifies a source locato 阅读全文
posted @ 2016-10-28 10:00 荒土 阅读(313) 评论(0) 推荐(0) 编辑
摘要:Eclipse debug文档翻译 运行一个程序需要添加launch configurable,在自定义launch configuration的时候会指定模式,比如run,debug,profile等等。如果定义的是debug模式,则需要实现debug模型和UI,这样用户就可以在debug下与后台 阅读全文
posted @ 2016-03-04 15:48 荒土 阅读(1707) 评论(0) 推荐(0) 编辑
摘要:自己扩展CNF之后,导航栏的删除、复制、黏贴等快捷键失效了,在网上搜索了半天,结果最终不如自己看源码。本篇文章的主要目的不止于解决快捷键失效,更在于如何处理类似的问题,如何利用debug快速定位。这种解决问题的思路能帮助我们更加理解他人的代码,快速熟悉一套陌生的框架。1、理解问题的本质,为什么按键不... 阅读全文
posted @ 2015-06-24 11:36 荒土 阅读(1215) 评论(0) 推荐(0) 编辑
摘要:导航器视图按下“Delete”的时候,会触发删除节点的操作。如果失效,按以下步骤检查:1、在要删除的节点上点击右键,确定删除操作是否生效。如果没有生效,则按下列位置 a)检查navigator扩展配置,是否有提供ActionProvider? b)检查ActionProvider,是否有对Del... 阅读全文
posted @ 2014-09-02 13:37 荒土 阅读(495) 评论(0) 推荐(0) 编辑
摘要:本路由继承自AbstactRouter,参数只有EditPart(编辑器内容控制器),gridLength(寻路用单元格大小),style(FLOYD,FLOYD_FLAT,FOUR_DIR)。字符集编码为GBK,本文只做简单的代码解析,源码戳我如果源码不全,可以联系本人。算法实现主要有三:1、As... 阅读全文
posted @ 2014-06-12 11:07 荒土 阅读(2774) 评论(0) 推荐(2) 编辑
摘要:org.eclipse.equinox.security.storage.StorageException: Unable to locate secure storage module该异常同样是由于swt x86 x64版本匹配造成的。如果是使用eclipse的时候出现的该问题,解决方案:1、重... 阅读全文
posted @ 2014-04-19 10:25 荒土 阅读(955) 评论(0) 推荐(0) 编辑
摘要:SWT中的拖拽是使用的org.eclipse.swt.dnd。有三个需要密切注意的类:1、DragSource2、DropTarget3、TransferDragSource封装了需要被拖拽的ControlDropTarget封装了拖拽的目标Control,即是拖拽终点的容器Transfer是一个转换器,用于Java表示和平台指定的数据之间的相互转换根据以上,我们可以揣测:1、只有被DragSource封装了的Control对象才能被拖拽2、只有被DropTarget封装了的Control对象才能被放置拖拽对象3、同一次操作中,DragSource和DropTarget所定义的Transfer 阅读全文
posted @ 2014-03-14 15:46 荒土 阅读(5002) 评论(0) 推荐(1) 编辑
摘要:可以参考Eclipse的Help->Help Content下的:Platform Plug-in Developer Guide > Programmer's Guide > Plugging into the workbench > Basic workbench extension points using actions为了给Project Explorer的上下文菜单的new子菜单中添加一个新项目,我们使用到了org.eclipse.ui.popupMenus扩展点。定义如下: 需要注意的项目有:1、viewerCont... 阅读全文
posted @ 2014-03-10 17:43 荒土 阅读(1793) 评论(0) 推荐(1) 编辑
摘要:eclipse的菜单menu、工具栏toolbar乃至视图的上下文菜单contextmenu都是使用Action或Command实现的。Action即是org.eclipse.jface.action.IActionCommand即是org.eclipse.core.commands.Command从它们的包名可以看出,Action是UI相关的,除了可执行代码(run方法)以外,还会包含一些UI信息,比如动作名称(Label),描述图片(Image)等等。而Command则完全是业务代码,它更关注于操作本身,(在编辑器中,一系列被执行了的命令会进入命令栈,以此为依据来实现redo和undo功能 阅读全文
posted @ 2014-03-07 15:06 荒土 阅读(4399) 评论(9) 推荐(2) 编辑
摘要:如果没有发现编译期异常(就是导航栏项目上有红叉,红感叹号),那么Activator X for bundle Y is invalid和Activator not found这两个异常通常发生在eclipse3.6以及更老的RCP版本中。未找到的原因是插件工程的build.properties文件下的bin.includes属性未包含“.”位置。我们知道,build.properties文件是构建配置,它的属性最后会被添加到classpath中,如果没有添加".",则不会从“当前位置”查找类。于是,要么类无法找到,要么equinox认为该bundle没有该Activator 阅读全文
posted @ 2013-10-24 12:01 荒土 阅读(1396) 评论(1) 推荐(1) 编辑
摘要:1、创建product Configuration,这个是产品的配置文件,声明了要导出的RCP产品的形式,有无启动器,需要的插件,启动参数,名称,加载图片,splash等等。2、实现两个扩展点3、product文件Overview位置配置产品的ID、版本,启动product、application等信息4、Dependcies位置配置依赖的插件5、Configuration位置配置插件和启动级别,以及指定config.ini配置文件信息(能根据不同的系统指定)6、Lauching位置,配置启动器以及exe图标,程序参数和虚拟机参数7、Splash位置指定splash的图片和格式8、Brandi 阅读全文
posted @ 2013-04-15 12:02 荒土 阅读(4865) 评论(0) 推荐(0) 编辑
摘要:原文链接:OSGi组件依赖 OSGi doesn’t allow you to specify class visibility at the class level, but instead at the level of the containing package.1. The header:Export-Package and The directives for the Export-Package header 当指定一个package export,默认的它的subpackage是没有exportde,需特别指定。 Directives for the Export-Packa. 阅读全文
posted @ 2013-04-11 15:55 荒土 阅读(1641) 评论(0) 推荐(0) 编辑
摘要:今天遇到个问题,Eclipse在Splash启动阶段对多线程的支持有点不同。根据某人的见解,org.eclipse.ui.internal.StartupThreading 可以解决这个问题我看了一眼Eclipse自己的Splash实现是这样的: private void updateUI(final Runnable r) { Shell splashShell = getSplash(); if (splashShell == null || splashShell.isDisposed()) return; ... 阅读全文
posted @ 2013-01-08 10:49 荒土 阅读(1456) 评论(0) 推荐(0) 编辑
摘要:我们使用eclipse的java编辑器的时候,会经常用到alt+/触发的自动代码补全这个并不仅仅是SWT/JFACE框架下的内容更是属于eclipse先说明一下这个概念,现在的eclipse是基于osgi框架的,osgi是一个可热插拔的以bundle为基本元素的灵活管理规范。eclipse提供了一个osgi规范的实现叫做equinox,eclipse的插件(plugin)即是bundle。swt/jface则是用于构建eclipse的UI框架。但是,你所说的这个问题,其实看下eclipse的编辑器如何实现的就能明白了。去官网下载一个eclipse for rcp含源码版本,即可看到代码提示是怎 阅读全文
posted @ 2012-12-24 11:23 荒土 阅读(1685) 评论(0) 推荐(0) 编辑
摘要:重写WorkbenchPage的必要性在哪里?比如有一个需求,比如屏蔽编辑器的关闭功能,或者把关闭编辑器按钮的实际功能转为隐藏编辑器前一个功能还可以通过重写一系列的类来完成,后面这个功能几乎是无法完成的。我们可以通过扩展org.eclipse.ui.internalTweaklets来完成我们来看WorkbenchPage的初始化是怎样的:/******************************************************************************* * Copyright (c) 2008 IBM Corporation and others. 阅读全文
posted @ 2012-11-06 18:01 荒土 阅读(1093) 评论(0) 推荐(0) 编辑
摘要:早前的时候写了一篇《在插件里应用hsqldb和hibernate》但是之前的方法只适用于equinox环境,并不能算是hibernate和osgi的完整整合,昨天终于完成了felix+hibernate的整合方式,现做一个完整记录。源码地址如下:SVN:http://ext-eclipse.googlecode.com/svn位置在trunck/mos下,主要是三个maven project: mos.hibernate,mos.hibernate.extender,mos.hibernate.manager还有一个demo: mos.hibernate.demo,该插件并不完善,只提供了基本 阅读全文
posted @ 2012-10-16 11:50 荒土 阅读(4537) 评论(0) 推荐(2) 编辑
摘要:GEF编辑器遵循MVC模式。在这里Controller既是org.eclipse.gef.EditPart。它的行为是可以被一系列的策略(org.eclipse.gef.EditPolicy)确定的,见AbstractEditPolicy的方法: /** * Creates the initial EditPolicies and/or reserves slots for dynamic ones. * Should be implemented to install the inital EditPolicies based on the * model's ... 阅读全文
posted @ 2012-08-23 10:26 荒土 阅读(2479) 评论(2) 推荐(0) 编辑
摘要:创建一个SWT的Table,可以通过自己控制Table、TableColumn以及TableItem来实现这里不详述,更好的方式则是使用jface的TableViewer来实现MVC表格。首先我们要准备Model,如:View Code public class BTDColumn { public final static String KEY_NAME = "Name"; public final static String KEY_DESC = "Desc"; public final static String KEY_TYPE = " 阅读全文
posted @ 2012-07-13 14:47 荒土 阅读(7841) 评论(11) 推荐(0) 编辑
摘要:Eclipse有自己的一套ClassLoader机制比如OSGI Bundle是符合OSGI规范的同时,它还有一些额外的和Bundle机制不冲突的ClassLoader机制比如Buddy假设一下情况存在:1、插件A需要被插件B依赖2、插件A需要插件B的某些信息(类,资源)3、插件A需要在本地ClassLoader中获得,而非通过Bundle获得(这是可能由于使用了某些依赖反射的第三方包)我选择使用Buddy。-----------------------------------------------自言自语的分割线--------------------------------------- 阅读全文
posted @ 2012-05-29 10:14 荒土 阅读(1742) 评论(0) 推荐(1) 编辑
摘要:Bundle StateDescriptionINSTALLEDThe bundle has been successfully installed.RESOLVEDAll Java classes that the bundle needs are available. This state indicates that the bundle is either ready to be started or has stopped.STARTINGThe bundle is being started, theBundleActivator.startmethod will be calle 阅读全文
posted @ 2012-05-25 11:07 荒土 阅读(479) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示