from:http://www.blogjava.net/hopeshared/archive/2006/07/25/59983.html
使用TreeViewer贡献视图(根据《Eclipse入门到精通》中的例子进行的改编)
作者:李红霞 2005-8-13
本文章允许转载,但请要求注明文章作者及出处
一 创建插件项目
创建一个插件项目example.my.treeview,这个例子将向eclipse贡献一个视图,这个视图采用树(Treeviewer)来实现。
下图是本例的文件清单
二 准备数据模型
首先我们准备数据模型,这些数据模型都保存在exa ...
FROM:http://bbs.buaa.edu.cn/pc/pccon.php?id=35&tid=0&nid=749&s=all
这两天看了一下Eclipse的插件开发,参考的书就是那本著名的Contributing to Eclipse。
把两点体会记录如下:
1、Extension和Extension-point
Extension和Extension-point是相互关联的,由Extension-point定义插件具备的扩展点并且定义了如何使用这些扩展点(由Schema中定义),而Extension则是根据扩展点中定义的Schema来 ...
FROM:http://wjj-tt.spaces.live.com/blog/
扩展(Extension)是Eclipse中一个关键的机制,plug-in利用扩展向Eclipse平台添加新功能。但是扩展不能随意地创建,必须按照扩展点(extension point)定义的规范进行明确的声明,Eclipse才能认出这些扩展。我们不仅可以使用Eclipse提供的众多现成的扩展点,而且还可以定义新的扩展点,并在该扩展点上进行扩展。
当然,扩展点的定义比较复杂。不过Eclipse为用户提供了图形化的编辑界面,我们只要输入一些信息,Eclipse就会自动生成代码,使扩展点的定义变得非 ...
集体照
骑行队伍
金山石化
在路上
飞驰中的GAINT
在路上
前进中
金山海滩
午餐、酸菜鱼
金山·海滨公园
·如何设置两个plugin工程之间的依赖关系,必须在被依赖方project的mainfest里面的exprot package设置要给依赖方可用的package,在依赖方的dependency里面要设置被依赖的project名
·两个plugin工程,a依赖b,a在运行时候需要使用jar包中的c类,编译的时候没有,运行时在遇到c的地方报ClassNotFoundException异常,这个可能的原因就是在b工程的manifest文件的runtime->classpath没有把依赖的所有jar包加进来。
·我有两个工程a,b,b依赖a,同时a和 ...
一般我们在对EMF模型内容进行输出,这里需要进行一些定制,下面是我在项目中做的一些定制,第一个是要将EMF Model输出的xml中去掉一些名称空间的信息,第二个就是希望把某些信息由Attribute类型转换成Content类型,在得到的content类型的内容默认情况下会对<, >, &等字符进行转换,这个也可以进行控制。借鉴EMF开发指南的做法,其实很简单,这里要注意save和load使用的控制选项设置必须一致。
具体做法如下,
因为保存和加载xml是在XMLResourceImpl里面进行的,所以我们需要从该类继承,overriding 相应的load和save方 ...
·在采用Dynamic EMF方式生成EMF model的时候,使用EFactory创建的EClass一定要加到EPackage中去,否则在创建EObject的时候会出错
·在使用JFace Text Editor的时候,必须加入org.eclipse.ui.workbench.texteditor依赖,否则会报StatusTextEditor找不到的异常
·对于需要添加SelectionListener来说,一般都是从SelectionAdapter来继承创建自己的Listener,而不是从ISelectionListener实现
&m ...
最近开发中碰到要在EMF中对某个模型的内容放到JFace Text Editor中去编辑,于是把Text Editor研究了一番,发现其默认的实现是基于文件的,而我希望对一段字符串进行编辑,看了半天代码没有找到突破口,曾经想过使用临时文件来处理这个问题,好在eclipse.org上找到一篇文章解决了我们的问题,其做法就是使用IStorageEditerInput 来作为Text Editor的输入。原文如下:
FROM:http://wiki.eclipse.org/index.php/FAQ_How_do_I_open_an_editor_on_something_that_is_not_ ...
FROM:http://www.blogjava.net/hopeshared/archive/2005/12/20/24798.aspx
最近社区里问这个问题的人特别多,所以在这里将自己用到的几个方法写出来。假如以后还有其他的方法,会进行更新。
从插件中获得绝对路径:
java 代码
AaaaPlugin.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath()); &nb ...
当我们的menu item需要根据当前选择不同对象发生动态变化就要注意了,EMF Editor的做法在添加完成之后,将焦点设置到新增的节点上,这样做看似无心,其实是有一定原因的,至少我认为是这样,如果我们增加了一个节点(不管是子节点还是兄弟节点),然后焦点还停留在当前节点上,那么当再增加一个与前一个类型一样的节点时就会失败,其原因在于没有变换焦点,command还是使用前面取得的child作为要添加的节点,而这个节点已经在前面的操作中被作为子节点(或者兄弟节点)添加了,但是如果焦点在新增之后被变换情况就不同了,当需要再添加一个节点的时候,我们必须让焦点回到前面的节点上,这时selection ...
如果使用了多页编辑器的话,就需要用到FormPage和FormEditor这两个东东,用来显示主要内容结构的是位于左边的MasterBlock(基类的名字是MasterDetailsBlock),而选中内容结构上的每一个节点则会更新位于DetailsBlock的相应内容,在MasterDetailsBlock里面我们会用到的是ManagedForm,通过它来创建Section,然后在Section上面创建Client,最后要显示的控件就是放在Client上,这样Eclipse Forms的一般结构就是:FormEditor->FormPage->MaterBlock(Details ...
当使用dynamic emf的方式来生成emf model的时候,只会使用ReflectiveItemProviderAdapterFactory和ReflectiveItemProvider来充当emf.edit部分,这个时候如果需要定制ItemProvider和AdapterFactory的话,需要从这两个类继承,重载相关的方法,例如:
java 代码
List factories = new ArrayList();
factories.add(new  ...
tree.setSelection(tree.getItem(0))和viewer.setSelection(new StructuredSelection(new Object[] { tree.getItem(0).getData() }));之间是有区别的,前者不会触发viewer的selectionChanged事件,后者则会触发,这里还需要注意的是在构造StructuredSelection的时候,传递的参数是item的数据,而不是item,否则触发SelectionChanged事件的时候在event的selection中是没有数据的。
周六五点起床整理完毕7点半到南站,与其他人等碰面,坐子弹头从上海到杭州,9点多整好单车沿太湖,钱塘江,富春江一路南下,经富阳过江,继续沿富春江骑行60余公里到达孙权故里:龙门镇,从侧门免门票直接进去。
周日天气已经大变,下起乐小雨,于是防雨装备全部整上,骑行80余公里返回杭州,晚上9点坐子弹头返回上海,凌晨到家。
总的说来,龙门古镇,孙权故里,值得一去!
孙权故里
龙门古镇
龙门八阵图
牛牛与牛夫人
卫星
富春江边
路上休息
桃花or梅花?
龙门镇
古镇小道
号称羽毛球拍之乡的富阳,古镇几乎家家编球拍
古镇也是《理发师 ...
- 浏览: 264772 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
我的相册
t61 thinkpad
共 143 张
共 143 张
最近加入圈子
链接
最新评论
-
使用Dorado框架开发必备参 ...
哈哈,顶,收藏了啊
-- by liufeikl2008 -
使用Dorado框架开发必备参 ...
谢谢了,收藏啦!!期望更新中
-- by liufeikl2008 -
在云南做项目的日子――20 ...
波xx,咪xx全家..
-- by Diablofrog -
在云南做项目的日子――20 ...
太漂亮了..无法用言语形容了.....
-- by xiaozmn -
jBPM中Timer的使用
引用楼主使用没有发现什么问题吗?为什么我在用的时候,线程启动成功后,倒是执行了, ...
-- by macrochen






评论排行榜