internal void DrawElements(Graphics g, Rectangle clippingRegion)
{
//Containers
for (int i = 0; i <= elements.Count - 1; i++)
{
BaseElement el = elements[i];
if ((el is RectangleGroup) && (NeedDrawElement(el, clippingRegion)))
{
el.Draw(g);
}
if (el is ILabelElement)
{
((ILabelElement)el).Label.Draw(g);
}
}
//Draw Links first
for (int i = 0; i <= elements.Count - 1; i++)
{
BaseElement el = elements[i];
if ((el is BaseLinkElement) && (NeedDrawElement(el, clippingRegion)))
{
el.Draw(g);
}
if (el is ILabelElement)
{
((ILabelElement)el).Label.Draw(g);
}
}
//Draw the other elements
for (int i = 0; i <= elements.Count - 1; i++)
{
BaseElement el = elements[i];
if (!(el is BaseLinkElement) && !(el is RectangleGroup) && (NeedDrawElement(el, clippingRegion)))
{
if (el is NodeElement)
{
NodeElement n = (NodeElement)el;
n.Draw(g, (action == DesignerAction.Connect));
}
else
{
el.Draw(g);
}
if (el is ILabelElement)
{
((ILabelElement)el).Label.Draw(g);
}
}
}
}