mxGraph 学习笔记 --mxGraph常用功能代码

1、设置当鼠标移到流程图的节点上时,给个绿色边框标记,鼠标移开时标记消失:

new mxCellTracker(editor.graph, '#00FF00');

2、给指定流程图节点加上红色边框标记

 /**
  * 给指定节点加上标记
  * cellId -- 节点ID
  **/
 flagCurNode: function(cellId) {
  var self = this;
  var model = self.editor.graph.getModel();
  var curCell = model.getCell(cellId);
  model.beginUpdate();
  try {
   self.editor.graph.setCellStyles("strokeColor", "red", [curCell]);
   self.editor.graph.setCellStyles("strokeWidth", "2", [curCell]);
  } finally {
   model.endUpdate();
  }
 }

3、取当前选择的流程图节点的信息

  var self = this,
   graph = self.editor.graph,
   cell = graph.getSelectionCell();
  if (cell == null) {
   JxHint.alert(jx.wfx.nopic); //'没有选择图形元素!'
   return;
  }

  var objId = cell.getId();  //元素ID
  var enc = new mxCodec();
  var node = enc.encode(cell); //解析为DOM对象时自定义属性才可以识别
  var nodetype = node.getAttribute('nodetype'); //取节点类型,如果是线则为空
  var source = node.getAttribute('source');  //取线的来源节点ID,如果是节点则值为空

4、加载xml格式描述的流程图设计文件显示到设计控件中

  var hdCall = function(xmlfile) {
   if (xmlfile == null || xmlfile.length == 0) { 
    xmlfile = "<?xml version='1.0' encoding='utf-8'?>";
    xmlfile += "<mxGraphModel><root><mxCell id='0'/><mxCell id='1' parent='0'/></root></mxGraphModel>";
   }
   
   var doc = mxUtils.parseXml(xmlfile);
   var dec = new mxCodec(doc);
   dec.decode(doc.documentElement, self.editor.graph.getModel());
  };

5、保存设计信息到xml文件中

  var self = this,
   enc = new mxCodec(),
   graph = self.editor.graph,
   nodeGraph = enc.encode(graph.getModel()),
   rootNode = nodeGraph.getElementsByTagName('root')[0],
   mxCells = rootNode.childNodes;

//校验节点设置的有效性

...

//保存到xml中

var xmlFile = mxUtils.getPrettyXml(nodeGraph);

posted on 2014-02-13 09:39  山庄听泉  阅读(1222)  评论(0编辑  收藏  举报

导航