Browse Source

"Base types" node now only shown in ClassBrowser, if there are indeed any base types.

pull/59/merge
Andreas Weizel 12 years ago
parent
commit
a9c0350db3
  1. 7
      src/Main/Base/Project/Dom/ClassBrowser/BaseTypesTreeNode.cs
  2. 8
      src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs

7
src/Main/Base/Project/Dom/ClassBrowser/BaseTypesTreeNode.cs

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
@ -23,6 +24,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -23,6 +24,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
this.definition.Updated += (sender, e) => UpdateBaseTypes();
this.text = SD.ResourceService.GetString("MainWindow.Windows.ClassBrowser.BaseTypes");
baseTypes = new SimpleModelCollection<ITypeDefinitionModel>();
UpdateBaseTypes();
}
protected override IModelCollection<object> ModelChildren {
@ -31,10 +33,9 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -31,10 +33,9 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
}
}
protected override void LoadChildren()
public bool HasBaseTypes()
{
UpdateBaseTypes();
base.LoadChildren();
return baseTypes.Count > 0;
}
void UpdateBaseTypes()

8
src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs

@ -22,6 +22,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -22,6 +22,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
if (definition == null)
throw new ArgumentNullException("definition");
this.definition = definition;
this.definition.Updated += (sender, e) => UpdateBaseTypesNode();
}
protected override object GetModel()
@ -57,7 +58,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser @@ -57,7 +58,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
protected override void LoadChildren()
{
base.LoadChildren();
UpdateBaseTypesNode();
}
void UpdateBaseTypesNode()
{
this.Children.RemoveAll(n => n is BaseTypesTreeNode);
var baseTypesTreeNode = new BaseTypesTreeNode(definition);
if (baseTypesTreeNode.HasBaseTypes())
Children.Insert(0, baseTypesTreeNode);
}

Loading…
Cancel
Save