mxGraph定位盲区图形到绘图区域中心位置

往往在一个绘图区域会有很多个图形,如果通过右键拖动画布或者通过滚动条来查找,是一件很烦人的事情。下面我就给出解决这个问题的方案。

前提是有一个整个绘图区域的tree或者datagrid,我们需要选择直接要定位的图形cell。

首先我们需要一个mxGraph的全局对象,暂且就定义为ylEditor.ylCanvas吧。

接下来我们要定义一个查找图形cell的方法,只有通过这个方法,才能找到画布中我们想要的那个cell。

ylCommon.findCellById=function(id){
    ylEditor.ylCanvas.selectAll();
    var cells=ylEditor.ylCanvas.getSelectionCells();
    ylEditor.ylCanvas.clearSelection();
    for(var i=0;i<cells.length;i++){
        if(cells[i].id==id){
            return cells[i];
        }
        if(cells[i].children.length>0){
            for(var j=0;j<cells[i].children.length;j++){
                var child=cells[i].children[j];
                if(child.id==id){
                    return child;
                }
            }
        }
    }
    return null;
}

然后定位图形cell的方法,直接给图形cell的id就可以了,先找到图形,然后选中这个图形,再计算一下坐标,最后定位。

ylCommon.selectCell=function(id){
    var cell=ylCommon.findCellById('cell-'+id);
    if(cell){
        ylEditor.ylCanvas.setSelectionCell(cell);
        var x=-cell.geometry.x+($('#canvas').width()-cell.geometry.width)/2;
        var y=-cell.geometry.y+($('#canvas').height()-cell.geometry.height)/2;
        ylEditor.ylCanvas.getView().setTranslate(x,y);
    }else{
        alert('您选择的图形不在画布中!');
    }
}

在tree或者datagrid当中,选择要定位的对象,然后将对象的id传给selectCell方法就可以了,前提是这个id要能与画布中的图形的id匹配上。

mxGraph定位盲区图形到绘图区域中心位置,布布扣,bubuko.com

时间: 2024-07-30 13:49:35

mxGraph定位盲区图形到绘图区域中心位置的相关文章

mxGraph绘图区域使用鼠标滚轮实现放大/缩小

// 重写鼠标滚轮事件 mxEvent.addMouseWheelListener = function (funct) { } // 增加初次加载事件 window.onload = function () { var element= document.getElementById('graph'); addScrollListener(element, wheelHandle); } function addScrollListener(element, wheelHandle) { if

matplotlib学习日记(十)-共享绘图区域的坐标轴

(1)共享单一绘图区域的坐标轴 ''' 上一讲介绍了画布的划分,有时候想将多张图放在同一个绘图区域, 不想在每个绘图区域只绘制一幅图形,这时候借助共享坐标轴的方法实现在一个绘图区 绘制多幅图形的目的. ''' import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams["font.sans-serif"]=["SimHei"] mpl.rcParam

图解js中常用的判断浏览器窗体、用户屏幕可视区域大小位置的方法

有时我们需要获得浏览器窗口或屏幕的大小.窗口下拉框下拉的距离等数据,对应这些需求,js中提供了不少解决方法,只是数量稍多容易混淆它们各自的意义,下面咱们用图例来解释下12个常见对象属性的作用. 其中有6个常用的浏览器窗体属性(由于offsetWidth/Height在不同浏览器下表现有出入,故不在本章讨论): document.documentElement.clientWidth document.documentElement.clientHeight document.documentEl

百度定位SDK实现获取当前经纬度及位置

使用Android自带的LocationManager和Location获取位置的时候,经常会有获取的location为null的情况,并且操作起来也不是很方便,在这个Demo里我使用了百度地图API中的定位SDK,可以一次性获取当前位置经纬度以及详细地址信息,还可以获取周边POI信息,同时可以设定位置通知点,当到达某一位置时,发出通知信息等方式来告知用户.jar包下载以及官方文档请参照:百度定位SDK,前提是需要注册百度开发者账号.下面来看看定位的基本原理,目前,定位SDK可以通过GPS.基站

手机怎样定位老婆和别人的所在具体位置

手机怎样定位老婆和别人的所在具体位置Q-Q:971-041-894定位[手機系列找回刪除等信息]这件事说来也是巧了,也算是他们上级领导的矛盾吧,因为公司与另一个公司之前有一点合同上的纠葛,所以老板在发函以前之前让我跟对方公司现承认一下,看是不是真的要闹到这个地步,因为我是担任这个项目的,相对在状况上回对比的了解,那个时分我刚好在外面,所以只能用自己的手机打以前了,这也没什么,不便是知会一声吗,当然的,两头的利益不是那么快就可以到达的,所以发函这个工作仍是进行了请问我的苹果5s手机被偷关还能机么定

特征提取-区域中心

read_image (Image, 'fabrik') dev_close_window () dev_open_window (0, 0, 512, 512, 'black', WindowID) set_display_font (WindowID, 14,'mono', 'true', 'false') dev_set_colored (6)*设置显示颜色的种类个数* regiongrowing (Image, Regions, 1, 1, 3, 200)*将图像分区域,区域最小尺寸为2

网站定位之---根据IP获得区域

记得以前做一个培训机构网站时候需要定位,那时候用的搜狐的api,不是很精准. 后来做电商的时候用的新浪的api,感觉还行,,,,,当时就想要是有本地ip库多爽啊?当时共享的ip库也就只有QQ纯真库了,里面东西比较杂 今天看博客园这个新闻(http://news.cnblogs.com/n/530762/)的时候发现了个好东西==>17monipdb 他的网址是: https://www.ipip.net/download.html 他共享了一个dat文件,基本上能解决我们的问题了 官方帮助类(用

canvas 绘图api的位置问题

今天因为canvas绘图的为之问题浪费了一些时间. 我们知道canvas的默认宽高是300X150嘛. 实际使用的时候当然是自定义一个高宽啦. 在js中通过canvasDom.style设置了某个高宽的时候,canvas在页面上也确实伸缩了. 但是用某些api的时候,传入位置参数时,还是按照300X150规格来处理位置的!如果想让位置居中的话,传入canvas.width/2或canvas.height/2就好了. 这是之前留意过的问题,今天才发现.可怜我试错地在模拟器上反复折腾,确定真相的我眼

如何定位Release 版本中程序崩溃的位置 ---利用map文件 拦截windows崩溃函数

1       案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的“名言”,恐怕是程序员最怕见也最常见的东西了. 在一个大型软件的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现程序崩溃并不可怕,反而是测试的成功.作为开发的我们更需要关心的是程序中的哪个函数或哪一行导致了系统崩溃,这样才能有针对性的进行改正. 本文描述了自己总结的几种定位崩溃的办法.