public override void Draw(object dc, ShapeRenderer renderer, double dx, double dy, ImmutableArray<XProperty> db, XRecord r)
{
var record = this.Data.Record ?? r;
if (State.Flags.HasFlag(ShapeStateFlags.Visible))
{
foreach (var shape in Shapes)
{
shape.Draw(dc, renderer, dx, dy, db, record);
}
}
if (renderer.State.SelectedShape != null)
{
if (this == renderer.State.SelectedShape)
{
foreach (var connector in Connectors)
{
connector.Draw(dc, renderer, dx, dy, db, record);
}
}
else
{
foreach (var connector in Connectors)
{
if (connector == renderer.State.SelectedShape)
{
connector.Draw(dc, renderer, dx, dy, db, record);
}
}
}
}
if (renderer.State.SelectedShapes != null)
{
if (renderer.State.SelectedShapes.Contains(this))
{
foreach (var connector in Connectors)
{
connector.Draw(dc, renderer, dx, dy, db, record);
}
}
}
}