Skip to content

Commit bfd4097

Browse files
committed
Clean up the RemoveParameter refactoring objects
1 parent 8571952 commit bfd4097

File tree

3 files changed

+22
-21
lines changed

3 files changed

+22
-21
lines changed
Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
using Rubberduck.Interaction;
22
using Rubberduck.Resources;
33
using Rubberduck.Refactorings.RemoveParameters;
4-
using System.Linq;
54
using Rubberduck.Refactorings;
65

76
namespace Rubberduck.UI.Refactorings.RemoveParameters
87
{
9-
internal class RemoveParametersPresenter : RefactoringPresenterBase<RemoveParametersModel, RemoveParametersDialog, RemoveParametersView, RemoveParametersViewModel>, IRemoveParametersPresenter
8+
public class RemoveParametersPresenter : RefactoringPresenterBase<RemoveParametersModel, IRefactoringDialog<RemoveParametersModel, IRefactoringView<RemoveParametersModel>, IRefactoringViewModel<RemoveParametersModel>>, IRefactoringView<RemoveParametersModel>, IRefactoringViewModel<RemoveParametersModel>>, IRemoveParametersPresenter
109
{
1110
private readonly IMessageBox _messageBox;
1211

@@ -23,26 +22,19 @@ public override RemoveParametersModel Show()
2322
return null;
2423
}
2524

26-
if (Model.Parameters.Count == 0)
25+
switch (Model.Parameters.Count)
2726
{
28-
var message = string.Format(RubberduckUI.RemovePresenter_NoParametersError, Model.TargetDeclaration.IdentifierName);
29-
_messageBox.NotifyWarn(message, RubberduckUI.RemoveParamsDialog_TitleText);
30-
return null;
31-
}
32-
33-
if (Model.Parameters.Count == 1)
34-
{
35-
return Model;
36-
}
37-
38-
ViewModel.Parameters = Model.Parameters.Select(p => p.ToViewModel()).ToList();
39-
Show();
40-
if (DialogResult != RefactoringDialogResult.Execute)
41-
{
42-
return null;
27+
case 0:
28+
var message = string.Format(RubberduckUI.RemovePresenter_NoParametersError, Model.TargetDeclaration.IdentifierName);
29+
_messageBox.NotifyWarn(message, RubberduckUI.RemoveParamsDialog_TitleText);
30+
return null;
31+
case 1:
32+
Model.RemoveParameters = Model.Parameters;
33+
return Model;
34+
default:
35+
base.Show();
36+
return DialogResult != RefactoringDialogResult.Execute ? null : Model;
4337
}
44-
Model.RemoveParameters = ViewModel.Parameters.Where(m => m.IsRemoved).Select(vm => vm.ToModel()).ToList();
45-
return Model;
4638
}
4739
}
4840
}

Rubberduck.Core/UI/Refactorings/RemoveParameters/RemoveParametersViewModel.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public RemoveParametersViewModel(RubberduckParserState state, RemoveParametersMo
2323
RestoreParameterCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), param => RestoreParameter((ParameterViewModel)param));
2424
_messageBox = messageBox;
2525
model.ConfirmRemoveParameter += ConfirmRemoveParameterHandler;
26+
27+
Parameters = model.Parameters.Select(p => p.ToViewModel()).ToList();
2628
}
2729

2830
private void ConfirmRemoveParameterHandler(object sender, RefactoringConfirmEventArgs e)
@@ -32,13 +34,19 @@ private void ConfirmRemoveParameterHandler(object sender, RefactoringConfirmEven
3234

3335
public RubberduckParserState State { get; }
3436

37+
private void UpdateModelParameters()
38+
{
39+
Model.RemoveParameters = Parameters.Where(m => m.IsRemoved).Select(vm => vm.ToModel()).ToList();
40+
}
41+
3542
private List<ParameterViewModel> _parameters;
3643
public List<ParameterViewModel> Parameters
3744
{
3845
get => _parameters;
3946
set
4047
{
4148
_parameters = value;
49+
UpdateModelParameters();
4250
OnPropertyChanged();
4351
}
4452
}
@@ -152,6 +160,7 @@ private void RemoveParameter(ParameterViewModel parameter)
152160
if (parameter != null)
153161
{
154162
parameter.IsRemoved = true;
163+
UpdateModelParameters();
155164
OnPropertyChanged(nameof(SignaturePreview));
156165
}
157166
}
@@ -161,6 +170,7 @@ private void RestoreParameter(ParameterViewModel parameter)
161170
if (parameter != null)
162171
{
163172
parameter.IsRemoved = false;
173+
UpdateModelParameters();
164174
OnPropertyChanged(nameof(SignaturePreview));
165175
}
166176
}

Rubberduck.Refactorings/RemoveParameters/RemoveParametersRefactoring.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System.Diagnostics;
44
using System.Linq;
55
using Rubberduck.Common;
6-
using Rubberduck.Interaction;
76
using Rubberduck.Parsing;
87
using Rubberduck.Parsing.Grammar;
98
using Rubberduck.Parsing.Rewriter;

0 commit comments

Comments
 (0)