Adding reference source for part of Workflow Foundation
[mono.git] / mcs / class / referencesource / System.Activities.Presentation / System.Activities.Presentation / System / Activities / Presentation / Toolbox / TreeViewTemplateSelector.cs
diff --git a/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Toolbox/TreeViewTemplateSelector.cs b/mcs/class/referencesource/System.Activities.Presentation/System.Activities.Presentation/System/Activities/Presentation/Toolbox/TreeViewTemplateSelector.cs
new file mode 100644 (file)
index 0000000..c1354cc
--- /dev/null
@@ -0,0 +1,38 @@
+//------------------------------------------------------------
+// Copyright (c) Microsoft Corporation.  All rights reserved.
+//------------------------------------------------------------
+
+namespace System.Activities.Presentation.Toolbox
+{
+    using System.Windows;
+    using System.Windows.Controls;
+
+    // This class is resposible for selecting proper template for Category and Tool objects 
+    // (those entities have different values beeing displayed)
+
+    sealed class TreeViewTemplateSelector : DataTemplateSelector
+    {
+        ToolboxControl owner;
+
+        public TreeViewTemplateSelector(ToolboxControl owner)
+        {
+            this.owner = owner;
+        }
+
+        public override DataTemplate SelectTemplate(object item, DependencyObject container)
+        {
+            DataTemplate result = base.SelectTemplate(item, container);
+
+            if (item is ToolboxItemWrapper && null != this.owner.ToolTemplate)
+            {
+                result = this.owner.ToolTemplate;
+            }
+            if (item is ToolboxCategory && null != this.owner.CategoryTemplate)
+            {
+                result = this.owner.CategoryTemplate;
+            }
+
+            return result;
+        }
+    }
+}