source: trunk/CrypPlugins/WorkspaceManager/Model/ColorHelper.cs @ 1640

Last change on this file since 1640 was 1640, checked in by matkovic, 12 years ago

-ProgresBar added
-few updates added
-Orthogonal PolyLines added(experimental)

File size: 3.4 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Numerics;
6using System.Windows.Media;
7using Cryptool.PluginBase;
8using System.Reflection;
9using Cryptool.PluginBase.Cryptography;
10using Cryptool.PluginBase.Analysis;
11using Cryptool.PluginBase.Generator;
12
13namespace WorkspaceManager.Model
14{
15    public class ColorHelper
16    {
17        /// <summary>
18        /// Returns a Color for a given Type
19        ///
20        /// example:
21        ///     System.String -> Colors.LightGray;
22        ///     
23        /// </summary>
24        /// <param name="obj"></param>
25        /// <returns></returns>
26        public static Color GetColor(Type type)
27        {
28            if (type.FullName == "System.String")
29            {               
30                return Colors.WhiteSmoke;
31            }
32            else if (   type.FullName == "System.Int16" || 
33                        type.FullName == "System.Int32" ||
34                        type.FullName == "System.Int64" || 
35                        type.FullName == "System.Int16[]" || 
36                        type.FullName == "System.Int32[]" ||
37                        type.FullName == "System.Int64[]")
38            {
39                return Colors.SkyBlue;
40            }
41            else if (type.FullName == "Cryptool.PluginBase.IO.CryptoolStream")
42            {
43                return Colors.Orange;
44            }
45            else if (type.FullName == "System.Byte" || type.FullName == "System.Byte[]")
46            {
47                return Colors.LightGreen;
48            }
49            else if (type.FullName == "System.Boolean" || type.FullName == "System.Boolean[]")
50            {
51                return Colors.Red;
52            }
53            else if (type.FullName == "System.Numerics.BigInteger")
54            {
55                return Colors.Purple;
56            }
57            else
58            {
59                if (type.GetInterface(typeof(IEncryption).Name) != null)
60                {
61                    EncryptionTypeAttribute eta = type.GetEncryptionTypeAttribute();
62                    switch (eta.EncryptionType)
63                    {
64                        case EncryptionType.Asymmetric:
65                            return Colors.MediumSeaGreen;
66
67                        case EncryptionType.Classic:
68                            return Colors.LightBlue;
69
70                        case EncryptionType.SymmetricBlock:
71                            return Colors.LightYellow;
72
73                        case EncryptionType.SymmetricStream:
74                            return Colors.LightSteelBlue;
75
76                        case EncryptionType.Hybrid:
77                            return Colors.Khaki;
78                    }
79                }
80
81                if (type.GetInterface(typeof(IGenerator).Name) != null)
82                {
83                    return Colors.LemonChiffon;
84                }
85
86                if (type.GetInterface(typeof(IHash).Name) != null)
87                {
88                    return Colors.Orange;
89                }
90
91                if (type.GetInterface(typeof(IStatistic).Name) != null)
92                {
93                    return Colors.Violet;
94                }
95
96                if (type.GetInterface(typeof(IAnalysisMisc).Name) != null)
97                {
98                    return Colors.Turquoise;
99                }
100
101                return Colors.Black;
102            }
103        }
104    }
105}
Note: See TracBrowser for help on using the repository browser.