繼續來講編輯器的需求, 前面介紹了拖拽建立節點、以及連線的方法,並加入到了其後的 Qunee 類庫,實際應用中須要更多功能,Qunee 的拓撲圖編輯器也在逐漸完善,一方面增長多種編輯交互,一方面提供數據導入導出,同時也在摸索編輯器的總體界面設計和前端開發框架 html
延續以前提供的功能,增長更多可配置選項(可設置節點類型,樣式和屬性),支持按住shift快捷鍵,直接拖入到分組內 前端
Q.Consts.INTERACTION_MODE_CREATE_SIMPLE_EDGE = "create.simple.edge"; Q.Consts.INTERACTION_MODE_CREATE_EDGE = "create.edge"; Q.Consts.INTERACTION_MODE_CREATE_SHAPE = "create.shape"; Q.Consts.INTERACTION_MODE_CREATE_LINE = "create.line";
能夠直接從一個節點拖拽鏈接到另外一個節點,也能夠建立中間拐點的連線框架
graph.interactionMode = Q.Consts.INTERACTION_MODE_CREATE_EDGE;
普通模式下,設置 graph 爲可編輯,此時點擊可編輯的圖元進入編輯模式編輯器
graph.editable = true; graph.interactionMode = Q.Consts.INTERACTION_MODE_DEFAULT;
graph.interactionMode = Q.Consts.INTERACTION_MODE_CREATE_SHAPE;
graph.interactionMode = Q.Consts.INTERACTION_MODE_CREATE_LINE;
graph.editable = true; graph.interactionMode = Q.Consts.INTERACTION_MODE_DEFAULT;
改進了Q.ResizeInteraction ide
增長了拐點編輯交互器(Q.PointsInteraction),默認編輯狀態時,雙擊多邊形進入編輯模式 spa
經過右鍵菜單(移動平臺下能夠選擇長按),點擊在不一樣類型的圖元上,彈出不一樣的設置菜單項.net
graph.html.oncontextmenu = function(evt){ Q.stopEvent(evt); showMenu(evt, graph); } graph.addCustomInteraction({ onstart: function (evt) { menu.hide(); } });
經過擴展,實現exportJSON和parseJSON方法,實現對拓撲圖的導入導出,便於存儲 設計