日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GMF 教程 Mindmap 5

發布時間:2023/12/19 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GMF 教程 Mindmap 5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

這一部分主要實現的是:

使用擴展的Plug-in為我們的Diagram添加一個自定義動作

Creating a Customization Plug-in

盡管可以給生成的代碼添加備注@generated NOT來避免下次重新生成代碼時覆蓋我們修改的代碼,除此之外,還可以使用一個新的Plug-in工程來將自定制(擴展)與生成的工程分離。

1、創建一個新的Plug-in工程,命名為org.eclipse.gmf.examples.mindmap.diagram.custom,使用默認的設置,不要Activator類,也不用向導提供的任何模板。

Custom Actions

目前為止創建一個新的Subtopic的方法比較麻煩,需要頻繁點擊工具。現在希望給Topic結點添加右擊菜單項Create Subtopic來實現這個操作,直接創建Subtopic結點,包括連線。

首先,我們要知道,org.eclipse.ui.bindings可以用來將Ctrl+I組合鍵(或者其他組合鍵)分配給我們的Action。可以通過修改diagram.custom工程的plugin.xml文件來實現。不過剛創建的新工程沒有這個文件,不過沒關系。

2、打開diagram.custom工程的MAINIFEST.MF,選擇標簽Extension,單擊Add,添加org.eclipse.ui.bindings擴展點:

3、其實之前單擊Add的時候,就會自動創建plugin.xml文件了。然后可以直接編輯這個文件,在<plugin>標簽之間添加內容:

<extension point="org.eclipse.ui.bindings"><key commandId="org.eclipse.gmf.examples.mindmap.insertSubtopic"sequence="M1+I" schemeId="org.eclipse.ui.defaultAcceleratorConfiguration" /> </extension>

4、為了這個命令,需要使用org.eclipse.ui.command擴展點。在plugin.xml文件中添加如下內容:

<extension point="org.eclipse.ui.commands"><category name="Mindmap" description="Commands related to Mindmap diagrams."id="org.eclipse.gmf.category.mindmap" /><command categoryId="org.eclipse.gmf.category.mindmap"description="Inserts a new subtopic" id="org.eclipse.gmf.examples.mindmap.insertSubtopic"name="Insert Subtopic"></command> </extension> 5、現在,為了彈出菜單,要使用org.eclipse.ui.popupMenus擴展點 <extension point="org.eclipse.ui.popupMenus"><objectContribution adaptable="false"id="org.eclipse.gmf.examples.mindmap.diagram.ui.objectContribution.TopicEditPart1"objectClass="org.eclipse.gmf.examples.mindmap.diagram.edit.parts.TopicEditPart"><menu id="MindmapInsert" label="Insert" path="additions"><separator name="group1"></separator></menu><actionclass="org.eclipse.gmf.examples.mindmap.diagram.part.MindmapCreateSubtopicAction"definitionId="org.eclipse.gmf.examples.mindmap.insertSubtopic"enablesFor="1"id="org.eclipse.gmf.examples.mindmap.popup.MindmapCreateSubtopicActionID"label="Subtopic" menubarPath="MindmapInsert/group1"></action></objectContribution> </extension>

6、不過,為了使生效,要在MAINIFEST.MF加入:

Import-Package: org.eclipse.gmf.examples.mindmap.diagram.edit.parts

7、現在,如果運行程序,右擊Topic結點,可以看到上下文菜單多了Insert:

8、之后,要實現那個Action。

在diagram.custom工程的src下創建包org.eclipse.gmf.examples.mindmap.diagram.part,然后創建類MindmapCreateSubtopicAction,完整代碼在后邊的下載地址。

不過,要按照提示添加各種Import-package,參考下圖:

注意要添加左邊的org.eclipse.gmf.runtime.diagram.ui,否則程序會提示org.eclipse.gmf.runtime.notation.View cannot be resolved。

9、此時運行程序,先創建一個Topic結點,然后右擊,選擇Insert——Subtopic,會自動在右上方的創建一個Topic結點,并帶有連線:

Custom Layout

默認的布局并不適合mindmap。下面要實現的是給diagram添加一個自定義的布局,雖然很簡單,但是卻指明了方法。還是會使用擴展點來實現。

我們將會嘗試兩中布局:一個是繼承自

org.eclipse.gmf.runtime.diagram.ui.providers.LeftRightProvider

另一個繼承自

org.eclipse.gmf.runtime.diagram.ui.providers.internal.RadialProvider

10、在工程的dependancies中加入org.eclipse.gmf.runtime.diagram.ui.providers。

11、在plugin.xml中加入擴展:

<extension point="org.eclipse.gmf.runtime.diagram.ui.layoutProviders"><layoutProviderclass="org.eclipse.gmf.examples.mindmap.diagram.layout.MindmapDefaultLayoutProvider"><Priority name="Medium" /></layoutProvider> </extension> <extension point="org.eclipse.gmf.runtime.diagram.ui.layoutProviders"><layoutProviderclass="org.eclipse.gmf.examples.mindmap.diagram.layout.MindmapRadialLayoutProvider"><Priority name="Low" /></layoutProvider> </extension>

12、然后創建包org.eclipse.gmf.examples.mindmap.diagram.layout,在包中創建兩個類MindmapDefaultLayoutProvider和MindmapRadialLayoutProvider,代碼見下載地址。

運行,但是我看不出來有什么效果。

Removing Tools from the Palette

13、如果不想要palette上的Notes和Zoom工具,可以在自定義的工程中使用paletteProvider擴展點來實現移除這些工具。在diagram.custom工程的plugin.xml加入:

<extension point="org.eclipse.gmf.runtime.diagram.ui.paletteProviders"><paletteProviderclass="org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider"><Priority name="High" /><contribution><predefinedEntry id="standardGroup/selectionTool"remove="false" /><predefinedEntry id="standardGroup/zoomInTool"remove="true" /><predefinedEntry id="standardGroup/zoomOutTool"remove="true" /><predefinedEntry id="standardGroup/noteStack/noteTool"remove="true" /><predefinedEntry id="standardGroup/noteStack/textTool"remove="true" /><predefinedEntry id="standardGroup/noteStack/noteattachmentTool"remove="true" /></contribution><editorid="org.eclipse.gmf.examples.mindmap.diagram.part.MindmapDiagramEditorID"></editor></paletteProvider> </extension>

14、此時運行的話,會發現只有Select工具還在palette上,而原來的Note工具和縮放工具都移除了:

源碼:http://www.oschina.net/code/snippet_164134_19308

雙子座@開源中國:http://my.oschina.net/plumsoft

轉載于:https://my.oschina.net/plumsoft/blog/114354

總結

以上是生活随笔為你收集整理的GMF 教程 Mindmap 5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。