5
5
using Rubberduck . Parsing . Rewriter ;
6
6
using Rubberduck . Parsing . VBA ;
7
7
using Rubberduck . Refactorings ;
8
+ using Rubberduck . Refactorings . Exceptions ;
8
9
using Rubberduck . Refactorings . Rename ;
10
+ using Rubberduck . UI . Command . Refactorings . Notifiers ;
9
11
using Rubberduck . VBEditor . Utility ;
10
12
11
13
namespace Rubberduck . UI . CodeExplorer . Commands
@@ -19,26 +21,22 @@ public sealed class RenameCommand : CodeExplorerCommandBase
19
21
typeof ( CodeExplorerMemberViewModel )
20
22
} ;
21
23
22
- private readonly RubberduckParserState _state ;
23
- private readonly IRefactoringPresenterFactory _factory ;
24
- private readonly IMessageBox _msgBox ;
25
- private readonly IRewritingManager _rewritingManager ;
26
- private readonly ISelectionService _selectionService ;
24
+ private readonly IParserStatusProvider _parserStatusProvider ;
25
+ private readonly IRefactoring _refactoring ;
26
+ private readonly IRefactoringFailureNotifier _failureNotifier ;
27
27
28
- public RenameCommand ( RubberduckParserState state , IMessageBox msgBox , IRefactoringPresenterFactory factory , IRewritingManager rewritingManager , ISelectionService selectionService )
28
+ public RenameCommand ( RenameRefactoring refactoring , RenameFailedNotifier renameFailedNotifier , IParserStatusProvider parserStatusProvider )
29
29
{
30
- _selectionService = selectionService ;
31
- _state = state ;
32
- _rewritingManager = rewritingManager ;
33
- _msgBox = msgBox ;
34
- _factory = factory ;
30
+ _refactoring = refactoring ;
31
+ _failureNotifier = renameFailedNotifier ;
32
+ _parserStatusProvider = parserStatusProvider ;
35
33
}
36
34
37
35
public override IEnumerable < Type > ApplicableNodeTypes => ApplicableNodes ;
38
36
39
37
protected override bool EvaluateCanExecute ( object parameter )
40
38
{
41
- return _state . Status == ParserState . Ready && base . EvaluateCanExecute ( parameter ) ;
39
+ return _parserStatusProvider . Status == ParserState . Ready && base . EvaluateCanExecute ( parameter ) ;
42
40
}
43
41
44
42
protected override void OnExecute ( object parameter )
@@ -50,8 +48,16 @@ protected override void OnExecute(object parameter)
50
48
return ;
51
49
}
52
50
53
- var refactoring = new RenameRefactoring ( _factory , _state , _state . ProjectsProvider , _rewritingManager , _selectionService ) ;
54
- refactoring . Refactor ( node . Declaration ) ;
51
+ try
52
+ {
53
+ _refactoring . Refactor ( node . Declaration ) ;
54
+ }
55
+ catch ( RefactoringAbortedException )
56
+ { }
57
+ catch ( RefactoringException exception )
58
+ {
59
+ _failureNotifier . Notify ( exception ) ;
60
+ }
55
61
}
56
62
}
57
63
}
0 commit comments