Browse Source

add void ShowContextActionsPopup(ContextActionsPopupViewModel viewModel); to IEditorUIService

pull/59/merge
Siegfried Pammer 12 years ago
parent
commit
0ee8c81933
  1. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
  2. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditEditorUIService.cs
  3. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsBulbViewModel.cs
  4. 7
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsPopup.cs
  5. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs
  6. 6
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs
  7. 1
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/GoToEntityAction.cs
  8. 7
      src/Main/Base/Project/Editor/ContextActions/ContextActionViewModel.cs
  9. 8
      src/Main/Base/Project/Editor/ContextActions/ContextActionsPopupViewModel.cs
  10. 10
      src/Main/Base/Project/Editor/IEditorUIService.cs
  11. 3
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj

@ -106,8 +106,6 @@
<Compile Include="Src\ContextActions\ContextActionsPopup.cs" /> <Compile Include="Src\ContextActions\ContextActionsPopup.cs" />
<Compile Include="Src\ContextActions\ContextActionsRenderer.cs" /> <Compile Include="Src\ContextActions\ContextActionsRenderer.cs" />
<Compile Include="Src\ContextActions\EditorActionsProvider.cs" /> <Compile Include="Src\ContextActions\EditorActionsProvider.cs" />
<Compile Include="Src\ContextActions\ContextActionsViewModel.cs" />
<Compile Include="Src\ContextActions\ContextActionViewModel.cs" />
<Compile Include="Src\ContextActions\FindBaseClasses.cs" /> <Compile Include="Src\ContextActions\FindBaseClasses.cs" />
<Compile Include="Src\ContextActions\FindDerivedClassesOrOverrides.cs" /> <Compile Include="Src\ContextActions\FindDerivedClassesOrOverrides.cs" />
<Compile Include="Src\ContextActions\GoToEntityAction.cs" /> <Compile Include="Src\ContextActions\GoToEntityAction.cs" />

8
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditEditorUIService.cs

@ -8,6 +8,8 @@ using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.NRefactory.Editor; using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.AvalonEdit.AddIn.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn namespace ICSharpCode.AvalonEdit.AddIn
{ {
@ -39,5 +41,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
textView.GetVisualPosition(new TextViewPosition(line, column), VisualYPosition.LineBottom) - textView.ScrollOffset); textView.GetVisualPosition(new TextViewPosition(line, column), VisualYPosition.LineBottom) - textView.ScrollOffset);
return positionInPixels.TransformFromDevice(textView); return positionInPixels.TransformFromDevice(textView);
} }
/// <inheritdoc />
public void ShowContextActionsPopup(ContextActionsPopupViewModel viewModel)
{
new ContextActionsPopup { Actions = viewModel }.OpenAtCaretAndFocus();
}
} }
} }

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsBulbViewModel.cs

@ -7,13 +7,14 @@ using System.ComponentModel;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{ {
/// <summary> /// <summary>
/// Description of ContextActionsHiddenViewModel. /// Description of ContextActionsHiddenViewModel.
/// </summary> /// </summary>
public class ContextActionsBulbViewModel : ContextActionsViewModel, INotifyPropertyChanged public class ContextActionsBulbViewModel : ContextActionsPopupViewModel, INotifyPropertyChanged
{ {
public EditorActionsProvider Model { get; private set; } public EditorActionsProvider Model { get; private set; }

7
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsPopup.cs

@ -6,10 +6,9 @@ using System.Windows.Controls.Primitives;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{ {
@ -44,9 +43,9 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
set { this.Child = value; } set { this.Child = value; }
} }
public ContextActionsViewModel Actions public ContextActionsPopupViewModel Actions
{ {
get { return (ContextActionsViewModel)ActionsControl.DataContext; } get { return (ContextActionsPopupViewModel)ActionsControl.DataContext; }
set { set {
ActionsControl.DataContext = value; ActionsControl.DataContext = value;
} }

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs

@ -12,6 +12,7 @@ using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Commands; using ICSharpCode.SharpDevelop.Editor.Commands;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{ {
@ -30,7 +31,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithBaseClasses(ITypeDefinition @class) static ContextActionsPopup MakePopupWithBaseClasses(ITypeDefinition @class)
{ {
var baseClassList = @class.GetAllBaseTypeDefinitions().Where(baseClass => baseClass != @class).ToList(); var baseClassList = @class.GetAllBaseTypeDefinitions().Where(baseClass => baseClass != @class).ToList();
var popupViewModel = new ContextActionsViewModel(); var popupViewModel = new ContextActionsPopupViewModel();
popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse( popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.BaseClassesOf}", new StringTagPair("Name", @class.Name))); "${res:SharpDevelop.Refactoring.BaseClassesOf}", new StringTagPair("Name", @class.Name)));
popupViewModel.Actions = BuildListViewModel(baseClassList); popupViewModel.Actions = BuildListViewModel(baseClassList);

6
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs

@ -10,8 +10,8 @@ using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory.Semantics; using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Commands; using ICSharpCode.SharpDevelop.Editor.Commands;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.SharpDevelop.Refactoring; using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
@ -42,7 +42,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithDerivedClasses(ITypeDefinition baseClass) static ContextActionsPopup MakePopupWithDerivedClasses(ITypeDefinition baseClass)
{ {
var derivedClassesTree = BuildDerivedTypesGraph(baseClass); var derivedClassesTree = BuildDerivedTypesGraph(baseClass);
var popupViewModel = new ContextActionsViewModel(); var popupViewModel = new ContextActionsPopupViewModel();
popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse( popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.ClassesDerivingFrom}", new StringTagPair("Name", baseClass.Name))); "${res:SharpDevelop.Refactoring.ClassesDerivingFrom}", new StringTagPair("Name", baseClass.Name)));
popupViewModel.Actions = BuildTreeViewModel(derivedClassesTree.Children); popupViewModel.Actions = BuildTreeViewModel(derivedClassesTree.Children);
@ -61,7 +61,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithOverrides(IMember member) static ContextActionsPopup MakePopupWithOverrides(IMember member)
{ {
var derivedClassesTree = BuildDerivedTypesGraph(member.DeclaringTypeDefinition); var derivedClassesTree = BuildDerivedTypesGraph(member.DeclaringTypeDefinition);
var popupViewModel = new ContextActionsViewModel { var popupViewModel = new ContextActionsPopupViewModel {
Title = MenuService.ConvertLabel(StringParser.Parse( Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.OverridesOf}", "${res:SharpDevelop.Refactoring.OverridesOf}",
new StringTagPair("Name", member.FullName)) new StringTagPair("Name", member.FullName))

1
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/GoToEntityAction.cs

@ -8,6 +8,7 @@ using System.Threading.Tasks;
using ICSharpCode.AvalonEdit.CodeCompletion; using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.SharpDevelop.Refactoring; using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions

7
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionViewModel.cs → src/Main/Base/Project/Editor/ContextActions/ContextActionViewModel.cs

@ -6,13 +6,12 @@ using System.Collections.ObjectModel;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Refactoring; using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.SharpDevelop.Editor.ContextActions
{ {
/// <summary> /// <summary>
/// Description of ContextActionViewModel. /// ViewModel for a <see cref="ContextAction"/>.
/// </summary> /// </summary>
public class ContextActionViewModel public class ContextActionViewModel
{ {
@ -95,4 +94,4 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
return true; return true;
} }
} }
} }

8
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsViewModel.cs → src/Main/Base/Project/Editor/ContextActions/ContextActionsPopupViewModel.cs

@ -5,12 +5,12 @@ using System;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Windows.Media; using System.Windows.Media;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.SharpDevelop.Editor.ContextActions
{ {
/// <summary> /// <summary>
/// Description of ContextActionsViewModel. /// ViewModel for a ContextActionsPopup.
/// </summary> /// </summary>
public class ContextActionsViewModel public class ContextActionsPopupViewModel
{ {
public ImageSource Image { get; set; } public ImageSource Image { get; set; }
@ -18,4 +18,4 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
public ObservableCollection<ContextActionViewModel> Actions { get; set; } public ObservableCollection<ContextActionViewModel> Actions { get; set; }
} }
} }

10
src/Main/Base/Project/Editor/IEditorUIService.cs

@ -2,9 +2,14 @@
// 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.Collections.ObjectModel;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using ICSharpCode.NRefactory.Editor; using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.SharpDevelop.Editor namespace ICSharpCode.SharpDevelop.Editor
{ {
@ -17,6 +22,11 @@ namespace ICSharpCode.SharpDevelop.Editor
/// Gets the absolute screen position of given position in the document. /// Gets the absolute screen position of given position in the document.
/// </summary> /// </summary>
Point GetScreenPosition(int line, int column); Point GetScreenPosition(int line, int column);
/// <summary>
/// Shows a ContextActionsPopup created from a ViewModel.
/// </summary>
void ShowContextActionsPopup(ContextActionsPopupViewModel viewModel);
} }
public interface IInlineUIElement public interface IInlineUIElement

3
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -131,6 +131,8 @@
<Compile Include="Editor\Bookmarks\SDBookmark.cs" /> <Compile Include="Editor\Bookmarks\SDBookmark.cs" />
<Compile Include="Editor\Bookmarks\SDMarkerBookmark.cs" /> <Compile Include="Editor\Bookmarks\SDMarkerBookmark.cs" />
<Compile Include="Editor\CodeCompletion\SnippetCompletionData.cs" /> <Compile Include="Editor\CodeCompletion\SnippetCompletionData.cs" />
<Compile Include="Editor\ContextActions\ContextActionsPopupViewModel.cs" />
<Compile Include="Editor\ContextActions\ContextActionViewModel.cs" />
<Compile Include="Editor\DocumentServiceAttribute.cs" /> <Compile Include="Editor\DocumentServiceAttribute.cs" />
<Compile Include="Editor\DocumentUtilities.cs" /> <Compile Include="Editor\DocumentUtilities.cs" />
<Compile Include="Editor\IBracketSearcher.cs" /> <Compile Include="Editor\IBracketSearcher.cs" />
@ -833,6 +835,7 @@
<ItemGroup> <ItemGroup>
<Folder Include="Designer" /> <Folder Include="Designer" />
<Folder Include="Dom\ClassBrowser" /> <Folder Include="Dom\ClassBrowser" />
<Folder Include="Editor\ContextActions" />
<Folder Include="Src\Editor\Dialogs" /> <Folder Include="Src\Editor\Dialogs" />
<Folder Include="Templates" /> <Folder Include="Templates" />
<Folder Include="Project\Configuration" /> <Folder Include="Project\Configuration" />

Loading…
Cancel
Save