//-------开始查看血缘关系图-------------------
var draw_graph = function(srcList,desList,metaObj){
var vetdatas = {};
var columns = {};
var vet = {};
var relation = {};
mxGraphView.prototype.updateFloatingTerminalPoint = function(edge, start, end, source){
var next = this.getNextPoint(edge, end, source);
if(next.x ){
var div = start.text.node.getElementsByTagName('div')[0];
var x = start.x;
var y = start.getCenterY();
//Checks on which side of the terminal to leave
if (next.x > x + start.width / 2){
x += start.width;
}
if (div != null){
y = start.getCenterY() - div.scrollTop;
if (mxUtils.isNode(edge.cell.value) && !this.graph.isCellCollapsed(start.cell)){
var attr = (source) ? "sourceRow" : "targetRow";
var row = parseInt(edge.cell.value.getAttribute(attr));
var table = div.getElementsByTagName('table')[0];
var trs = table.getElementsByTagName('tr');
var tr = trs[Math.min(trs.length - 1, row - 1)];
if (tr != null){
y = getRowY(start, tr);
}
}
y = Math.min(start.y + start.height, Math.max(start.y + div.offsetTop, y));
if (edge != null && edge.absolutePoints != null){
next.y = y;
}
}
edge.setAbsoluteTerminalPoint(new mxPoint(x, y), source);
if (source && mxUtils.isNode(edge.cell.value) && start != null && end != null){
var edges = this.graph.getEdgesBetween(start.cell, end.cell, true);
var tmp = [];
var row = edge.cell.value.getAttribute('targetRow');
for (var i = 0; i < edges.length; i++){
if (mxUtils.isNode(edges[i].value) && edges[i].value.getAttribute('targetRow') == row){
tmp.push(edges[i]);
}
}
edges = tmp;
if (edges.length > 1 && edge.cell == edges[edges.length - 1]){
var states = [];
var y = 0;