2011-08-28 45 views
4

我正在開發一個編輯器來設計基於eclipse GMF的用戶界面。在Eclipse中以編程方式創建節點GMF

到目前爲止,我已經開發了一個調色板編輯器。用戶可以從托盤拖放UI元素並在畫布上設計UI。我需要實現設施來將這些UI元素分組。 EX:用戶首先通過拖放元素到畫布來設計UI,然後選擇一組UI按鈕(比如標籤和文本框)並按下「group」按鈕。它會自動將元素放在一個虛線矩形內。

我打算開發一個插件,它可以獲取有關選定UI元素的信息,刪除它們,在畫布中創建一個組元素(虛線矩形),並向其中插入刪除的元素。

但我不知道從哪裏開始。

所以,我想知道如何以編程方式在GMF中創建/刪除節點。

如果您知道相關的代碼,請分享他們,並請指點我一些有用的資源。

隨着我們的項目截止日期臨近,我們將非常感謝任何幫助。

回答

1

從調色板中拖動某些東西時,會在gmf中創建以下命令。您必須指定元素類型並向編輯部分詢問元素的相應命令。

CreateUnspecifiedTypeRequest request = new 
    CreateUnspecifiedTypeRequest(
     Collections.singletonList(EcoreElementTypes.EClass_1001), 
     diagramEditPart.getDiagramPreferencesHint()); 

Command command = diagramEditPart.getCommand(request); 
command.execute(); 

Object newObject = request.getNewObject(); // these are the newly created objects 
1

當從調色板中拖動某些東西時添加其他元素也可以通過使用例如延遲的命令。這些命令是在創建調色板元素請求時創建的,但由於最終的位置和視圖還不知道(僅在放置時間)。相應的視圖稍後解決。

使用這種機制的現有的命令類:DeferredCreateConnectionViewAndElementCommandDeferredSetValueCommand

要使用這個類,你必須找到你的請求創建過程中正確的地方,通過創建視圖(S) CreateViewRequest。該請求具有需要的信息(request.getNewObject()),只要從調色板中刪除對象時某個地方就會獲取View。

查看此示例瞭解更多信息:http://wiki.eclipse.org/GMF_Tutorial_Part_3

相關問題