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. 10
      src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs

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

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

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

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

Loading…
Cancel
Save