10 changed files with 336 additions and 246 deletions
@ -0,0 +1,40 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using ICSharpCode.TreeView; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser |
||||||
|
{ |
||||||
|
public class AssemblyTreeNode : ModelCollectionTreeNode |
||||||
|
{ |
||||||
|
IAssemblyModel model; |
||||||
|
|
||||||
|
public AssemblyTreeNode(IAssemblyModel model) |
||||||
|
{ |
||||||
|
if (model == null) |
||||||
|
throw new ArgumentNullException("model"); |
||||||
|
this.model = model; |
||||||
|
} |
||||||
|
|
||||||
|
protected override object GetModel() |
||||||
|
{ |
||||||
|
return model; |
||||||
|
} |
||||||
|
|
||||||
|
protected override IComparer<SharpTreeNode> NodeComparer { |
||||||
|
get { |
||||||
|
return NodeTextComparer; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected override IModelCollection<object> ModelChildren { |
||||||
|
get { |
||||||
|
return model.Namespaces; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
@ -0,0 +1,65 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.NRefactory.TypeSystem; |
||||||
|
using ICSharpCode.TreeView; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser |
||||||
|
{ |
||||||
|
public class MemberTreeNode : SharpTreeNode |
||||||
|
{ |
||||||
|
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); |
||||||
|
} |
||||||
|
|
||||||
|
public override void ActivateItem(System.Windows.RoutedEventArgs e) |
||||||
|
{ |
||||||
|
var target = model.Resolve(); |
||||||
|
if (target != null) |
||||||
|
NavigationService.NavigateTo(target); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
@ -0,0 +1,56 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
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; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser |
||||||
|
{ |
||||||
|
public class NamespaceTreeNode : ModelCollectionTreeNode |
||||||
|
{ |
||||||
|
INamespaceModel model; |
||||||
|
|
||||||
|
public NamespaceTreeNode(INamespaceModel model) |
||||||
|
{ |
||||||
|
if (model == null) |
||||||
|
throw new ArgumentNullException("model"); |
||||||
|
this.model = model; |
||||||
|
} |
||||||
|
|
||||||
|
protected override object GetModel() |
||||||
|
{ |
||||||
|
return model; |
||||||
|
} |
||||||
|
|
||||||
|
protected override IComparer<SharpTreeNode> NodeComparer { |
||||||
|
get { |
||||||
|
return NodeTextComparer; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected override IModelCollection<object> ModelChildren { |
||||||
|
get { |
||||||
|
return model.Types; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override object Icon { |
||||||
|
get { |
||||||
|
return ClassBrowserIconService.Namespace.ImageSource; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override object Text { |
||||||
|
get { |
||||||
|
return model.FullName; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
@ -0,0 +1,53 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using ICSharpCode.TreeView; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser |
||||||
|
{ |
||||||
|
public class ProjectTreeNode : ModelCollectionTreeNode |
||||||
|
{ |
||||||
|
IProject project; |
||||||
|
|
||||||
|
public ProjectTreeNode(IProject project) |
||||||
|
{ |
||||||
|
if (project == null) |
||||||
|
throw new ArgumentNullException("project"); |
||||||
|
this.project = project; |
||||||
|
} |
||||||
|
|
||||||
|
protected override object GetModel() |
||||||
|
{ |
||||||
|
return project; |
||||||
|
} |
||||||
|
|
||||||
|
public override object Text { |
||||||
|
get { |
||||||
|
return project.Name; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override object Icon { |
||||||
|
get { |
||||||
|
return IconService.GetImageSource(IconService.GetImageForProjectType(project.Language)); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected override IComparer<SharpTreeNode> NodeComparer { |
||||||
|
get { |
||||||
|
return NodeTextComparer; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected override IModelCollection<object> ModelChildren { |
||||||
|
get { |
||||||
|
return project.AssemblyModel.Namespaces; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
@ -0,0 +1,53 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using ICSharpCode.TreeView; |
||||||
|
using ICSharpCode.SharpDevelop.Project; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser |
||||||
|
{ |
||||||
|
public class SolutionTreeNode : ModelCollectionTreeNode |
||||||
|
{ |
||||||
|
ISolution solution; |
||||||
|
|
||||||
|
public SolutionTreeNode(ISolution solution) |
||||||
|
{ |
||||||
|
if (solution == null) |
||||||
|
throw new ArgumentNullException("solution"); |
||||||
|
this.solution = solution; |
||||||
|
} |
||||||
|
|
||||||
|
protected override object GetModel() |
||||||
|
{ |
||||||
|
return solution; |
||||||
|
} |
||||||
|
|
||||||
|
public override object Text { |
||||||
|
get { |
||||||
|
return "Solution " + solution.Name; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override object Icon { |
||||||
|
get { |
||||||
|
return IconService.GetImageSource("Icons.16x16.SolutionIcon"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected override IComparer<SharpTreeNode> NodeComparer { |
||||||
|
get { |
||||||
|
return NodeTextComparer; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected override IModelCollection<object> ModelChildren { |
||||||
|
get { |
||||||
|
return solution.Projects; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
@ -0,0 +1,61 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using ICSharpCode.NRefactory.TypeSystem; |
||||||
|
using ICSharpCode.TreeView; |
||||||
|
|
||||||
|
namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser |
||||||
|
{ |
||||||
|
public class TypeDefinitionTreeNode : ModelCollectionTreeNode |
||||||
|
{ |
||||||
|
ITypeDefinitionModel definition; |
||||||
|
|
||||||
|
public TypeDefinitionTreeNode(ITypeDefinitionModel definition) |
||||||
|
{ |
||||||
|
if (definition == null) |
||||||
|
throw new ArgumentNullException("definition"); |
||||||
|
this.definition = definition; |
||||||
|
} |
||||||
|
|
||||||
|
protected override object GetModel() |
||||||
|
{ |
||||||
|
return definition; |
||||||
|
} |
||||||
|
|
||||||
|
public override object Icon { |
||||||
|
// TODO why do I have to resolve this?
|
||||||
|
get { |
||||||
|
return ClassBrowserIconService.GetIcon(definition.Resolve()).ImageSource; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override object Text { |
||||||
|
get { |
||||||
|
return definition.Name; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected override IComparer<SharpTreeNode> NodeComparer { |
||||||
|
get { |
||||||
|
return NodeTextComparer; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
protected override IModelCollection<object> ModelChildren { |
||||||
|
get { |
||||||
|
return definition.Members; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public override void ActivateItem(System.Windows.RoutedEventArgs e) |
||||||
|
{ |
||||||
|
var target = definition.Resolve(); |
||||||
|
if (target != null) |
||||||
|
NavigationService.NavigateTo(target); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
Loading…
Reference in new issue