public SelectionNode(VplControl hostCanvas) : base(hostCanvas)
{
searchTextBox = new SearchTextBox();
searchTextBox.OnSearch += searchTextBox_OnSearch;
var tempTypeList = new List<Type>();
AddControlToNode(searchTextBox);
listBox.DisplayMemberPath = "Name";
listBox.MaxHeight = 140;
listBox.MinHeight = 80;
AddControlToNode(listBox);
switch (hostCanvas.NodeTypeMode)
{
case NodeTypeModes.OnlyInternalTypes:
tempTypeList.AddRange(
Utilities.Utilities.GetTypesInNamespace(Assembly.GetExecutingAssembly(), "TUM.CMS.VplControl.Nodes")
.ToList());
break;
case NodeTypeModes.OnlyExternalTypes:
tempTypeList.AddRange(hostCanvas.ExternalNodeTypes);
break;
case NodeTypeModes.All:
tempTypeList.AddRange(
Utilities.Utilities.GetTypesInNamespace(Assembly.GetExecutingAssembly(), "TUM.CMS.VplControl.Nodes")
.ToList());
tempTypeList.AddRange(hostCanvas.ExternalNodeTypes);
break;
}
tempTypeList = tempTypeList.OrderBy(x => x.Name).ToList();
foreach (var type in tempTypeList.Where(type => !type.IsAbstract && !type.Name.Contains("<>")))
typeList.Add(type);
listBox.ItemsSource = typeList;
searchTextBox.PreviewKeyDown += searchTextBox_KeyDown;
listBox.PreviewMouseLeftButtonUp += listBox_PreviewMouseLeftButtonUp;
listBox.SelectionMode = SelectionMode.Single;
Border.MouseLeave += SelectionNode_MouseLeave;
MouseEnter += SelectionNode_MouseEnter;
}