KendoUI Diagram

Diagram

by JSDavi

HTML

<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.1.416/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.1.416/styles/kendo.default.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.1.416/styles/kendo.dataviz.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.1.416/styles/kendo.dataviz.default.css">
<script src="http://cdn.kendostatic.com/2014.1.416/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.1.416/js/kendo.all.min.js"></script>
<body>
    <div id="example" class="k-content absConf">
        <div class="diagram-wrapper" style="margin: auto;">
            <div id="diagram"></div>
        </div>
    </div>
</body>

CSS

g.append(new dataviz.diagram.Rectangle({
        width: 210,
        height: 75,
        stroke: {
            width: 0
        },
        background: dataItem.colorScheme
    }));

    g.append(new dataviz.diagram.TextBlock({
        text: dataItem.firstName + " " + dataItem.lastName,
        x: 85,
        y: 20,
        color: "#fff"
    }));

    g.append(new dataviz.diagram.TextBlock({
        text: dataItem.title,
        x: 85,
        y: 40,
        color: "#fff"
    }));

    g.append(new dataviz.diagram.Image({
        source: "http://demos.telerik.com/kendo-ui//content/dataviz/diagram/people/" + dataItem.image,
        x: 3,
        y: 3,
        width: 68,
        height: 68
    }));

    return g;
}

JavaScript

//Demo kendo ui diagram
var data = [{
    firstName: "Server0",
    lastName: "S",
    image: "antonio.jpg",
    title: "状态良好",
    colorScheme: "#1696d3",
    items: [{
        firstName: "Server1",
        image: "elizabeth.jpg",
        lastName: "S",
        title: "状态良好!",
        colorScheme: "#ef6944"        
    }, {
        firstName: "Server2",
        lastName: "S",
        image: "diego.jpg",
        title: "状态良好",
        colorScheme: "#ee587b"
    }, {
        firstName: "Server3",
        lastName: "S",
        image: "felipe.jpg",
        title: "状态良好",
        colorScheme: "#75be16"
    }]
}];

function visualTemplate(options) {
    var dataviz = kendo.dataviz;
    var g = new dataviz.diagram.Group();
    var dataItem = options.dataItem;

    g.append(new dataviz.diagram.Rectangle({
        width: 110,
        height: 35,
        stroke: {
            width: 0
        },
        background: dataItem.colorScheme
    }));

    g.append(new dataviz.diagram.TextBlock({
        text: dataItem.firstName,
        x: 38,
        y: 5,
        fontSize:16,
        color: "#fff"
    }));

    g.append(new dataviz.diagram.TextBlock({
        text: dataItem.title,
        x: 38,
        y: 23,
        fontSize:12,
        color: "#fff"
    }));

    g.append(new dataviz.diagram.Image({
        source: "http://demos.telerik.com/kendo-ui//content/dataviz/diagram/people/" + dataItem.image,
        x: 1,
        y: 1,
        width: 33,
        height: 33
    }));

    return g;
}

function createDiagram() {
    $("#diagram").kendoDiagram({
        dataSource: new kendo.data.HierarchicalDataSource({
            data: data,
            schema: {
                model: {
                    children: "items"
                }
            }
        }),
        layout: {
            type: "layered"
        },
        shapeDefaults: {
            visual: visualTemplate,
            editable: false,
            rotatable: true,
            resizable: false
        },
...