zoukankan      html  css  js  c++  java
  • mxGraph上下级节点与连线高亮显示代码

     var highlightList = [];
        var highlighEdgetList = [];
        // 给图中节点加入单击事件
        graph.addListener(mxEvent.CLICK, function(sender, evt)
        {
             var cell = evt.getProperty('cell');
             
             // 高亮节点集合
             if(highlightList){
                 for(var k=0;k<highlightList.length;k++){
                     highlightList[k].light.destroy();
                 }
             }
    
            // 高亮线集合
            if(highlighEdgetList){
                for(var k=0;k<highlighEdgetList.length;k++){
                    highlighEdgetList[k].light.destroy();
                }
            }
             
            if(cell&&cell.isVertex&&cell.itypeid){
                 var edges = cell.edges;
                 var edge;
                 for(var i=0;i<edges.length;i++){
                     edge = edges[i];
                     // 添加上级节点相关高亮配置
                     if(cell.id!=edge.source.id){
                         var cellSource = graph.getModel().getCell(edge.source.id);
                         // 上级节点高亮配置
                         var highlight = new mxCellHighlight(graph, '#00FF00', 2);
                         highlight.highlight(graph.view.getState(cellSource));
                         var highlightMap = {};
    
                         highlightMap.cell = cellSource;
                         highlightMap.light = highlight;
                         highlightList.push(highlightMap);
    
                        // 上级连线高亮配置
                         var highlightEdge = new mxCellHighlight(graph, '#00FF00', 2);
                         highlightEdge.highlight(graph.view.getState(edge));
                         var highlightEdgeMap = {};
                         highlightEdgeMap.light = highlightEdge;
                         highlighEdgetList.push(highlightEdgeMap);
                     }
                     // 添加下级节点相关高亮配置
                     if(cell.id!=edge.target.id){
                         var cellTarget = graph.getModel().getCell(edge.target.id);
                         // 下级节点高亮配置
                         var highlight = new mxCellHighlight(graph, '#00FF00', 2);
                         highlight.highlight(graph.view.getState(cellTarget));
    
                         var highlightMap = {};
                         highlightMap.cell = cellTarget;
                         highlightMap.light = highlight;
                         highlightList.push(highlightMap);
                        // 下级连线高亮配置
                         var highlightEdge = new mxCellHighlight(graph, '#00FF00', 2);
                         highlightEdge.highlight(graph.view.getState(edge));
                         var highlightEdgeMap = {};
                         highlightEdgeMap.light = highlightEdge;
                         highlighEdgetList.push(highlightEdgeMap);
                     }
                 }
             }
        });
  • 相关阅读:
    Java 位运算(移位、位与、或、异或、非)
    解决Android Studio 2.2.3中添加.cpp .h文件在Project->Android无法显示,无法正常编译问题。
    [ACM] HDU 5083 Instruction (模拟)
    Vbox视图热键
    Android Drawable 与 LayerList综合汇总
    数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)
    HDU 2896 病毒侵袭 AC自己主动机题解
    对团队中“这是某某某的问题”引起的思考
    杭电 2201
    三层架构
  • 原文地址:https://www.cnblogs.com/symbol8888/p/13031263.html
Copyright © 2011-2022 走看看