Skip to content

Commit a637184

Browse files
committed
Rewire refactoring
1 parent 20a505a commit a637184

File tree

5 files changed

+36
-30
lines changed

5 files changed

+36
-30
lines changed

RetailCoder.VBE/Refactorings/RemoveParameters/RemoveParametersPresenter.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Windows.Forms;
22
using Rubberduck.UI;
3+
using Rubberduck.UI.Refactorings.RemoveParameters;
34

45
namespace Rubberduck.Refactorings.RemoveParameters
56
{
@@ -10,11 +11,11 @@ public interface IRemoveParametersPresenter
1011

1112
public class RemoveParametersPresenter : IRemoveParametersPresenter
1213
{
13-
private readonly IRemoveParametersDialog _view;
14+
private readonly RemoveParametersDialog _view;
1415
private readonly RemoveParametersModel _model;
1516
private readonly IMessageBox _messageBox;
1617

17-
public RemoveParametersPresenter(IRemoveParametersDialog view, RemoveParametersModel model, IMessageBox messageBox)
18+
public RemoveParametersPresenter(RemoveParametersDialog view, RemoveParametersModel model, IMessageBox messageBox)
1819
{
1920
_view = view;
2021
_model = model;
@@ -41,12 +42,14 @@ public RemoveParametersModel Show()
4142
return _model;
4243
}
4344

44-
if (_view.ShowDialog() != DialogResult.OK)
45+
_view.ViewModel.Parameters = _model.Parameters;
46+
_view.ShowDialog();
47+
if (_view.DialogResult != DialogResult.OK)
4548
{
4649
return null;
4750
}
4851

49-
_model.Parameters = _view.Parameters;
52+
_model.Parameters = _view.ViewModel.Parameters;
5053
return _model;
5154
}
5255
}

RetailCoder.VBE/Refactorings/RemoveParameters/RemoveParametersPresenterFactory.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
using Rubberduck.Parsing.VBA;
22
using Rubberduck.UI;
3+
using Rubberduck.UI.Refactorings.RemoveParameters;
34
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
45

56
namespace Rubberduck.Refactorings.RemoveParameters
67
{
78
public class RemoveParametersPresenterFactory : IRefactoringPresenterFactory<RemoveParametersPresenter>
89
{
910
private readonly IVBE _vbe;
10-
private readonly IRemoveParametersDialog _view;
11+
private readonly RemoveParametersDialog _view;
1112
private readonly RubberduckParserState _state;
1213
private readonly IMessageBox _messageBox;
1314

14-
public RemoveParametersPresenterFactory(IVBE vbe, IRemoveParametersDialog view,
15+
public RemoveParametersPresenterFactory(IVBE vbe, RemoveParametersDialog view,
1516
RubberduckParserState state, IMessageBox messageBox)
1617
{
1718
_vbe = vbe;

RetailCoder.VBE/UI/Command/Refactorings/RefactorRemoveParametersCommand.cs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
using System.Collections.Generic;
21
using System.Linq;
32
using System.Runtime.InteropServices;
43
using Rubberduck.Common;
54
using Rubberduck.Parsing.Symbols;
65
using Rubberduck.Parsing.VBA;
76
using Rubberduck.Refactorings.RemoveParameters;
8-
using Rubberduck.UI.Refactorings;
97
using Rubberduck.UI.Refactorings.RemoveParameters;
108
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
119

@@ -36,7 +34,6 @@ public RefactorRemoveParametersCommand(IVBE vbe, RubberduckParserState state, IM
3634

3735
protected override bool CanExecuteImpl(object parameter)
3836
{
39-
return true;
4037
var pane = Vbe.ActiveCodePane;
4138
if (pane.IsWrappingNullReference || _state.Status != ParserState.Ready)
4239
{
@@ -58,20 +55,18 @@ protected override bool CanExecuteImpl(object parameter)
5855

5956
protected override void ExecuteImpl(object parameter)
6057
{
61-
/*var pane = Vbe.ActiveCodePane;
58+
var pane = Vbe.ActiveCodePane;
6259
if (pane.IsWrappingNullReference)
6360
{
6461
return;
6562
}
6663

67-
var selection = pane.GetQualifiedSelection();*/
68-
var parameters = _state.AllUserDeclarations.Where(s => s.DeclarationType == DeclarationType.Parameter).Select((s, i) => new Parameter(s, i, true)).ToList();
69-
using (var view = new RemoveParametersDialog(new RemoveParametersViewModel(parameters)))
64+
var selection = pane.GetQualifiedSelection();
65+
using (var view = new RemoveParametersDialog(new RemoveParametersViewModel()))
7066
{
71-
//var factory = new RemoveParametersPresenterFactory(Vbe, view, _state, _msgbox);
72-
//var refactoring = new RemoveParametersRefactoring(Vbe, factory);
73-
//refactoring.Refactor(selection.Value);
74-
view.ShowDialog();
67+
var factory = new RemoveParametersPresenterFactory(Vbe, view, _state, _msgbox);
68+
var refactoring = new RemoveParametersRefactoring(Vbe, factory);
69+
refactoring.Refactor(selection.Value);
7570
}
7671
}
7772
}

RetailCoder.VBE/UI/Refactorings/RemoveParameters/RemoveParametersDialog.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
using System.Windows.Forms;
1+
using System.Windows.Forms;
32

43
namespace Rubberduck.UI.Refactorings.RemoveParameters
54
{
@@ -20,8 +19,9 @@ public RemoveParametersDialog(RemoveParametersViewModel vm) : this()
2019
vm.OnWindowClosed += ViewModel_OnWindowClosed;
2120
}
2221

23-
void ViewModel_OnWindowClosed(object sender, EventArgs e)
22+
void ViewModel_OnWindowClosed(object sender, DialogResult result)
2423
{
24+
DialogResult = result;
2525
Close();
2626
}
2727
}

RetailCoder.VBE/UI/Refactorings/RemoveParameters/RemoveParametersViewModel.cs

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,27 @@
33
using Rubberduck.UI.Command;
44
using System;
55
using System.Collections.Generic;
6+
using System.Windows.Forms;
67

78
namespace Rubberduck.UI.Refactorings.RemoveParameters
89
{
910
public class RemoveParametersViewModel : ViewModelBase
1011
{
11-
public List<Parameter> Parameters { get; }
12-
13-
public RemoveParametersViewModel(List<Parameter> parameters)
12+
private List<Parameter> _parameters;
13+
public List<Parameter> Parameters
1414
{
15-
Parameters = parameters;
15+
get { return _parameters; }
16+
set
17+
{
18+
_parameters = value;
19+
OnPropertyChanged();
20+
}
21+
}
1622

17-
OkButtonCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => SaveAndCloseWindow());
18-
CancelButtonCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => CloseWindow());
23+
public RemoveParametersViewModel()
24+
{
25+
OkButtonCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => DialogOk());
26+
CancelButtonCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => DialogCancel());
1927
RemoveParameterCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), param => RemoveParameter((Parameter)param));
2028
RestoreParameterCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), param => RestoreParameter((Parameter)param));
2129
}
@@ -36,10 +44,9 @@ private void RestoreParameter(Parameter parameter)
3644
}
3745
}
3846

39-
public event EventHandler OnWindowClosed;
40-
private void CloseWindow() => OnWindowClosed?.Invoke(this, EventArgs.Empty);
41-
42-
private void SaveAndCloseWindow() => CloseWindow();
47+
public event EventHandler<DialogResult> OnWindowClosed;
48+
private void DialogCancel() => OnWindowClosed?.Invoke(this, DialogResult.Cancel);
49+
private void DialogOk() => OnWindowClosed?.Invoke(this, DialogResult.OK);
4350

4451
public CommandBase OkButtonCommand { get; }
4552
public CommandBase CancelButtonCommand { get; }

0 commit comments

Comments
 (0)