115 lines
3.6 KiB
JavaScript
Vendored
115 lines
3.6 KiB
JavaScript
Vendored
/**
|
|
* $Id: mxKubernetes.js,v 1.5 2019/14/11 12:32:06 mate Exp $
|
|
* Copyright (c) 2006-2020, JGraph Ltd
|
|
*/
|
|
//**********************************************************************************************************************************************************
|
|
// Kubernetes icon
|
|
//**********************************************************************************************************************************************************
|
|
/**
|
|
* Extends mxShape.
|
|
*/
|
|
function mxShapeKubernetesIcon(bounds, fill, stroke, strokewidth)
|
|
{
|
|
mxShape.call(this);
|
|
this.bounds = bounds;
|
|
this.fill = fill;
|
|
this.stroke = stroke;
|
|
this.strokewidth = (strokewidth != null) ? strokewidth : 1;
|
|
};
|
|
|
|
/**
|
|
* Extends mxShape.
|
|
*/
|
|
mxUtils.extend(mxShapeKubernetesIcon, mxShape);
|
|
|
|
mxShapeKubernetesIcon.prototype.cst = {
|
|
ICON : 'mxgraph.kubernetes.icon'
|
|
};
|
|
|
|
mxShapeKubernetesIcon.prototype.customProperties = [
|
|
{name: 'prIcon', dispName: '', defVal: 'api', type: 'API',
|
|
enumList: [{val: 'c_c_m', dispName: 'C-C-M'},
|
|
{val: 'c_m', dispName: 'C-M'},
|
|
{val: 'c_role', dispName: 'C-Role'},
|
|
{val: 'cm', dispName: 'CM'},
|
|
{val: 'crb', dispName: 'CRB'},
|
|
{val: 'crd', dispName: 'CRD'},
|
|
{val: 'cronjob', dispName: 'Cronjob'},
|
|
{val: 'deploy', dispName: 'Deploy'},
|
|
{val: 'ds', dispName: 'DS'},
|
|
{val: 'ep', dispName: 'EP'},
|
|
{val: 'etcd', dispName: 'ETCD'},
|
|
{val: 'group', dispName: 'Group'},
|
|
{val: 'hpa', dispName: 'HPA'},
|
|
{val: 'ing', dispName: 'ING'},
|
|
{val: 'job', dispName: 'Job'},
|
|
{val: 'k_proxy', dispName: 'K-Proxy'},
|
|
{val: 'kubelet', dispName: 'Kubelet'},
|
|
{val: 'limits', dispName: 'Limits'},
|
|
{val: 'master', dispName: 'Master'},
|
|
{val: 'netpol', dispName: 'Netpol'},
|
|
{val: 'node', dispName: 'Node'},
|
|
{val: 'ns', dispName: 'NS'},
|
|
{val: 'pod', dispName: 'Pod'},
|
|
{val: 'psp', dispName: 'PSP'},
|
|
{val: 'pv', dispName: 'PV'},
|
|
{val: 'pvc', dispName: 'PVC'},
|
|
{val: 'quota', dispName: 'Quota'},
|
|
{val: 'rb', dispName: 'RB'},
|
|
{val: 'role', dispName: 'Role'},
|
|
{val: 'rs', dispName: 'RS'},
|
|
{val: 'sa', dispName: 'SA'},
|
|
{val: 'sc', dispName: 'SC'},
|
|
{val: 'sched', dispName: 'Sched'},
|
|
{val: 'secret', dispName: 'Secret'},
|
|
{val: 'sts', dispName: 'STS'},
|
|
{val: 'svc', dispName: 'SVC'},
|
|
{val: 'user', dispName: 'User'},
|
|
{val: 'vol', dispName: 'Vol'}]}
|
|
];
|
|
|
|
|
|
/**
|
|
* Function: paintVertexShape
|
|
*
|
|
* Paints the vertex shape.
|
|
*/
|
|
mxShapeKubernetesIcon.prototype.paintVertexShape = function(c, x, y, w, h)
|
|
{
|
|
var prIcon = mxUtils.getValue(this.state.style, 'prIcon', '');
|
|
|
|
var fillColor = mxUtils.getValue(this.state.style, 'fillColor', '#ffffff');
|
|
var strokeColor = mxUtils.getValue(this.state.style, 'strokeColor', '#ffffff');
|
|
|
|
c.translate(x, y);
|
|
|
|
var frame = mxStencilRegistry.getStencil('mxgraph.kubernetes.frame');
|
|
|
|
c.setFillColor(strokeColor);
|
|
frame.drawShape(c, this, 0, 0, w, h);
|
|
|
|
c.setFillColor(fillColor);
|
|
frame.drawShape(c, this, w * 0.03, h * 0.03, w * 0.94, h * 0.94);
|
|
|
|
var prStencil = mxStencilRegistry.getStencil('mxgraph.kubernetes.' + prIcon);
|
|
|
|
if (prStencil != null)
|
|
{
|
|
c.setFillColor(strokeColor);
|
|
prStencil.drawShape(c, this, w * 0.2, h * 0.2, w * 0.6, h * 0.6);
|
|
}
|
|
};
|
|
|
|
mxCellRenderer.registerShape(mxShapeKubernetesIcon.prototype.cst.ICON, mxShapeKubernetesIcon);
|
|
|
|
mxShapeKubernetesIcon.prototype.getConstraints = function(style, w, h)
|
|
{
|
|
var constr = [];
|
|
var r = Math.min(h * 0.5, w * 0.5);
|
|
|
|
constr.push(new mxConnectionConstraint(new mxPoint(0, 0.5), false));
|
|
|
|
return (constr);
|
|
}
|
|
|