gojs实现class类实体关系图效果代码
代码语言:html
所属分类:图表
代码描述:gojs实现class类实体关系图效果代码,每个class有自己的属性与方法,通过连线来显示关系。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/go.js"></script>
</head>
<body onload="init()">
<div id="sample">
<div id="myDiagramDiv" style="border: solid 1px black; width:100%; height:800px"></div>
</div>
<script>
function init() {
if (window.goSamples) goSamples(); // init for these samples -- you don't need to call this
var $ = go.GraphObject.make;
myDiagram =
$(go.Diagram, "myDiagramDiv",
{
initialContentAlignment: go.Spot.Center,
"undoManager.isEnabled": true,
layout: $(go.TreeLayout,
{ // this only lays out in trees nodes connected by "generalization" links
angle: 90,
path: go.TreeLayout.PathSource, // links go from child to parent
setsPortSpot: false, // keep Spot.AllSides for link connection spot
setsChildPortSpot: false, // keep Spot.AllSides
// nodes not connected by "generalization" links are laid out horizontally
arrangement: go.TreeLayout.ArrangementHorizontal
})
});
// show visibility or access as a single character at the beginning of each property or method
function convertVisibility(v) {
switch (v) {
case "public": return "+";
case "private": return "-";
case "protected": return "#";
case "package": return "~";
default: return v;
}
}
// the item template for properties
var propertyTemplate =
$(go.Panel, "Horizontal",
// property visibility/access
/* $(go.TextBlock,
{ isMultiline: false, editable: false, width: 12 },
new go.Binding("text", "visibility", convertVisibility)),*/
// property name, underlined if scope=="class" to indicate static property
$(go.TextBlock,
{ isMultiline: false, editable: true },
new go.Binding("text", "name").makeTwoWay(),
new go.Binding("isUnderline", "scope", function(s) { return s[0] === 'c' })),
// property type, if known
$(go.TextBlock, "",
new go.Binding("text", "type", function(t) { return (t ? ": " : ""); })),
$(go.TextBlock,
{ isMultiline: false, editable: true },
new go.Binding("text", "type").makeTwoWay()),
// property default value, if any
$(go.TextBlock,
{ isMultiline: false, editable: false },
new go.Binding("text", "default", function(s) { return s ? " = " + s : ""; }))
);
// the item template for methods
var methodTemplate =
$(go.Panel, "Horizontal",
// method visibility/access
/*$(go.TextBlock,
{ isMultiline: false, editable: false, width: 12 },
new go.Binding("text", "visibility", convertVisibility)),*/
// method name, underlined if scope=="class" to indicate static method
$(go.TextBlock,
{ isMultiline: false, editable: true },
new go.Binding("text", "name").makeTwoWay(),
new go.Binding("isUnderline", "scope", function(s) { return s[0] === 'c' })),
// method parameters
$(go.TextBlock, "()",
// this does not permit adding/editing/removing of parameters via inplace edits
new go.Binding("text", "parameters", function(p.........完整代码请登录后点击上方下载按钮下载查看
网友评论0