天天看点

GEF入手系列1

现在开始系统的学习GEF,所以想把学习过程中的一些东西记下来,方便以后自己查阅,也方便别人共同学习。很多东西都是从别人那直接拷到这的,在这里先谢谢了。

一、需要依赖的两个包:

      org.eclipse.gef     org.eclipse.ui.views

二、创建Editor

创建编辑器的扩展点

GEF入手系列1

GraphicalEditor是根类。我们的Editor可以直接实现这个类;如果想带有调色板,则至少需要继承GraphicalEditorWithPalette;如果还想调色板可收缩,则可继承GraphicalEditorWithFlyoutPalette。

编辑器一般要设置一个唯一的ID来表示这个编辑器:

public static final String ID = "tutogef.mygraphicaleditor";
           

三、添加EditDomain

  在每个GEF的Editor里,都需要有一个EditDomain的存在

  编辑域是一个起到管理作用的类,它绑定了一个编辑器、若干个查看器和若干个工具。因此它定义了真实的编辑器。编辑域还提供一个命令堆栈,用来保存所有执行过的命令,有两点好处:1.可实现重做和不做的操作2.可查看模型是否被改动。

 一般来说在编辑器的构造方法里设置即可,如下代码:

public MyGraphicEditor(){
		setEditDomain(new DefaultEditDomain(this));
	}
           

四、实现IEditorInput接口

    每一个编辑器都应该有相应的输入,这个类的作用估计也是这样。。具体是不是以后再修正。

五、默认情况下打开一个编辑器窗口

    想让程序一运行后就打开一个编辑器窗口,应该在类ApplicationWorkbenchAdvisor中重写postStartup()方法,具体如下:

public void postStartup() {

		try {
			IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
			page.openEditor(new MyEditorInput("TutoGEF"), MyGraphicalEditor.ID, false);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
           

 六、扩展editor扩展点。。

GEF入手系列1
GEF入手系列1

经过以上六部,一个基本的程序就能运行了,以后将慢慢添加各种功能。

下面是目前的运行结果:

继续阅读