美文网首页mxGraph
mxgraph示例解析(零) 基础设置

mxgraph示例解析(零) 基础设置

作者: JuvoS | 来源:发表于2019-07-22 17:48 被阅读0次
    基础效果图

    代码解析

    var graph = new mxGraph(container); //创建视图
    graph.setHtmlLabels(true); // Label 将显示 Html 格式的 Value
    graph.setTolerance(20);
    graph.setEnabled(true); //设置启用,就是允不允许你改变CELL的形状内容。
    graph.setVertexLabelsMovable(true); // 允许移动 Vertex 的 Label
    
    graph.setConnectable(true); // 是否允许Cells通过其中部的连接点新建连接,false则通过连接线连接    
    graph.setDropEnabled(true); // 从工具栏拖动到目标细胞时细胞边界是否产生光圈    
    graph.setTooltips(true); // 是否显示提示,默认显示Cell的名称 
    graph.setResizeContainer(true); // 容器大小自适应
    graph.setMultigraph(false); // 重复连接
    graph.setAllowLoops(true); // 允许连线的目标和源是同一元素
    
    new mxRubberband(graph); // 左键框选(编辑状态下生效)
    
    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]; //去掉边框
    graph.getView().updateStyle = true; // 动态改变样式
    
    graph.setAutoSizeCells(true); // 鼠标拖动
    graph.setPanning(true); // 移动镜头(移动容器坐标轴)
    graph.panningHandler.useLeftButtonForPanning = true; // 设置左键可移动容器坐标轴
    
    graph.setCellsResizable(false); // 禁止改变元素大小
    mxEvent.disableContextMenu(container); // 禁用浏览器默认的右键菜单栏
    graph.connectionHandler.setCreateTarget(true); // 是否创建目标
    mxGraphHandler.prototype.setMoveEnabled(false);//是否可以移动  
    mxGraphHandler.prototype.guidesEnabled = true;//显示细胞位置标尺  /*禁用节点双击,防止改变数据 */  
    graph.dblClick = function (evt, cell) {           var model = graph.getModel();           if (model.isVertex(cell)) {                   return false;           }  };  //重写方法不允许那条线(edge)可以编辑    
    graph.isCellEditable = function(cell)  {    return !this.getModel().isEdge(cell)&&!this.getModel().isVertex(cell);    };  
    
    // 滚轮缩放
    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");
    }); //双击事件
    
    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();
    }
    

    相关文章

      网友评论

        本文标题:mxgraph示例解析(零) 基础设置

        本文链接:https://www.haomeiwen.com/subject/ugawlctx.html