天天看點

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

經過以上六部,一個基本的程式就能運作了,以後将慢慢添加各種功能。

下面是目前的運作結果:

繼續閱讀