-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathNodeShapeTemplate.razor
63 lines (59 loc) · 3.02 KB
/
NodeShapeTemplate.razor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
@namespace Synapse.Dashboard
<g class="shape">
@if (Node.Shape == NodeShape.Circle)
{
<Circle Bounds="bounds" />
}
else if (Node.Shape == NodeShape.Ellipse)
{
<Ellipse Bounds="bounds" />
}
else if (Node.Shape == SynapseNodeShape.Cartouche)
{
if (!WorkflowNode.IsCluster)
{
<rect class="node-rectangle" x="@(bounds.X.ToInvariantString())"
y="@(bounds.Y.ToInvariantString())"
width="@(bounds.Width.ToInvariantString())"
height="@(bounds.Height.ToInvariantString())"
rx="@((Node.RadiusX).ToInvariantString())"
ry="@((Node.RadiusY).ToInvariantString())" />
<path class="node-cartouche" d="
m @(bounds.X.ToInvariantString()) @((bounds.Y + Node.RadiusX).ToInvariantString())
c 0 -@((Node.RadiusX / 2).ToInvariantString()) @((Node.RadiusX / 2).ToInvariantString()) -@(Node.RadiusX.ToInvariantString()) @(Node.RadiusX.ToInvariantString()) -@(Node.RadiusX.ToInvariantString())
h @(((bounds.Width / 8) - 1).ToInvariantString())
v @(bounds.Height.ToInvariantString())
h -@(((bounds.Width / 8) - 1).ToInvariantString())
c -@((Node.RadiusX / 2).ToInvariantString()) 0 -@(Node.RadiusX.ToInvariantString()) -@((Node.RadiusX / 2).ToInvariantString()) -@(Node.RadiusX.ToInvariantString()) -@(Node.RadiusX.ToInvariantString())
z"
/>
}
else
{
<rect class="node-rectangle" x="@(bounds.X.ToInvariantString())"
y="@(bounds.Y.ToInvariantString())"
width="@(bounds.Width.ToInvariantString())"
height="@(bounds.Height.ToInvariantString())"
rx="@((Node.RadiusX).ToInvariantString())"
ry="@((Node.RadiusY).ToInvariantString())" />
<path class="node-cartouche" d="
m @(bounds.X.ToInvariantString()) @((bounds.Y + Node.RadiusX).ToInvariantString())
c 0 -@((Node.RadiusX / 2).ToInvariantString()) @((Node.RadiusX / 2).ToInvariantString()) -@(Node.RadiusX.ToInvariantString()) @(Node.RadiusX.ToInvariantString()) -@(Node.RadiusX.ToInvariantString())
h @((bounds.Width - (Node.RadiusX * 2)).ToInvariantString())
c @((Node.RadiusX / 2).ToInvariantString()) 0 @(Node.RadiusX.ToInvariantString()) @((Node.RadiusY / 2).ToInvariantString()) @(Node.RadiusX.ToInvariantString()) @(Node.RadiusY.ToInvariantString())
v @(Constants.ClusterHeight - 10)
h -@(bounds.Width.ToInvariantString())
z"
/>
}
}
else
{
<Rectangle Bounds="bounds" RadiusX="Node.RadiusX" RadiusY="Node.RadiusY" />
}
</g>
@code {
BoundingBox bounds => Node.Bounds!;
[CascadingParameter(Name = "Node")] public INodeViewModel Node { get; set; } = null!;
protected virtual IWorkflowNodeViewModel WorkflowNode => (IWorkflowNodeViewModel)this.Node;
}