mxGraph簡單操作。

工作需要使用mxGraph。依著葫蘆畫瓢慢慢學(xué),不足之處還望大家指點(diǎn)。

function main(container) {
    if (!mxClient.isBrowserSupported()) {
        mxUtils.error('Browser is not supported!', 200, false);
    } else {
        var graph = new mxGraph(container);//創(chuàng)建視圖
        graph.setHtmlLabels(true);
        graph.setTolerance(20);
        graph.setEnabled(false); // 禁用選擇和單元格處理

        var style = graph.getStylesheet().getDefaultVertexStyle();
        // style[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_BOTTOM;//文字對齊方式
        // style[mxConstants.STYLE_FILLCOLOR] = 'rgb(251, 148, 79)'; //填充色 
        style[mxConstants.STYLE_FONTSIZE] = 14; //文字大小
        style[mxConstants.STYLE_FONTCOLOR] = "#fff"; //文字顏色
        style[mxConstants.STYLE_WHITE_SPACE] = 'wrap'; //自動換行
        delete style[mxConstants.STYLE_STROKECOLOR]; //去掉邊框
        //鼠標(biāo)拖動
        graph.setAutoSizeCells(true);
        graph.setPanning(true);
        graph.panningHandler.useLeftButtonForPanning = true;

        graph.setCellsResizable(false); // 禁止改變元素大小
        mxEvent.disableContextMenu(container); // 禁用瀏覽器默認(rèn)的右鍵菜單欄

        // 縮放
        mxEvent.addMouseWheelListener(function(evt, up) {
            if (up) {
                graph.zoomIn();
            } else {
                graph.zoomOut();
            }
            mxEvent.consume(evt);
        });

        style = graph.getStylesheet().getDefaultEdgeStyle();
        style[mxConstants.STYLE_EDGE] = mxEdgeStyle.TopToBottom;
        style[mxConstants.STYLE_STROKECOLOR] = 'rgb(115, 121, 133)'; //連接線顏色
        delete graph.getStylesheet().getDefaultEdgeStyle()['endArrow']; //去掉箭頭

        graph.addListener(mxEvent.DOUBLE_CLICK, function(sender, evt) {
            var cell = evt.getProperty('cell');
            console.log(cell)
        }); //雙擊事件

        var parent = graph.getDefaultParent();
        graph.getModel().beginUpdate();
        try {
            var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30); //生成模塊
            var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30);
            graph.insertEdge(parent, null, ' ', v2, v1); //連接兩個模塊
        } finally {
            graph.getModel().endUpdate();
        }
    }
}
20170113201156.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評論 25 708
  • 一不小心,2017年就過去一半了?;仡櫮瓿踔贫ǖ男坌牟挠?jì)劃,相信不少人又要傷感了。 時間是最公平的,每個人一天...
    職優(yōu)易閱讀 292評論 0 1
  • 火車就要來了,爸爸坐的火車…… 秋天開始的時候,我和媽媽般到了這座小城,從那以后我一直都沒有見過爸爸。 不過,今天...
    善于Harbin閱讀 690評論 5 1
  • 現(xiàn)在你應(yīng)該還沒有睡覺呢。我猜你已經(jīng)到了上海的機(jī)場。 今天有點(diǎn)特殊。我好像又失眠了。失眠的聲音就像一段緩慢的河流。我...
    一只特立獨(dú)行的isabe豬閱讀 717評論 3 0
  • 閑也似忙~~老了沒瞌睡,只把天亮盼,早起喝茶吃饅頭,假裝要去忙。提把遮陽傘 ,夾個公文包,走到護(hù)城河邊站,抽煙發(fā)個呆。
    瘦人碗子閱讀 312評論 0 1

友情鏈接更多精彩內(nèi)容