mxgraph 目錄結構以下:javascript
Gruntfile.js
文件,用於構建生成環境版本javascript/src
爲框架源碼;javascript/examples
爲示例代碼。mxgraph 倉庫主要包含幾類類型的資源,最核心的是 javascript/src
目錄下的圖形引擎源碼;其次是 javascript/src/editor
目錄中基於圖形引擎實現的圖形編輯器;以外還有基於 .net、java 的後端示例;以及做爲學習資源的 docs
目錄下的文檔,和 javascript/examples
目錄下的示例代碼,下面逐一解釋。css
學習 mxgraph,能夠先從官方提供的文檔出發。mxgraph 倉庫中存在如下幾類文檔,對入門有比較大的幫助:html
建議的閱讀順序是,一細讀 tutorial,可以幫助創建對 mxgraph 的感性認知;二略讀 manual,瞭解 mxgraph 數據模型的管理方法;三細讀各個示例代碼,從示例中學習、領悟各種接口的用法;必要時能夠結合 api 文檔查閱各個接口的詳細信息。java
以上各種文檔都可雙擊對應的 html 文件,在瀏覽器打開查閱。git
提示:mxgraph 官方文檔質量寫的簡直惜字如金,不少概念一筆帶過,沒有詳盡說明,加上社區對 mxgraph 的討論熱度很低,致使對於使用者而言,框架學習成本很高。這種情況下,筆者認爲最有效的學習方法只能是結合示例、API 文檔、源碼,三個維度互相對照學習。github
mxgraph 框架代碼存放於 javascript/src 目錄下,主要文件有:json
mxgraph └─── javascript │ └─── src │ └─── css │ └─── images │ └─── js │ └─── editor │ └─── handler │ └─── io │ └─── layout │ └─── model │ └─── shape │ └─── util │ └─── view │ | index.txt │ └─── resources │ │ index.html │ │ mxClient.js │ │ mxClient.min.js
javascript/src/js
: mxgraph 的 JS 代碼,基本上全部功能都是在這裏實現。javascript/src/css
: mxgraph 組件的樣式實現,可暫時忽略。javascript/src/images
: 圖表編輯器中須要用到的圖像資源,可忽略。javascript/src/resource
: 圖形編輯器的多語言定義文件,可忽略。mxgraph 的核心功能都定義在 javascript/src/js
目錄下,因此後續的學習主要都是集中在這部分代碼中。幾個子目錄的主要做用分別爲:後端
model
子目錄是數據管理模型的實現,數據模型記錄着 mxgraph 實例的圖形結構及節點的詳細信息,並對外暴露一系列更新、刪除、插入接口,咱們使用 mxgraph 時會跟這部分接口常常打交道。關於數據模型的更多探索,將在後續補充。shape
定義了幾種主要的圖元類型,包括線、標籤、箭頭、多邊形、四邊形、泳道等。view
是框架對外交互的主要接口層,包含了圖形交互接口 mxGraph 類、樣式管理接口 mxStylesheet、圖元編輯器 mxCellEditor 等。handler
定義了框架中圖元的幾種常見的交互行爲邏輯,好比處理快捷鍵邏輯的 mxKeyHandler;處理鏈接線分片的 mxEdgeSegmentHandler;處理圖元高亮效果的 mxCellHighlight 等。layout
定義 mxgraph 所使用的佈局邏輯,包括堆疊佈局 mxStackLayout;泳道佈局 mxSwimlaneLayout;圓形佈局 mxCircleLayout。util
包含各類工具函數。io
定義了幾種應對不一樣時態的編解碼器,可用以實現 mxgraph 實例狀態的持久化。editor
短小精悍的編輯器實現,內置快捷鍵、彈出菜單、工具欄等功能支持。此外, javascript/src/mxClient.js
是框架的入口文件,它一方面定義了一系列環境變量;一方面聲明框架的基礎依賴文件列表。 javascript/src/mxClient.min.js
是通過 etc/build/Gruntfile.js
執行鏈接、合併、壓縮操做後的版本,可用做生產環境庫文件。api
提示:mxgraph 倉庫包含兩類功能代碼,一是做爲底層的圖形引擎;二是做爲上層應用的圖形編輯器。源碼中
javascript/src/js/editor
是編輯器的實現代碼,javascript/src/css
、javascript/src/images
、javascript/src/resource
都是圖形編輯器的資源依賴,建議讀者暫時忽略這部分代碼,先集中精力學習圖形引擎的使用方法。瀏覽器
mxgraph 官方提供的示例都在 javascript/examples
目錄下,合計有 88 個,能夠雙擊 javascript/index.html
打開示例索引文檔。雖然有如此多的示例代碼,但每個示例都沒有足夠的細節說明;官方也沒有提供一個由淺入深的學習流程,爲此我簡單總結了一份閱讀順序:
javascript/docs/jsapi/index.html
文檔。精度以上事例,結合 javascript/docs/jsapi/index.html
文檔相信讀者會對 mxgraph 有一個更高維度的認知。