Skip to content

Commit fc36605

Browse files
committed
Push the IRewritingManager and ISelectionService to RefactorCommandBase
All refactoring commands but the not yet remodeled ExtractMethod command use these two, which are essential for the refactorings. So, I have pushed them to the base class. This also removes the IVBE from the base class since it is no longer needed by the majority of the refactoring commands.
1 parent c9e0a25 commit fc36605

14 files changed

+70
-123
lines changed

Rubberduck.Core/UI/Command/Refactorings/CodePaneRefactorRenameCommand.cs

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
using System.Runtime.InteropServices;
22
using Rubberduck.Interaction;
33
using Rubberduck.Parsing.Rewriter;
4-
using Rubberduck.Parsing.Symbols;
54
using Rubberduck.Parsing.VBA;
65
using Rubberduck.Refactorings;
76
using Rubberduck.Refactorings.Rename;
8-
using Rubberduck.UI.Refactorings.Rename;
9-
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
107
using Rubberduck.VBEditor.Utility;
118

129
namespace Rubberduck.UI.Command.Refactorings
@@ -15,19 +12,15 @@ namespace Rubberduck.UI.Command.Refactorings
1512
public class CodePaneRefactorRenameCommand : RefactorCommandBase
1613
{
1714
private readonly RubberduckParserState _state;
18-
private readonly IRewritingManager _rewritingManager;
1915
private readonly IMessageBox _messageBox;
2016
private readonly IRefactoringPresenterFactory _factory;
21-
private readonly ISelectionService _selectionService;
2217

23-
public CodePaneRefactorRenameCommand(IVBE vbe, RubberduckParserState state, IMessageBox messageBox, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
24-
: base (vbe)
18+
public CodePaneRefactorRenameCommand(RubberduckParserState state, IMessageBox messageBox, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
19+
: base (rewritingManager, selectionService)
2520
{
2621
_state = state;
27-
_rewritingManager = rewritingManager;
2822
_messageBox = messageBox;
2923
_factory = factory;
30-
_selectionService = selectionService;
3124
}
3225

3326
protected override bool EvaluateCanExecute(object parameter)
@@ -37,7 +30,7 @@ protected override bool EvaluateCanExecute(object parameter)
3730
return false;
3831
}
3932

40-
var activeSelection = _selectionService.ActiveSelection();
33+
var activeSelection = SelectionService.ActiveSelection();
4134
if (!activeSelection.HasValue)
4235
{
4336
return false;
@@ -52,7 +45,7 @@ protected override bool EvaluateCanExecute(object parameter)
5245

5346
protected override void OnExecute(object parameter)
5447
{
55-
var activeSelection = _selectionService.ActiveSelection();
48+
var activeSelection = SelectionService.ActiveSelection();
5649
if (!activeSelection.HasValue)
5750
{
5851
return;
@@ -65,7 +58,7 @@ protected override void OnExecute(object parameter)
6558
return;
6659
}
6760

68-
var refactoring = new RenameRefactoring(_factory, _messageBox, _state, _state.ProjectsProvider, _rewritingManager, _selectionService);
61+
var refactoring = new RenameRefactoring(_factory, _messageBox, _state, _state.ProjectsProvider, RewritingManager, SelectionService);
6962
refactoring.Refactor(target);
7063
}
7164
}

Rubberduck.Core/UI/Command/Refactorings/FormDesignerRefactorRenameCommand.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,16 @@ namespace Rubberduck.UI.Command.Refactorings
1616
public class FormDesignerRefactorRenameCommand : RefactorCommandBase
1717
{
1818
private readonly RubberduckParserState _state;
19-
private readonly IRewritingManager _rewritingManager;
2019
private readonly IMessageBox _messageBox;
2120
private readonly IRefactoringPresenterFactory _factory;
22-
private readonly ISelectionService _selectionService;
2321
private readonly IVBE _vbe;
2422

2523
public FormDesignerRefactorRenameCommand(IVBE vbe, RubberduckParserState state, IMessageBox messageBox, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
26-
: base (vbe)
24+
: base (rewritingManager, selectionService)
2725
{
2826
_state = state;
29-
_rewritingManager = rewritingManager;
3027
_messageBox = messageBox;
3128
_factory = factory;
32-
_selectionService = selectionService;
3329
_vbe = vbe;
3430
}
3531

@@ -46,7 +42,7 @@ protected override bool EvaluateCanExecute(object parameter)
4642

4743
protected override void OnExecute(object parameter)
4844
{
49-
var refactoring = new RenameRefactoring(_factory, _messageBox, _state, _state.ProjectsProvider, _rewritingManager, _selectionService);
45+
var refactoring = new RenameRefactoring(_factory, _messageBox, _state, _state.ProjectsProvider, RewritingManager, SelectionService);
5046
var target = GetTarget();
5147
if (target != null)
5248
{

Rubberduck.Core/UI/Command/Refactorings/ProjectExplorerRefactorRenameCommand.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,16 @@ namespace Rubberduck.UI.Command.Refactorings
1515
public class ProjectExplorerRefactorRenameCommand : RefactorCommandBase
1616
{
1717
private readonly RubberduckParserState _state;
18-
private readonly IRewritingManager _rewritingManager;
1918
private readonly IMessageBox _msgBox;
2019
private readonly IRefactoringPresenterFactory _factory;
21-
private readonly ISelectionService _selectionService;
2220
private readonly IVBE _vbe;
2321

2422
public ProjectExplorerRefactorRenameCommand(IVBE vbe, RubberduckParserState state, IMessageBox msgBox, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
25-
: base(vbe)
23+
: base(rewritingManager, selectionService)
2624
{
2725
_state = state;
28-
_rewritingManager = rewritingManager;
2926
_msgBox = msgBox;
3027
_factory = factory;
31-
_selectionService = selectionService;
3228
_vbe = vbe;
3329
}
3430

@@ -39,7 +35,7 @@ protected override bool EvaluateCanExecute(object parameter)
3935

4036
protected override void OnExecute(object parameter)
4137
{
42-
var refactoring = new RenameRefactoring(_factory, _msgBox, _state, _state.ProjectsProvider, _rewritingManager, _selectionService);
38+
var refactoring = new RenameRefactoring(_factory, _msgBox, _state, _state.ProjectsProvider, RewritingManager, SelectionService);
4339
var target = GetTarget();
4440
if (target != null)
4541
{

Rubberduck.Core/UI/Command/Refactorings/RefactorCommandBase.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
using System;
22
using System.Windows.Forms;
33
using NLog;
4-
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
4+
using Rubberduck.Parsing.Rewriter;
55
using Rubberduck.Resources;
6+
using Rubberduck.VBEditor.Utility;
67

78
namespace Rubberduck.UI.Command.Refactorings
89
{
910
public abstract class RefactorCommandBase : CommandBase
1011
{
11-
protected readonly IVBE Vbe;
12+
protected readonly IRewritingManager RewritingManager;
13+
protected readonly ISelectionService SelectionService;
1214

13-
protected RefactorCommandBase(IVBE vbe)
15+
protected RefactorCommandBase(IRewritingManager rewritingManager, ISelectionService selectionService)
1416
: base (LogManager.GetCurrentClassLogger())
1517
{
16-
Vbe = vbe;
18+
RewritingManager = rewritingManager;
19+
SelectionService = selectionService;
1720
}
1821

1922
protected void HandleInvalidSelection(object sender, EventArgs e)

Rubberduck.Core/UI/Command/Refactorings/RefactorEncapsulateFieldCommand.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using Rubberduck.Refactorings;
66
using Rubberduck.Refactorings.EncapsulateField;
77
using Rubberduck.SmartIndenter;
8-
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
98
using Rubberduck.VBEditor.Utility;
109

1110
namespace Rubberduck.UI.Command.Refactorings
@@ -14,19 +13,15 @@ namespace Rubberduck.UI.Command.Refactorings
1413
public class RefactorEncapsulateFieldCommand : RefactorCommandBase
1514
{
1615
private readonly RubberduckParserState _state;
17-
private readonly IRewritingManager _rewritingManager;
18-
private readonly ISelectionService _selectionService;
1916
private readonly Indenter _indenter;
2017
private readonly IRefactoringPresenterFactory _factory;
2118

22-
public RefactorEncapsulateFieldCommand(IVBE vbe, RubberduckParserState state, Indenter indenter, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
23-
: base(vbe)
19+
public RefactorEncapsulateFieldCommand(RubberduckParserState state, Indenter indenter, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
20+
: base(rewritingManager, selectionService)
2421
{
2522
_state = state;
26-
_rewritingManager = rewritingManager;
2723
_indenter = indenter;
2824
_factory = factory;
29-
_selectionService = selectionService;
3025
}
3126

3227
protected override bool EvaluateCanExecute(object parameter)
@@ -37,7 +32,7 @@ protected override bool EvaluateCanExecute(object parameter)
3732
return false;
3833
}
3934

40-
var activeSelection = _selectionService.ActiveSelection();
35+
var activeSelection = SelectionService.ActiveSelection();
4136
if (!activeSelection.HasValue)
4237
{
4338
return false;
@@ -53,12 +48,12 @@ protected override bool EvaluateCanExecute(object parameter)
5348

5449
protected override void OnExecute(object parameter)
5550
{
56-
if(!_selectionService.ActiveSelection().HasValue)
51+
if(!SelectionService.ActiveSelection().HasValue)
5752
{
5853
return;
5954
}
6055

61-
var refactoring = new EncapsulateFieldRefactoring(_state, _indenter, _factory, _rewritingManager, _selectionService);
56+
var refactoring = new EncapsulateFieldRefactoring(_state, _indenter, _factory, RewritingManager, SelectionService);
6257
refactoring.Refactor();
6358
}
6459
}

Rubberduck.Core/UI/Command/Refactorings/RefactorExtractInterfaceCommand.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
using Rubberduck.Parsing.VBA;
1111
using Rubberduck.Refactorings;
1212
using Rubberduck.Refactorings.ExtractInterface;
13-
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
1413
using Rubberduck.VBEditor.Utility;
1514

1615
namespace Rubberduck.UI.Command.Refactorings
@@ -19,19 +18,15 @@ namespace Rubberduck.UI.Command.Refactorings
1918
public class RefactorExtractInterfaceCommand : RefactorCommandBase
2019
{
2120
private readonly RubberduckParserState _state;
22-
private readonly IRewritingManager _rewritingManager;
2321
private readonly IMessageBox _messageBox;
2422
private readonly IRefactoringPresenterFactory _factory;
25-
private readonly ISelectionService _selectionService;
2623

27-
public RefactorExtractInterfaceCommand(IVBE vbe, RubberduckParserState state, IMessageBox messageBox, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
28-
:base(vbe)
24+
public RefactorExtractInterfaceCommand(RubberduckParserState state, IMessageBox messageBox, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
25+
:base(rewritingManager, selectionService)
2926
{
3027
_state = state;
31-
_rewritingManager = rewritingManager;
3228
_messageBox = messageBox;
3329
_factory = factory;
34-
_selectionService = selectionService;
3530
}
3631

3732
private static readonly IReadOnlyList<DeclarationType> ModuleTypes = new[]
@@ -48,7 +43,7 @@ protected override bool EvaluateCanExecute(object parameter)
4843
return false;
4944
}
5045

51-
var activeSelection = _selectionService.ActiveSelection();
46+
var activeSelection = SelectionService.ActiveSelection();
5247
if (!activeSelection.HasValue)
5348
{
5449
return false;
@@ -85,13 +80,13 @@ protected override bool EvaluateCanExecute(object parameter)
8580

8681
protected override void OnExecute(object parameter)
8782
{
88-
var activeSelection = _selectionService.ActiveSelection();
83+
var activeSelection = SelectionService.ActiveSelection();
8984
if (!activeSelection.HasValue)
9085
{
9186
return;
9287
}
9388

94-
var refactoring = new ExtractInterfaceRefactoring(_state, _state, _messageBox, _factory, _rewritingManager, _selectionService);
89+
var refactoring = new ExtractInterfaceRefactoring(_state, _state, _messageBox, _factory, RewritingManager, SelectionService);
9590
refactoring.Refactor(activeSelection.Value);
9691
}
9792
}

Rubberduck.Core/UI/Command/Refactorings/RefactorExtractMethodCommand.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,20 @@ public class RefactorExtractMethodCommand : RefactorCommandBase
1717
{
1818
private readonly RubberduckParserState _state;
1919
private readonly IIndenter _indenter;
20+
private readonly IVBE _vbe;
2021

2122
public RefactorExtractMethodCommand(IVBE vbe, RubberduckParserState state, IIndenter indenter)
22-
: base (vbe)
23+
: base (null, null)
2324
{
2425
_state = state;
2526
_indenter = indenter;
27+
_vbe = vbe;
2628
}
2729

2830
protected override bool EvaluateCanExecute(object parameter)
2931
{
3032

31-
var qualifiedSelection = Vbe.GetActiveSelection();
33+
var qualifiedSelection = _vbe.GetActiveSelection();
3234
if (!qualifiedSelection.HasValue)
3335
{
3436
return false;
@@ -49,7 +51,7 @@ protected override bool EvaluateCanExecute(object parameter)
4951
protected override void OnExecute(object parameter)
5052
{
5153
var declarations = _state.AllDeclarations;
52-
var qualifiedSelection = Vbe.GetActiveSelection();
54+
var qualifiedSelection = _vbe.GetActiveSelection();
5355

5456
var extractMethodValidation = new ExtractMethodSelectionValidation(declarations);
5557
var canExecute = extractMethodValidation.withinSingleProcedure(qualifiedSelection.Value);
@@ -58,7 +60,7 @@ protected override void OnExecute(object parameter)
5860
return;
5961
}
6062

61-
using (var pane = Vbe.ActiveCodePane)
63+
using (var pane = _vbe.ActiveCodePane)
6264
using (var module = pane.CodeModule)
6365
{
6466
var extraction = new ExtractMethodExtraction();

Rubberduck.Core/UI/Command/Refactorings/RefactorImplementInterfaceCommand.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
using System.Linq;
22
using System.Runtime.InteropServices;
3-
using System.Runtime.InteropServices.WindowsRuntime;
43
using Rubberduck.Interaction;
54
using Rubberduck.Parsing.Rewriter;
65
using Rubberduck.Parsing.Symbols;
76
using Rubberduck.Parsing.VBA;
87
using Rubberduck.Refactorings.ImplementInterface;
9-
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
108
using Rubberduck.VBEditor.Utility;
119

1210
namespace Rubberduck.UI.Command.Refactorings
@@ -15,17 +13,13 @@ namespace Rubberduck.UI.Command.Refactorings
1513
public class RefactorImplementInterfaceCommand : RefactorCommandBase
1614
{
1715
private readonly RubberduckParserState _state;
18-
private readonly IRewritingManager _rewritingManager;
1916
private readonly IMessageBox _msgBox;
20-
private readonly ISelectionService _selectionService;
2117

22-
public RefactorImplementInterfaceCommand(IVBE vbe, RubberduckParserState state, IMessageBox msgBox, IRewritingManager rewritingManager, ISelectionService selectionService)
23-
: base(vbe)
18+
public RefactorImplementInterfaceCommand(RubberduckParserState state, IMessageBox msgBox, IRewritingManager rewritingManager, ISelectionService selectionService)
19+
: base(rewritingManager, selectionService)
2420
{
2521
_state = state;
26-
_rewritingManager = rewritingManager;
2722
_msgBox = msgBox;
28-
_selectionService = selectionService;
2923
}
3024

3125
protected override bool EvaluateCanExecute(object parameter)
@@ -35,7 +29,7 @@ protected override bool EvaluateCanExecute(object parameter)
3529
return false;
3630
}
3731

38-
var activeSelection = _selectionService.ActiveSelection();
32+
var activeSelection = SelectionService.ActiveSelection();
3933
if (!activeSelection.HasValue)
4034
{
4135
return false;
@@ -54,13 +48,13 @@ protected override bool EvaluateCanExecute(object parameter)
5448

5549
protected override void OnExecute(object parameter)
5650
{
57-
var activeSelection = _selectionService.ActiveSelection();
51+
var activeSelection = SelectionService.ActiveSelection();
5852
if (!activeSelection.HasValue)
5953
{
6054
return;
6155
}
6256

63-
var refactoring = new ImplementInterfaceRefactoring(_state, _msgBox, _rewritingManager, _selectionService);
57+
var refactoring = new ImplementInterfaceRefactoring(_state, _msgBox, RewritingManager, SelectionService);
6458
refactoring.Refactor(activeSelection.Value);
6559
}
6660
}

0 commit comments

Comments
 (0)