将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,



暂记一网址,稍后整理。

你可能感兴趣的:(eclipse,html,工作)