右击菜单

GMF之Shapes实例Part5:使用扩展点为指定类型结点添加右击菜单并改变图片

こ雲淡風輕ζ 提交于 2019-12-10 17:39:28
在Part4中我们为节点添加了右击菜单,但是使用这种方式会给所有节点都添加菜单。如果我们只想给某种类型的结点添加菜单,就要使用扩展点方式了。 1、首先新建一个Action:在工程org.eclipse.myTest.shapes.diagram中的Actions包中新建一个类ChangeImageAction,并使它继承AbstractActionDelegate类并实现接口IObjectActionDelegate,在这个Action中首先选择图片,然后再给指定结点改变图片,其完整代码如下: package org.eclipse.myTest.shapes.diagram.edit.actions; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.emf.transaction.RecordingCommand; import org.eclipse.emf.transaction.TransactionalEditingDomain; import org.eclipse.gmf.runtime.common.ui.action.AbstractActionDelegate; import org.eclipse.jface.viewers.IStructuredSelection;

GMF之Shapes实例Part4:为结点Node设置右击菜单并更换图片

柔情痞子 提交于 2019-12-10 17:39:17
在上一篇文章中,我们实现了为结点设置图片,但是我们还不能修改结点的图片,所有相同类型结点的图片是一样的。 本例首先给结点添加右击菜单,然后实现修改结点图片的功能。 1、修改ReserveShape1EditPart.java的部分代码,把descriptor、originalImage、OrgImageData声明处的static都去掉,否则修改一个结点之后,同类型的其他结点也会改变。 /** * @generated NOT */ private ImageDescriptor descriptor = ShapesDiagramEditorPlugin .findImageDescriptor("icons/custom/ReserveShapeFigure.jpg"); private Image originalImage = descriptor.createImage(); private ImageData OrgImageData = originalImage.getImageData(); 2、在ReserveShape1EditPart类中添加方法如下: /** * @generated NOT */ public void setImageData(String imagePath) { descriptor =