`
defrag_sly
  • 浏览: 130010 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

将gmfeditor结合到mutipage中

阅读更多
http://www.eclipse.org/articles/Article-Integrating-EMF-GMF-Editors/index.html

最近做的一个项目,要求将gmf生成的editor放到,mutipage editor中,实际操作起来就遇到了一些问题,首先是editdomain同步的问题,多页面修改同一模型。如果不共用editdomain就会造成resource修改冲突。其次就是通过扩展点加入menu/action的问题。利用itemcontributor扩展点,在3.3的eclipse版本中是无法加入的,但是在3.4可以不需要任何修改。
再有就是toolbar及全局action的问题,比如redo/undo等需要通过toolbar注册为全局的action不起作用,经过一番调查,查到了上面的网址,上面的网址,加上eclipse3.4主要解决了前面所说的的问题,
editdomain 共用,toolbar 共用,menu/action 通过扩展点贡献。

但是上面的网址,仍然有部分问题没有解决:
muitipage editor中gmf editor部分的delete键并不工作。

结果发现,在gefeditor中有这样一段话
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
// If not the active editor, ignore selection changed.
if (this.equals(getSite().getPage().getActiveEditor()))
updateActions(selectionActions);
}
修改为如下:
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
super.selectionChanged(part, selection);
if (part.equals(getSite().getPage().getActiveEditor()))
updateActions(getSelectionActions());
}
便可以解决了。
虽然不知道为什么做这样的判断?比较遗憾。
不过明白了为什么问题出在这里的原因,
gmf首先将delete action注册为global,然后根据selection的不同来驱动delete是否可以工作。
gmf中所有的action都是diagramaction,



暂记一网址,稍后整理。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics