mxGraph常用功能代码

本文介绍如何使用JavaScript增强流程图编辑体验,包括鼠标悬停高亮、特定节点标记、获取选中节点信息及流程图的导入导出方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值