diff --git a/data/resources/StringResources.de.resx b/data/resources/StringResources.de.resx index 12895dac1a..1c700d2ec0 100644 --- a/data/resources/StringResources.de.resx +++ b/data/resources/StringResources.de.resx @@ -2496,7 +2496,7 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen? Referenzpfade - Pfad hinzufügem + Pfad hinzufügen Immer @@ -4769,6 +4769,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< Lesezeichen + + Zum Arbeitsbereich hinzufügen + Zurück @@ -4808,9 +4811,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< Keine Suchergebnisse gefunden. + + Assembly öffnen + + + Assembly aus Datei öffnen... + + + Assembly aus GAC öffnen... + Suche nach Klassenname + + Arbeitsbereich {0} + Klassen diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx index b2468ce9ed..97b07ab78c 100644 --- a/data/resources/StringResources.resx +++ b/data/resources/StringResources.resx @@ -4891,6 +4891,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs Visual Studio Extension + + WPF Designer Thumbnail View + Copy @@ -5222,6 +5225,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs Bookmarks + + Add to workspace + Back @@ -5261,9 +5267,21 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs No search results found. + + Open assembly + + + Open assembly from file... + + + Open assembly from GAC... + Class View Search + + Workspace {0} + Classes diff --git a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin index 5115ddb504..ce4ae66e32 100644 --- a/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin +++ b/src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin @@ -165,7 +165,7 @@ diff --git a/src/Main/Base/Project/Dom/ClassBrowser/BaseTypesTreeNode.cs b/src/Main/Base/Project/Dom/ClassBrowser/BaseTypesTreeNode.cs new file mode 100644 index 0000000000..e663588ad0 --- /dev/null +++ b/src/Main/Base/Project/Dom/ClassBrowser/BaseTypesTreeNode.cs @@ -0,0 +1,93 @@ +// 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; + +namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser +{ + /// + /// Description of BaseTypesTreeNode. + /// + public class BaseTypesTreeNode : ModelCollectionTreeNode + { + ITypeDefinitionModel definition; + string text; + SimpleModelCollection baseTypes; + + public BaseTypesTreeNode(ITypeDefinitionModel definition) + { + if (definition == null) + throw new ArgumentNullException("definition"); + this.definition = definition; + this.definition.Updated += (sender, e) => UpdateBaseTypes(); + this.text = SD.ResourceService.GetString("MainWindow.Windows.ClassBrowser.BaseTypes"); + baseTypes = new SimpleModelCollection(); + } + + protected override IModelCollection ModelChildren { + get { + return baseTypes; + } + } + + protected override void LoadChildren() + { + UpdateBaseTypes(); + base.LoadChildren(); + } + + void UpdateBaseTypes() + { + baseTypes.Clear(); + ITypeDefinition currentTypeDef = definition.Resolve(); + if (currentTypeDef != null) { + foreach (var baseType in currentTypeDef.DirectBaseTypes) { + ITypeDefinition baseTypeDef = baseType.GetDefinition(); + if (baseTypeDef != null) { + ITypeDefinitionModel baseTypeModel = GetTypeDefinitionModel(baseTypeDef); + if (baseTypeModel != null) + baseTypes.Add(baseTypeModel); + } + } + } + } + + ITypeDefinitionModel GetTypeDefinitionModel(ITypeDefinition definition) + { + ITypeDefinitionModel model = definition.GetModel(); + if (model == null) { + // Try to get model from ClassBrowser's assembly list + var classBrowser = SD.GetService(); + if (classBrowser != null) { + foreach (var assemblyModel in classBrowser.AssemblyList.Assemblies) { + model = assemblyModel.TopLevelTypeDefinitions[definition.FullTypeName]; + if (model != null) { + return model; + } + } + } + } + + return model; + } + + protected override System.Collections.Generic.IComparer NodeComparer { + get { + return NodeTextComparer; + } + } + + public override object Text { + get { + return text; + } + } + + public override object Icon { + get { + return SD.ResourceService.GetImageSource("Icons.16x16.OpenFolderBitmap"); + } + } + } +} diff --git a/src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs b/src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs index aaab2f62ac..4a0fcf4def 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs @@ -54,6 +54,13 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser } } + protected override void LoadChildren() + { + base.LoadChildren(); + var baseTypesTreeNode = new BaseTypesTreeNode(definition); + Children.Insert(0, baseTypesTreeNode); + } + public override void ActivateItem(System.Windows.RoutedEventArgs e) { var target = definition.Resolve(); diff --git a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs index 0a7117eb12..cf40c2ceb4 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs @@ -64,7 +64,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser public override object Text { get { - return "Workspace " + AssemblyList.Name; + return String.Format(SD.ResourceService.GetString("MainWindow.Windows.ClassBrowser.Workspace"), AssemblyList.Name); } } diff --git a/src/Main/Base/Project/Dom/ITypeDefinitionModel.cs b/src/Main/Base/Project/Dom/ITypeDefinitionModel.cs index 62934f4576..795bde6c4a 100644 --- a/src/Main/Base/Project/Dom/ITypeDefinitionModel.cs +++ b/src/Main/Base/Project/Dom/ITypeDefinitionModel.cs @@ -13,6 +13,8 @@ namespace ICSharpCode.SharpDevelop.Dom /// public interface ITypeDefinitionModel : IEntityModel { + event EventHandler Updated; + FullTypeName FullTypeName { get; } string Namespace { get; } TypeKind TypeKind { get; } diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin index c0e4e577fd..cdd9bf4c90 100755 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin @@ -924,14 +924,14 @@ + tooltip = "${res:MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip}">