private static TreeNode AddReferenceNode(TreeNode tnLayout, ProjectLayoutReference zReference,
ProjectLayout zLayout)
{
var sProjectPath = ProjectManager.Instance.ProjectPath;
var sFullReferencePath = zReference.RelativePath;
if (!String.IsNullOrEmpty(sProjectPath))
{
sFullReferencePath = sProjectPath + Path.DirectorySeparatorChar + zReference.RelativePath;
}
if (zLayout != null && zLayout.Reference != null)
{
// duplicate check
foreach (var zExistingReference in zLayout.Reference)
{
if (zExistingReference.RelativePath.Equals(zReference.RelativePath,
StringComparison.CurrentCultureIgnoreCase))
{
return null;
}
}
}
var tnReference = new TreeNode(Path.GetFileName(sFullReferencePath))
{
BackColor = zReference.Default ? DEFAULT_REFERENCE_COLOR : Color.White,
ToolTipText = zReference.RelativePath,
Tag = zReference
};
tnLayout.Nodes.Add(tnReference);
if (null != zLayout)
{
// update the ProjectLayout
var listReferences = new List<ProjectLayoutReference>();
if (null != zLayout.Reference)
{
listReferences.AddRange(zLayout.Reference);
}
listReferences.Add(zReference);
zLayout.Reference = listReferences.ToArray();
}
return tnReference;
}