using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using DevComponents.Tree.Display;
namespace DevComponents.Tree.Display
{
	/// 
	/// Represents the line connector display class.
	/// 
	public class LineConnectorDisplay:NodeConnectorDisplay
	{
		/// 
		/// Draws connector line between two nodes.
		/// 
		/// Connector context information.
		public override void DrawConnector(ConnectorRendererEventArgs info)
		{
			if(info.NodeConnector.LineColor.IsEmpty || info.NodeConnector.LineWidth<=0)
				return;
			DrawStarConnector(info);
		}
		private void DrawStarConnector(ConnectorRendererEventArgs info)
		{
			Point pStart=this.GetStartPoint(info);
			Point[] parr=this.GetEndPoint(info);
			Point pEnd=parr[0];
			Point pEndUnderLine=parr[1];
			if(info.ConnectorPoints==null)
			{
				// Determine whether curve can be drawn
				if(Math.Abs(pStart.X-pEnd.X)<=6 || Math.Abs(pStart.Y-pEnd.Y)<=10)
				{
					DrawLineConnector(info,pStart,pEnd,pEndUnderLine);
				}
				else
				{
					Point pBottom=new Point();
					Point pTop=new Point();
					if(pEnd.X