mxGraph改变图形大小重置overlay位置

要在改变图形大小的时候改变overlay的位置,那肯定就要对重置图形大小的方法进行改造了。下面是源文件中的代码

mxGraph.prototype.resizeCells = function(cells, bounds) {
    this.model.beginUpdate();
    try {
        this.cellsResized(cells, bounds);
        this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS, 'cells', cells, 'bounds', bounds));
    } finally {
        this.model.endUpdate();
    }
    return cells;
};

我们要在这个方法中对overlay进行位置的改变,首先要获取到当前图形的overlays,在创建overlay的时候可以自定义overlay的一些属性,比方index,这样比较容易的定位具体的某个overlay,再根据条件变更其位置。

mxGraph.prototype.resizeCells = function (cells, bounds) {
        this.model.beginUpdate();
        try {
            this.cellsResized(cells, bounds);
            this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS, 'cells', cells, 'bounds', bounds));
            var _this=this;
            $.each(cells,function(i,item){
                var overlays = _this.getCellOverlays(item) ;
                $.each(overlays,function(j,overlay){
                    if(overlay.tooltip=='辐射图'){
                        if(ylCommon.isAllowEdit()){
                            overlay.offset.x=item.geometry.width - 35;
                        }else{
                            overlay.offset.x=item.geometry.width - 15;
                        }
                    }
                    if(overlay.image.src.indexOf('lock.png')>0){
                        overlay.offset.x=item.geometry.width - 15;
                    }
                });
            });
        } finally {
            this.model.endUpdate();
        }
        return cells;
    };

mxGraph改变图形大小重置overlay位置

时间: 2024-12-26 12:51:24

mxGraph改变图形大小重置overlay位置的相关文章

打飞机游戏的基本框架:固定窗体位置,不能随意改变窗体大小

package 第五天; import java.awt.Toolkit; import javax.swing.JFrame; public class MainFrame extends JFrame { public MainFrame() { this.setTitle("打飞机框架");//标题 this.setSize(800, 600);//窗体大小 //下面注释的两行代码也可以用来控制窗体显示的位置 // Toolkit tl = Toolkit.getDefaultT

javascript动画系列第四篇——拖拽改变元素大小

× 目录 [1]原理简介 [2]范围圈定 [3]大小改变[4]代码优化 前面的话 拖拽可以让元素移动,也可以改变元素大小.本文将详细介绍拖拽改变元素大小的效果实现 原理简介 拖拽让元素移动,是改变定位元素的left和top值实现的.而拖拽改变元素大小,则还需要改变元素的宽高 范围圈定 我们把改变元素大小的范围圈定在距离相应边10px的范围内 左侧边界L = obj.offsetLeft + 10 右侧边界R = obj.offsetLeft + obj.offsetWidth - 10 上侧边界

js改变盒子大小(上下左右)分析

js改变盒子大小 知识点 三个mouse事件:mousedown mousemove mouseup css的定位和cursor 思路 先解决单边问题识别范围,得到所选区域 event. 根据距离,判断方向根据方向进行样式的增加减少,注意top和left的变化当然还要增加最小的限制 注意 识别改变的四个位置 得到它们的范围 判断改变范围的大小 注意改变top和left的边的时候,注意将盒子的left变为this.offsetLeft-(原来的event.clientX减去现在的event.cli

葡萄城页面报表通过表达式来改变字体大小

如题,做报表时候,有时候要根据是否是合计行,来改变合计行的粗细,大小. 可以通过字体的表达式来实现: 表达式的通用写法:  =iif( Fields!YourFieldName.Value operator "Value to compare", "If condition is met, use this value.", "If not, use this one.") 如果满足条件(第一个参数),则执行第二个参数,否则执行最后一个参数 例如

改变元素大小

<!DOCTYPE html><html><head> <title>改变元素大小</title> <style type="text/css"> div{ width: 200px; height: 200px; background-color: red; border: solid; /*如果想调整一个元素像textarea那样随意改变大小 我们可以使用resize 属性有 horizontal 可以改变元素

【Unity】改变向量的方向而不改变其大小

最近在做一个打砖块游戏时遇到一个小问题,就是小球有可能会在左右两个边界之间做循环往返运动而导致游戏无法继续进行下去,于是我打算让小球在垂直撞向边界时改变一下方向,但是速度不变,尝试了一些方法但是没有达到效果.后来想到,速度是一个向量,问题就变成了改变一个向量的方向而不改变它的大小,Google一下找到了这个旋转矩阵Wiki页面.虽然游戏是3D的但是只是在一个平面上运动,所以只需要下面这个旋转矩阵 用原向量矩阵[x,y]乘以旋转矩阵矩阵外积,左行乘右列代码如下 /// <summary> ///

cocos2d-x-3.x (3)简单改变界面大小

关于界面大小的改变,简单的加入一个操作就行了. glview->setFrameSize(480,480); 加入到这个底下,就是简单的改变屏幕大小.

CSS3魔法堂:禁止用户改变textarea大小

一.前言 在FF.Chrome和Safari下默认时允许用户以拖拽形式来改变textarea大小,这不仅与IE下textarea的行为特点有异,而且textarea的大小变化会撑大其父节点从而破坏整体布局. 二.原因 通过调用 window.getComputedStyle(textarea元素, null).resize 返回both,我们可以知道原来是resize样式属性搞的鬼. 三.CSS3属性──resize 用于设置UserAgent调整元素尺寸的机制,就是说设置用户能否和如何自行改变

手机端横竖屏切换,怎么做才能安卓浏览器及时改变字体大小

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>账号绑定</title><meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"><meta