IMenuRenderer CreateRenderer (IMenuRenderer current)
{
#if NET_4_0
Type newType = null;
switch (RenderingMode) {
case MenuRenderingMode.Default:
if (RenderingCompatibilityLessThan40)
newType = typeof (MenuTableRenderer);
else
newType = typeof (MenuListRenderer);
break;
case MenuRenderingMode.Table:
newType = typeof (MenuTableRenderer);
break;
case MenuRenderingMode.List:
newType = typeof (MenuListRenderer);
break;
}
if (newType == null)
return null;
if (current == null || current.GetType () != newType)
return Activator.CreateInstance (newType, this) as IMenuRenderer;
#else
if (current == null)
return new MenuTableRenderer (this);
#endif
return current;
}