diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-03-13 17:16:24 +0100 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2018-03-13 17:16:24 +0100 |
| commit | 5f1d0213e0dadecc8f93d44e36ea3a11a1aa9baa (patch) | |
| tree | 8c01fd9b8f9e446d17adf9c415e0a4d6ef988a18 /CrowIDE/src/MemberView/MembersView.cs | |
| parent | 99d63b94c2e0e09eae8efb67e720920c130f7346 (diff) | |
limit to html safe color plus several ones, crowIDE wip
Diffstat (limited to 'CrowIDE/src/MemberView/MembersView.cs')
| -rw-r--r-- | CrowIDE/src/MemberView/MembersView.cs | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/CrowIDE/src/MemberView/MembersView.cs b/CrowIDE/src/MemberView/MembersView.cs index e23a41ba..d8a9ddcd 100644 --- a/CrowIDE/src/MemberView/MembersView.cs +++ b/CrowIDE/src/MemberView/MembersView.cs @@ -37,7 +37,7 @@ namespace Crow.Coding public MembersView () : base() {} //cache property containers per type - Dictionary<string,PropertyContainer[]> propContainersCache = new Dictionary<string, PropertyContainer[]>(); + //Dictionary<string,PropertyContainer[]> propContainersCache = new Dictionary<string, PropertyContainer[]>(); Dictionary<string,List<CategoryContainer>> categoryContainersCache = new Dictionary<string,List<CategoryContainer>> (); [XmlAttributeAttribute][DefaultValue(null)] @@ -63,7 +63,7 @@ namespace Crow.Coding } Type it = instance.GetType (); - if (!propContainersCache.ContainsKey (it.FullName)) { + if (!categoryContainersCache.ContainsKey (it.FullName)) { MemberInfo[] members = it.GetMembers (BindingFlags.Public | BindingFlags.Instance); List<PropertyContainer> props = new List<PropertyContainer> (); foreach (MemberInfo m in members) { @@ -76,20 +76,24 @@ namespace Crow.Coding props.Add (new PropertyContainer (this, pi)); } } - propContainersCache.Add (it.FullName, props.OrderBy (p => p.Name).ToArray ()); - } - - List<CategoryContainer> categories = new List<CategoryContainer> (); + //propContainersCache.Add (it.FullName, props.OrderBy (p => p.Name).ToArray ()); + List<CategoryContainer> categories = new List<CategoryContainer> (); - foreach (IGrouping<string,PropertyContainer> ig in propContainersCache[it.FullName].GroupBy(pc=>pc.DesignCategory)) { - categories.Add(new CategoryContainer(ig.Key, ig.ToArray())); + foreach (IGrouping<string,PropertyContainer> ig in props.OrderBy (p => p.Name).GroupBy(pc=>pc.DesignCategory)) { + categories.Add(new CategoryContainer(ig.Key, ig.ToArray())); + } + categoryContainersCache.Add (it.FullName, categories); } - Data = categories; + + Data = categoryContainersCache[it.FullName]; if (lastInst != instance) { - foreach (PropertyContainer pc in propContainersCache [it.FullName]) { - pc.NotifyValueChanged ("Value", pc.Value); + foreach (CategoryContainer cc in categoryContainersCache [it.FullName]) { + foreach (PropertyContainer pc in cc.Properties) { + pc.NotifyValueChanged ("Value", pc.Value); + pc.NotifyValueChanged ("LabForeground", pc.LabForeground); + } } } } |