Skip to content

Commit 07899da

Browse files
committed
Merge pull request #681 from rubberduck-vba/sourcecontrol
Sourcecontrol - Refactoring
2 parents 9ef5cc2 + c6ec3f3 commit 07899da

File tree

8 files changed

+88
-67
lines changed

8 files changed

+88
-67
lines changed

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,10 @@
210210
<EmbedInteropTypes>False</EmbedInteropTypes>
211211
<HintPath>..\libs\Microsoft.Vbe.Interop.dll</HintPath>
212212
</Reference>
213+
<Reference Include="Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
214+
<HintPath>..\packages\Ninject.3.2.2.0\lib\net45-full\Ninject.dll</HintPath>
215+
<Private>True</Private>
216+
</Reference>
213217
<Reference Include="Office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
214218
<SpecificVersion>False</SpecificVersion>
215219
<EmbedInteropTypes>True</EmbedInteropTypes>
@@ -292,7 +296,6 @@
292296
</Compile>
293297
<Compile Include="UI\Settings\IAddTodoSettingsView.cs" />
294298
<Compile Include="UI\SourceControl\ActionFailedEventArgs.cs" />
295-
<Compile Include="UI\SourceControl\App.cs" />
296299
<Compile Include="Properties\Annotations.cs" />
297300
<Compile Include="Properties\Resources.Designer.cs">
298301
<AutoGen>True</AutoGen>
@@ -452,6 +455,7 @@
452455
<DependentUpon>GeneralSettingsControl.cs</DependentUpon>
453456
</Compile>
454457
<Compile Include="UI\SourceControl\SettingsPresenter.cs" />
458+
<Compile Include="UI\SourceControl\SourceControlBindings.cs" />
455459
<Compile Include="UI\SourceControl\SourceControlPanel.cs">
456460
<SubType>UserControl</SubType>
457461
</Compile>

RetailCoder.VBE/UI/RubberduckMenu.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using System.Diagnostics.CodeAnalysis;
33
using Microsoft.Office.Core;
44
using Microsoft.Vbe.Interop;
5+
using Ninject;
6+
using Ninject.Parameters;
57
using Rubberduck.Inspections;
68
using Rubberduck.Parsing;
79
using Rubberduck.Parsing.Symbols;
@@ -129,21 +131,21 @@ public void Initialize()
129131
_projectExplorerContextMenu.RunAllTests += CodePresenterRunAllAllTests;
130132
}
131133

132-
private SourceControl.App _sourceControlApp;
134+
private SourceControlPresenter _sourceControlPresenter;
133135
//I'm not the one with the bad name, MS is. Signature must match delegate definition.
134136
[SuppressMessage("ReSharper", "InconsistentNaming")]
135137
private void OnSourceControlClick(CommandBarButton Ctrl, ref bool CancelDefault)
136138
{
137-
if (_sourceControlApp == null)
139+
if (_sourceControlPresenter == null)
138140
{
139-
_sourceControlApp = new SourceControl.App(this.IDE, this.AddIn, new SourceControlConfigurationService(),
140-
new ChangesControl(), new UnSyncedCommitsControl(),
141-
new SettingsControl(), new BranchesControl(),
142-
new CreateBranchForm(), new DeleteBranchForm(),
143-
new MergeForm());
141+
var kernel = new StandardKernel(new SourceControlBindings());
142+
var vbeArg = new ConstructorArgument("vbe", this.IDE);
143+
var addinArg = new ConstructorArgument("addin", this.AddIn);
144+
145+
_sourceControlPresenter = kernel.Get<SourceControlPresenter>(vbeArg, addinArg);
144146
}
145147

146-
_sourceControlApp.ShowWindow();
148+
_sourceControlPresenter.Show();
147149
}
148150

149151
//I'm not the one with the bad name, MS is. Signature must match delegate definition.

RetailCoder.VBE/UI/SourceControl/App.cs

Lines changed: 0 additions & 56 deletions
This file was deleted.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+

2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using Ninject;
8+
using Ninject.Modules;
9+
using Rubberduck.Settings;
10+
11+
namespace Rubberduck.UI.SourceControl
12+
{
13+
class SourceControlBindings : NinjectModule
14+
{
15+
/// <summary>
16+
/// Loads the module into the kernel.
17+
/// </summary>
18+
public override void Load()
19+
{
20+
Bind<IConfigurationService<SourceControlConfiguration>>().To<SourceControlConfigurationService>();
21+
22+
//user controls (views)
23+
Bind<ISourceControlView>().To<SourceControlPanel>();
24+
25+
Bind<IFailedMessageView>().To<FailedActionControl>();
26+
Bind<ILoginView>().To<LoginControl>();
27+
28+
Bind<IChangesView>().To<ChangesControl>();
29+
Bind<IUnsyncedCommitsView>().To<UnSyncedCommitsControl>();
30+
Bind<ISettingsView>().To<SettingsControl>();
31+
Bind<IBranchesView>().To<BranchesControl>();
32+
33+
Bind<ICreateBranchView>().To<CreateBranchForm>();
34+
Bind<IDeleteBranchView>().To<DeleteBranchForm>();
35+
Bind<IMergeView>().To<MergeForm>();
36+
37+
//presenters
38+
Bind<IChangesPresenter>().To<ChangesPresenter>();
39+
Bind<IBranchesPresenter>().To<BranchesPresenter>();
40+
Bind<ISettingsPresenter>().To<SettingsPresenter>();
41+
Bind<IUnsyncedCommitsPresenter>().To<UnsyncedCommitsPresenter>();
42+
43+
//factories
44+
Bind<ISourceControlProviderFactory>().To<SourceControlProviderFactory>();
45+
Bind<IFolderBrowserFactory>().To<DialogFactory>();
46+
}
47+
}
48+
}

RetailCoder.VBE/UI/SourceControl/SourceControlPresenter.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,19 @@ public class SourceControlPresenter : DockablePresenterBase
2525
private readonly IFailedMessageView _failedMessageView;
2626
private readonly ILoginView _loginView;
2727

28-
public SourceControlPresenter
29-
(VBE vbe, AddIn addin, IConfigurationService<SourceControlConfiguration> configService, ISourceControlView view, IChangesPresenter changesPresenter, IBranchesPresenter branchesPresenter, ISettingsPresenter settingsPresenter, IUnsyncedCommitsPresenter unsyncedPresenter, IFolderBrowserFactory folderBrowserFactory, ISourceControlProviderFactory providerFactory, IFailedMessageView failedMessageView, ILoginView loginView)
28+
public SourceControlPresenter(
29+
VBE vbe, AddIn addin,
30+
IConfigurationService<SourceControlConfiguration> configService,
31+
ISourceControlView view,
32+
IChangesPresenter changesPresenter,
33+
IBranchesPresenter branchesPresenter,
34+
ISettingsPresenter settingsPresenter,
35+
IUnsyncedCommitsPresenter unsyncedPresenter,
36+
IFolderBrowserFactory folderBrowserFactory,
37+
ISourceControlProviderFactory providerFactory,
38+
IFailedMessageView failedMessageView,
39+
ILoginView loginView
40+
)
3041
: base(vbe, addin, view)
3142
{
3243
_configService = configService;
@@ -62,6 +73,12 @@ public SourceControlPresenter
6273
_view.InitializeNewRepository += OnInitNewRepository;
6374
}
6475

76+
public override void Show()
77+
{
78+
RefreshChildren();
79+
base.Show();
80+
}
81+
6582
private void _loginView_Confirm(object sender, EventArgs e)
6683
{
6784
var pwd = new SecureString();

RetailCoder.VBE/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<packages>
33
<package id="Antlr4" version="4.3.0" targetFramework="net45" />
44
<package id="Antlr4.Runtime" version="4.3.0" targetFramework="net45" />
5+
<package id="Ninject" version="3.2.2.0" targetFramework="net45" />
56
<package id="NLog" version="3.2.1" targetFramework="net45" />
67
<package id="NLog.Schema" version="3.2.1" targetFramework="net45" />
78
</packages>

RubberduckTests/RubberduckTests.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,10 @@
145145
<Reference Include="Moq">
146146
<HintPath>..\packages\Moq.4.2.1409.1722\lib\net40\Moq.dll</HintPath>
147147
</Reference>
148+
<Reference Include="Ninject">
149+
<HintPath>..\packages\Ninject.3.2.2.0\lib\net45-full\Ninject.dll</HintPath>
150+
<Private>True</Private>
151+
</Reference>
148152
<Reference Include="NLog, Version=3.2.1.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
149153
<HintPath>..\packages\NLog.3.2.1\lib\net45\NLog.dll</HintPath>
150154
<Private>True</Private>

RubberduckTests/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22
<packages>
33
<package id="LibGit2Sharp" version="0.22.0-pre20150516171636" targetFramework="net45" />
44
<package id="Moq" version="4.2.1409.1722" targetFramework="net45" />
5+
<package id="Ninject" version="3.2.2.0" targetFramework="net45" />
56
<package id="NLog" version="3.2.1" targetFramework="net45" />
67
</packages>

0 commit comments

Comments
 (0)