1 //----------------------------------------------------------------
2 // <copyright company="Microsoft Corporation">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 //----------------------------------------------------------------
7 namespace System.Activities.Presentation.Utility
10 using System.Activities.Presentation.View;
11 using System.Collections.Generic;
12 using System.Windows.Media;
14 internal static class IconHelper
16 private static Dictionary<string, string> iconNameMapping;
18 internal static Dictionary<string, string> IconNameMapping
22 if (iconNameMapping == null)
24 iconNameMapping = new Dictionary<string, string>()
26 { "System.Activities.Statements.AddToCollection`1", "AddToCollectionIcon" },
27 { "System.Activities.Statements.Assign", "AssignIcon" },
28 { "System.Activities.Statements.CancellationScope", "CancellationScopeIcon" },
29 { "System.Activities.Statements.ClearCollection`1", "ClearCollectionIcon" },
30 { "System.Activities.Statements.CompensableActivity", "CompensableActivityIcon" },
31 { "System.Activities.Statements.Compensate", "CompensateIcon" },
32 { "System.Activities.Statements.Confirm", "ConfirmIcon" },
33 { "System.Activities.Statements.Delay", "DelayIcon" },
34 { "System.Activities.Statements.DoWhile", "DoWhileIcon" },
35 { "System.Activities.Statements.ExistsInCollection`1", "ExistsInCollectionIcon" },
36 { "System.Activities.Statements.Flowchart", "FlowchartIcon" },
37 { "System.Activities.Statements.FlowDecision", "FlowDecisionIcon" },
38 { "System.Activities.Statements.FlowSwitch`1", "FlowSwitchIcon" },
39 { "System.Activities.Statements.If", "IfIcon" },
40 { "System.Activities.Statements.Interop", "InteropIcon" },
41 { "System.Activities.Statements.InvokeDelegate", "InvokeDelegateIcon" },
42 { "System.Activities.Statements.InvokeMethod", "InvokeMethodIcon" },
43 { "System.Activities.Statements.NoPersistScope", "NoPersistScopeIcon" },
44 { "System.Activities.Statements.Parallel", "ParallelIcon" },
45 { "System.Activities.Statements.Persist", "PersistIcon" },
46 { "System.Activities.Statements.Pick", "PickIcon" },
47 { "System.Activities.Statements.PickBranch", "PickBranchIcon" },
48 { "System.Activities.Statements.RemoveFromCollection`1", "RemoveFromCollectionIcon" },
49 { "System.Activities.Statements.Rethrow", "RethrowIcon" },
50 { "System.Activities.Statements.Sequence", "SequenceIcon" },
51 { "System.Activities.Statements.State", "StateIcon" },
52 { "System.Activities.Statements.StateMachine", "StateMachineIcon" },
53 { "System.Activities.Statements.Switch`1", "SwitchIcon" },
54 { "System.Activities.Statements.TerminateWorkflow", "TerminateWorkflowIcon" },
55 { "System.Activities.Statements.Throw", "ThrowIcon" },
56 { "System.Activities.Statements.TransactionScope", "TransactionScopeIcon" },
57 { "System.Activities.Statements.TryCatch", "TryCatchIcon" },
58 { "System.Activities.Statements.While", "WhileIcon" },
59 { "System.Activities.Statements.WriteLine", "WriteLineIcon" },
60 { "System.Activities.Core.Presentation.FinalState", "FinalStateIcon" },
61 { "System.Activities.Core.Presentation.Factories.StateMachineWithInitialStateFactory", "StateMachineIcon" },
62 { "System.Activities.Core.Presentation.Factories.ForEachWithBodyFactory`1", "ForEachIcon" },
63 { "System.Activities.Core.Presentation.Factories.ParallelForEachWithBodyFactory`1", "ParallelForEachIcon" },
64 { "System.Activities.Core.Presentation.Factories.PickWithTwoBranchesFactory", "PickIcon" },
65 { "System.ServiceModel.Activities.CorrelationScope", "CorrelationScopeIcon" },
66 { "System.ServiceModel.Activities.InitializeCorrelation", "InitializeCorrelationIcon" },
67 { "System.ServiceModel.Activities.Receive", "ReceiveIcon" },
68 { "System.ServiceModel.Activities.ReceiveReply", "ReceiveReplyIcon" },
69 { "System.ServiceModel.Activities.Send", "SendIcon" },
70 { "System.ServiceModel.Activities.SendReply", "SendReplyIcon" },
71 { "System.ServiceModel.Activities.TransactedReceiveScope", "TransactedReceiveScopeIcon" },
72 { "System.ServiceModel.Activities.Presentation.Factories.ReceiveAndSendReplyFactory", "ReceiveAndSendReplyIcon" },
73 { "System.ServiceModel.Activities.Presentation.Factories.SendAndReceiveReplyFactory", "SendAndReceiveReplyIcon" },
77 return iconNameMapping;
81 internal static string GetIconResourceKey(string activityFullName)
83 if (!string.IsNullOrWhiteSpace(activityFullName) && IconNameMapping.ContainsKey(activityFullName))
85 return IconNameMapping[activityFullName];
91 internal static DrawingBrush GetBrushFromResource(string activityFullName)
93 string resourceKey = GetIconResourceKey(activityFullName);
94 if (resourceKey == null)
99 var resourceDictionary = EditorResources.GetIcons();
100 if (resourceDictionary != null && resourceDictionary.Contains(resourceKey))
102 DrawingBrush drawingBrush = resourceDictionary[resourceKey] as DrawingBrush;