|
|
|
@ -4,6 +4,7 @@
@@ -4,6 +4,7 @@
|
|
|
|
|
using System; |
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
using System.Windows.Media; |
|
|
|
|
using ICSharpCode.NRefactory.TypeSystem; |
|
|
|
|
using ICSharpCode.NRefactory.Utils; |
|
|
|
|
using ICSharpCode.TreeView; |
|
|
|
|
using ICSharpCode.SharpDevelop.Project; |
|
|
|
@ -220,4 +221,66 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
@@ -220,4 +221,66 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
|
|
|
|
|
NavigationService.NavigateTo(target); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public class MemberTreeNode : ModelCollectionTreeNode |
|
|
|
|
{ |
|
|
|
|
IMemberModel model; |
|
|
|
|
|
|
|
|
|
public MemberTreeNode(IMemberModel model) |
|
|
|
|
{ |
|
|
|
|
if (model == null) |
|
|
|
|
throw new ArgumentNullException("model"); |
|
|
|
|
this.model = model; |
|
|
|
|
// disable lazy loading to avoid showing a useless + sign in the tree.
|
|
|
|
|
// remove this line if you add child nodes
|
|
|
|
|
LazyLoading = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected override object GetModel() |
|
|
|
|
{ |
|
|
|
|
return model; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override object Icon { |
|
|
|
|
// TODO why do I have to resolve this?
|
|
|
|
|
get { |
|
|
|
|
return ClassBrowserIconService.GetIcon(model.Resolve()).ImageSource; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
object cachedText; |
|
|
|
|
|
|
|
|
|
public override object Text { |
|
|
|
|
get { |
|
|
|
|
if (cachedText == null) |
|
|
|
|
cachedText = GetText(); |
|
|
|
|
return cachedText; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
object GetText() |
|
|
|
|
{ |
|
|
|
|
var member = model.Resolve(); |
|
|
|
|
if (member == null) |
|
|
|
|
return model.Name; |
|
|
|
|
IAmbience ambience = AmbienceService.GetCurrentAmbience(); |
|
|
|
|
ambience.ConversionFlags = ConversionFlags.ShowTypeParameterList | ConversionFlags.ShowParameterList | ConversionFlags.ShowParameterNames; |
|
|
|
|
return ambience.ConvertEntity(member); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected override IComparer<SharpTreeNode> NodeComparer { |
|
|
|
|
get { return NodeTextComparer; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected override IModelCollection<object> ModelChildren { |
|
|
|
|
get { return ImmutableModelCollection<object>.Empty; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override void ActivateItem(System.Windows.RoutedEventArgs e) |
|
|
|
|
{ |
|
|
|
|
var target = model.Resolve(); |
|
|
|
|
if (target != null) |
|
|
|
|
NavigationService.NavigateTo(target); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|