Skip to content

Commit bafe6f9

Browse files
committed
Initial UI stuff. UI almost done.
1 parent 8501cff commit bafe6f9

12 files changed

+359
-441
lines changed
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
namespace Rubberduck.Refactorings.ReorderParameters
1+
using Rubberduck.Parsing.Symbols;
2+
using Rubberduck.Parsing.VBA;
3+
4+
namespace Rubberduck.Refactorings.ReorderParameters
25
{
36
/// <summary>
47
/// Contains data about a method parameter for the Reorder Parameters refactoring.
58
/// </summary>
69
public class Parameter
710
{
8-
public string FullDeclaration { get; private set; }
9-
public int Index { get; private set; }
10-
public bool IsOptional { get; private set; }
11-
public bool IsParamArray { get; private set; }
11+
public string Name { get; }
12+
public Declaration Declaration { get; }
13+
public int Index { get; }
14+
public bool IsOptional { get; }
15+
public bool IsParamArray { get; }
1216

13-
/// <summary>
14-
/// Creates a Parameter.
15-
/// </summary>
16-
/// <param name="fullDeclaration">The full declaration of the parameter, such as "ByVal param As Integer".</param>
17-
/// <param name="index">The index of the parameter in the list of method parameters.</param>
18-
public Parameter(string fullDeclaration, int index)
17+
public Parameter(ParameterDeclaration declaration, int index)
1918
{
20-
FullDeclaration = fullDeclaration;
19+
Declaration = declaration;
20+
Name = declaration.Context.GetText().RemoveExtraSpacesLeavingIndentation();
2121
Index = index;
22-
IsOptional = FullDeclaration.Contains("Optional");
23-
IsParamArray = FullDeclaration.Contains("ParamArray");
22+
IsOptional = declaration.IsOptional;
23+
IsParamArray = declaration.IsParamArray;
2424
}
2525
}
2626
}

RetailCoder.VBE/Refactorings/ReorderParameters/ReorderParametersModel.cs

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Linq;
33
using System.Windows.Forms;
44
using Rubberduck.Common;
5-
using Rubberduck.Parsing.Grammar;
65
using Rubberduck.Parsing.Symbols;
76
using Rubberduck.Parsing.VBA;
87
using Rubberduck.UI;
@@ -12,11 +11,8 @@ namespace Rubberduck.Refactorings.ReorderParameters
1211
{
1312
public class ReorderParametersModel
1413
{
15-
private readonly RubberduckParserState _state;
16-
public RubberduckParserState State { get { return _state; } }
17-
18-
private readonly IEnumerable<Declaration> _declarations;
19-
public IEnumerable<Declaration> Declarations { get { return _declarations; } }
14+
public RubberduckParserState State { get; }
15+
public IEnumerable<Declaration> Declarations { get; }
2016

2117
public Declaration TargetDeclaration { get; private set; }
2218
public List<Parameter> Parameters { get; set; }
@@ -25,8 +21,8 @@ public class ReorderParametersModel
2521

2622
public ReorderParametersModel(RubberduckParserState state, QualifiedSelection selection, IMessageBox messageBox)
2723
{
28-
_state = state;
29-
_declarations = state.AllUserDeclarations;
24+
State = state;
25+
Declarations = state.AllUserDeclarations;
3026
_messageBox = messageBox;
3127

3228
AcquireTarget(selection);
@@ -47,14 +43,7 @@ private void LoadParameters()
4743
{
4844
if (TargetDeclaration == null) { return; }
4945

50-
Parameters.Clear();
51-
52-
var procedure = (dynamic)TargetDeclaration.Context;
53-
var argList = (VBAParser.ArgListContext)procedure.argList();
54-
var args = argList.arg();
55-
56-
var index = 0;
57-
Parameters = args.Select(arg => new Parameter(arg.GetText().RemoveExtraSpacesLeavingIndentation(), index++)).ToList();
46+
Parameters = ((IParameterizedDeclaration) TargetDeclaration).Parameters.Select((s, i) => new Parameter((ParameterDeclaration)s, i)).ToList();
5847

5948
if (TargetDeclaration.DeclarationType == DeclarationType.PropertyLet ||
6049
TargetDeclaration.DeclarationType == DeclarationType.PropertySet)
@@ -114,7 +103,7 @@ private Declaration GetGetter()
114103
return TargetDeclaration;
115104
}
116105

117-
var getter = _declarations.FirstOrDefault(item => item.Scope == TargetDeclaration.Scope &&
106+
var getter = Declarations.FirstOrDefault(item => item.Scope == TargetDeclaration.Scope &&
118107
item.IdentifierName == TargetDeclaration.IdentifierName &&
119108
item.DeclarationType == DeclarationType.PropertyGet);
120109

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,10 @@
482482
<DependentUpon>RemoveParametersView.xaml</DependentUpon>
483483
</Compile>
484484
<Compile Include="UI\Refactorings\RemoveParameters\RemoveParametersViewModel.cs" />
485+
<Compile Include="UI\Refactorings\ReorderParameters\ReorderParametersView.xaml.cs">
486+
<DependentUpon>ReorderParametersView.xaml</DependentUpon>
487+
</Compile>
488+
<Compile Include="UI\Refactorings\ReorderParameters\ReorderParametersViewModel.cs" />
485489
<Compile Include="UI\SelectionChangeService.cs" />
486490
<Compile Include="VersionCheck\IVersionCheck.cs" />
487491
<Compile Include="UI\Command\MenuItems\CommandBars\AppCommandBarBase.cs" />
@@ -884,10 +888,10 @@
884888
</Compile>
885889
<Compile Include="Refactorings\ExtractMethod\IExtractMethodDialog.cs" />
886890
<Compile Include="UI\IDialogView.cs" />
887-
<Compile Include="UI\Refactorings\ReorderParametersDialog.cs">
891+
<Compile Include="UI\Refactorings\ReorderParameters\ReorderParametersDialog.cs">
888892
<SubType>Form</SubType>
889893
</Compile>
890-
<Compile Include="UI\Refactorings\ReorderParametersDialog.Designer.cs">
894+
<Compile Include="UI\Refactorings\ReorderParameters\ReorderParametersDialog.Designer.cs">
891895
<DependentUpon>ReorderParametersDialog.cs</DependentUpon>
892896
</Compile>
893897
<Compile Include="UI\RubberduckUI.fr.Designer.cs">
@@ -1120,7 +1124,7 @@
11201124
<EmbeddedResource Include="UI\Refactorings\RenameDialog.resx">
11211125
<DependentUpon>RenameDialog.cs</DependentUpon>
11221126
</EmbeddedResource>
1123-
<EmbeddedResource Include="UI\Refactorings\ReorderParametersDialog.resx">
1127+
<EmbeddedResource Include="UI\Refactorings\ReorderParameters\ReorderParametersDialog.resx">
11241128
<DependentUpon>ReorderParametersDialog.cs</DependentUpon>
11251129
</EmbeddedResource>
11261130
<EmbeddedResource Include="UI\RubberduckUI.fr.resx">
@@ -1481,6 +1485,10 @@
14811485
<Generator>MSBuild:Compile</Generator>
14821486
<SubType>Designer</SubType>
14831487
</Page>
1488+
<Page Include="UI\Refactorings\ReorderParameters\ReorderParametersView.xaml">
1489+
<SubType>Designer</SubType>
1490+
<Generator>MSBuild:Compile</Generator>
1491+
</Page>
14841492
<Page Include="UI\RegexAssistant\RegexAssistant.xaml">
14851493
<Generator>MSBuild:Compile</Generator>
14861494
<SubType>Designer</SubType>

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
using System.Linq;
1+
using System.Collections.ObjectModel;
2+
using System.Linq;
23
using System.Runtime.InteropServices;
34
using Rubberduck.Common;
45
using Rubberduck.Parsing.Symbols;
56
using Rubberduck.Parsing.VBA;
67
using Rubberduck.Refactorings.ReorderParameters;
7-
using Rubberduck.UI.Refactorings;
8+
using Rubberduck.UI.Refactorings.ReorderParameters;
89
using Rubberduck.VBEditor;
910
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
1011

@@ -69,11 +70,16 @@ protected override void ExecuteImpl(object parameter)
6970
}
7071
var selection = new QualifiedSelection(new QualifiedModuleName(module.Parent), pane.Selection);
7172

72-
using (var view = new ReorderParametersDialog())
73+
using (var view = new ReorderParametersDialog(new ReorderParametersViewModel(_state)))
7374
{
74-
var factory = new ReorderParametersPresenterFactory(Vbe, view, _state, _msgbox);
75+
/*var factory = new ReorderParametersPresenterFactory(Vbe, view, _state, _msgbox);
7576
var refactoring = new ReorderParametersRefactoring(Vbe, factory, _msgbox);
76-
refactoring.Refactor(selection);
77+
refactoring.Refactor(selection);*/
78+
view.ViewModel.Parameters =
79+
new ObservableCollection<Rubberduck.Refactorings.ReorderParameters.Parameter>(
80+
_state.AllUserDeclarations.Where(s => s.DeclarationType == DeclarationType.Parameter)
81+
.Select((s, i) => new Parameter((ParameterDeclaration)s, i)));
82+
view.ShowDialog();
7783
}
7884
}
7985
}

RetailCoder.VBE/UI/Refactorings/ReorderParameters/ReorderParametersDialog.Designer.cs

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using System.Windows.Forms;
2+
3+
namespace Rubberduck.UI.Refactorings.ReorderParameters
4+
{
5+
public partial class ReorderParametersDialog : Form
6+
{
7+
public ReorderParametersViewModel ViewModel { get; }
8+
9+
private ReorderParametersDialog()
10+
{
11+
InitializeComponent();
12+
Text = RubberduckUI.ReorderParamsDialog_Caption;
13+
}
14+
15+
public ReorderParametersDialog(ReorderParametersViewModel vm) : this()
16+
{
17+
ViewModel = vm;
18+
ReorderParametersViewElement.DataContext = vm;
19+
vm.OnWindowClosed += ViewModel_OnWindowClosed;
20+
}
21+
22+
void ViewModel_OnWindowClosed(object sender, DialogResult result)
23+
{
24+
DialogResult = result;
25+
Close();
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)