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

Last change on this file since 1621 was 1621, checked in by matkovic, 12 years ago
  • Plugin resize now working
  • each PluginType now distinguish in color
File size: 3.6 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 GetDataColor(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                return Colors.Black;
60            }
61        }
62
63        /// <summary>
64        /// Return color from a giving PluginType
65        /// </summary>
66        /// <param name="type"></param>
67        /// <returns></returns>
68        public static Color GetPluginTypeColor(Type type)
69        {
70            if (type.GetInterface(typeof(IEncryption).Name) != null)
71            {
72                EncryptionTypeAttribute eta = type.GetEncryptionTypeAttribute();
73                switch (eta.EncryptionType)
74                {
75                    case EncryptionType.Asymmetric:
76                        return Colors.MediumSeaGreen;
77
78                    case EncryptionType.Classic:
79                        return Colors.LightBlue;
80
81                    case EncryptionType.SymmetricBlock:
82                        return Colors.LightYellow;
83
84                    case EncryptionType.SymmetricStream:
85                        return Colors.LightSteelBlue;
86
87                    case EncryptionType.Hybrid:
88                        return Colors.Khaki;
89                }
90            }
91
92            if (type.GetInterface(typeof(IGenerator).Name) != null)
93            {
94                return Colors.LemonChiffon;
95            }
96
97            if (type.GetInterface(typeof(IHash).Name) != null)
98            {
99                return Colors.Orange;
100            }
101
102            if (type.GetInterface(typeof(IStatistic).Name) != null)
103            {
104                return Colors.Violet;
105            }
106
107            if (type.GetInterface(typeof(IAnalysisMisc).Name) != null)
108            {
109                return Colors.Turquoise;
110            }
111
112            return Colors.Black;
113        }
114    }
115}
Note: See TracBrowser for help on using the repository browser.