繼續來說編輯器的需求,
前面
介紹了拖拽創建節點、以及連線的方法,並加入到了其后的 Qunee 類庫,實際應用中需要更多功能,Qunee 的拓撲圖編輯器也在逐漸完善,一方面增加多種編輯交互,一方面提供數據導入導出,同時也在摸索編輯器的整體界面設計和前端開發框架

拖拽創建節點
延續之前提供的功能,增加更多可配置選項(可設置節點類型,樣式和屬性),支持按住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
移動拐點
增加了拐點編輯交互器(Q.PointsInteraction),默認編輯狀態時,雙擊多邊形進入編輯模式
右鍵菜單交互
通過右鍵菜單(移動平台下可以選擇長按),點擊在不同類型的圖元上,彈出不同的設置菜單項graph.html.oncontextmenu = function(evt){
Q.stopEvent(evt);
showMenu(evt, graph);
}
graph.addCustomInteraction({
onstart: function (evt) {
menu.hide();
}
});


數據導入導出
通過擴展,實現exportJSON和parseJSON方法,實現對拓撲圖的導入導出,便於存儲
在線示例演示
http://demo.qunee.com/editor/Editor1.6.html