Skip to content

Commit

Permalink
Merge branch 'next' into next
Browse files Browse the repository at this point in the history
  • Loading branch information
retailcoder committed Mar 17, 2017
2 parents 5360369 + a3a0dc5 commit 2d44b1b
Show file tree
Hide file tree
Showing 17 changed files with 435 additions and 453 deletions.
Expand Up @@ -54,7 +54,7 @@ public ExtractInterfaceModel(RubberduckParserState state, QualifiedSelection sel
&& MemberTypes.Contains(item.DeclarationType))
.OrderBy(o => o.Selection.StartLine)
.ThenBy(t => t.Selection.StartColumn)
.Select(d => new InterfaceMember(d, declarations))
.Select(d => new InterfaceMember(d))
.ToList();
}
}
Expand Down
@@ -1,5 +1,7 @@
using System.Linq;
using System.Windows.Forms;
using Rubberduck.UI.Refactorings;
using Rubberduck.UI.Refactorings.ExtractInterface;

namespace Rubberduck.Refactorings.ExtractInterface
{
Expand All @@ -10,10 +12,10 @@ public interface IExtractInterfacePresenter

public class ExtractInterfacePresenter : IExtractInterfacePresenter
{
private readonly IExtractInterfaceDialog _view;
private readonly IRefactoringDialog<ExtractInterfaceViewModel> _view;
private readonly ExtractInterfaceModel _model;

public ExtractInterfacePresenter(IExtractInterfaceDialog view, ExtractInterfaceModel model)
public ExtractInterfacePresenter(IRefactoringDialog<ExtractInterfaceViewModel> view, ExtractInterfaceModel model)
{
_view = view;
_model = model;
Expand All @@ -26,18 +28,18 @@ public ExtractInterfaceModel Show()
return null;
}

_view.ComponentNames =
_model.TargetDeclaration.Project.VBComponents.Select(c => c.Name).ToList();
_view.InterfaceName = _model.InterfaceName;
_view.Members = _model.Members;
_view.ViewModel.ComponentNames = _model.TargetDeclaration.Project.VBComponents.Select(c => c.Name).ToList();
_view.ViewModel.InterfaceName = _model.InterfaceName;
_view.ViewModel.Members = _model.Members.ToList();

if (_view.ShowDialog() != DialogResult.OK)
_view.ShowDialog();
if (_view.DialogResult != DialogResult.OK)
{
return null;
}

_model.InterfaceName = _view.InterfaceName;
_model.Members = _view.Members;
_model.InterfaceName = _view.ViewModel.InterfaceName;
_model.Members = _view.ViewModel.Members;
return _model;
}
}
Expand Down
@@ -1,16 +1,18 @@
using System.Linq;
using Rubberduck.Parsing.VBA;
using Rubberduck.UI.Refactorings;
using Rubberduck.UI.Refactorings.ExtractInterface;
using Rubberduck.VBEditor.SafeComWrappers.Abstract;

namespace Rubberduck.Refactorings.ExtractInterface
{
public class ExtractInterfacePresenterFactory : IRefactoringPresenterFactory<ExtractInterfacePresenter>
{
private readonly IVBE _vbe;
private readonly IExtractInterfaceDialog _view;
private readonly IRefactoringDialog<ExtractInterfaceViewModel> _view;
private readonly RubberduckParserState _state;

public ExtractInterfacePresenterFactory(IVBE vbe, RubberduckParserState state, IExtractInterfaceDialog view)
public ExtractInterfacePresenterFactory(IVBE vbe, RubberduckParserState state, IRefactoringDialog<ExtractInterfaceViewModel> view)
{
_vbe = vbe;
_view = view;
Expand Down

This file was deleted.

35 changes: 21 additions & 14 deletions RetailCoder.VBE/Refactorings/ExtractInterface/InterfaceMember.cs
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using Rubberduck.Parsing.Grammar;
using Rubberduck.Parsing.Symbols;
using Rubberduck.UI;

namespace Rubberduck.Refactorings.ExtractInterface
{
Expand All @@ -18,15 +19,26 @@ public override string ToString()
}
}

public class InterfaceMember
public class InterfaceMember : ViewModelBase
{
private Declaration Member { get; set; }
private IEnumerable<Parameter> MemberParams { get; set; }
private string Type { get; set; }
private Declaration Member { get; }
private IEnumerable<Parameter> MemberParams { get; }
private string Type { get; }

private string MemberType { get; set; }

public bool IsSelected { get; set; }
private bool _isSelected;
public bool IsSelected
{
get { return _isSelected; }
set
{
_isSelected = value;
OnPropertyChanged();
}
}

public string Identifier { get; }

public string FullMemberSignature
{
Expand All @@ -39,9 +51,10 @@ public string FullMemberSignature
}
}

public InterfaceMember(Declaration member, IEnumerable<Declaration> declarations)
public InterfaceMember(Declaration member)
{
Member = member;
Identifier = member.IdentifierName;
Type = member.AsTypeName;

GetMethodType();
Expand Down Expand Up @@ -109,13 +122,7 @@ private void GetMethodType()
}
}

public string Body
{
get
{
return "Public " + FullMemberSignature + Environment.NewLine +
"End " + MemberType.Split(' ').First() + Environment.NewLine;
}
}
public string Body => "Public " + FullMemberSignature + Environment.NewLine +
"End " + MemberType.Split(' ').First() + Environment.NewLine;
}
}
15 changes: 11 additions & 4 deletions RetailCoder.VBE/Rubberduck.csproj
Expand Up @@ -481,6 +481,10 @@
<DependentUpon>EncapsulateFieldView.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Refactorings\EncapsulateField\EncapsulateFieldViewModel.cs" />
<Compile Include="UI\Refactorings\ExtractInterface\ExtractInterfaceView.xaml.cs">
<DependentUpon>ExtractInterfaceView.xaml</DependentUpon>
</Compile>
<Compile Include="UI\Refactorings\ExtractInterface\ExtractInterfaceViewModel.cs" />
<Compile Include="UI\Refactorings\IAssignedByValParameterQuickFixDialog.cs" />
<Compile Include="UI\Refactorings\IAssignedByValParameterQuickFixDialogFactory.cs" />
<Compile Include="UI\Refactorings\IRefactoringDialog.cs" />
Expand Down Expand Up @@ -589,7 +593,6 @@
<Compile Include="Refactorings\ExtractInterface\ExtractInterfaceModel.cs" />
<Compile Include="Refactorings\ExtractInterface\ExtractInterfacePresenter.cs" />
<Compile Include="Refactorings\ExtractInterface\ExtractInterfacePresenterFactory.cs" />
<Compile Include="Refactorings\ExtractInterface\IExtractInterfaceDialog.cs" />
<Compile Include="Refactorings\ExtractInterface\InterfaceMember.cs" />
<Compile Include="Refactorings\ImplementInterface\ImplementInterfaceRefactoring.cs" />
<Compile Include="Refactorings\ImplementInterface\Parameter.cs" />
Expand Down Expand Up @@ -768,10 +771,10 @@
<Compile Include="UI\Refactorings\EncapsulateField\EncapsulateFieldDialog.Designer.cs">
<DependentUpon>EncapsulateFieldDialog.cs</DependentUpon>
</Compile>
<Compile Include="UI\Refactorings\ExtractInterfaceDialog.cs">
<Compile Include="UI\Refactorings\ExtractInterface\ExtractInterfaceDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\Refactorings\ExtractInterfaceDialog.Designer.cs">
<Compile Include="UI\Refactorings\ExtractInterface\ExtractInterfaceDialog.Designer.cs">
<DependentUpon>ExtractInterfaceDialog.cs</DependentUpon>
</Compile>
<Compile Include="UI\RegexAssistant\RegexAssistant.xaml.cs">
Expand Down Expand Up @@ -1111,7 +1114,7 @@
<EmbeddedResource Include="UI\Refactorings\EncapsulateField\EncapsulateFieldDialog.resx">
<DependentUpon>EncapsulateFieldDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\Refactorings\ExtractInterfaceDialog.resx">
<EmbeddedResource Include="UI\Refactorings\ExtractInterface\ExtractInterfaceDialog.resx">
<DependentUpon>ExtractInterfaceDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\RegexAssistant\RegexAssistantDialog.resx">
Expand Down Expand Up @@ -1498,6 +1501,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Refactorings\ExtractInterface\ExtractInterfaceView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="UI\Refactorings\RemoveParameters\RemoveParametersView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
Expand Down
3 changes: 2 additions & 1 deletion RetailCoder.VBE/Rubberduck.csproj.DotSettings
@@ -1,2 +1,3 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp60</s:String></wpf:ResourceDictionary>
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp60</s:String>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=ui_005Crefactorings_005Cextractinterface/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
Expand Up @@ -5,6 +5,7 @@
using Rubberduck.Parsing.VBA;
using Rubberduck.Refactorings.ExtractInterface;
using Rubberduck.UI.Refactorings;
using Rubberduck.UI.Refactorings.ExtractInterface;
using Rubberduck.VBEditor.SafeComWrappers.Abstract;

namespace Rubberduck.UI.Command.Refactorings
Expand Down Expand Up @@ -58,7 +59,7 @@ protected override void ExecuteImpl(object parameter)
return;
}

using (var view = new ExtractInterfaceDialog())
using (var view = new ExtractInterfaceDialog(new ExtractInterfaceViewModel()))
{
var factory = new ExtractInterfacePresenterFactory(Vbe, _state, view);
var refactoring = new ExtractInterfaceRefactoring(Vbe, _state, _messageBox, factory);
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

@@ -0,0 +1,28 @@
using System.Windows.Forms;

namespace Rubberduck.UI.Refactorings.ExtractInterface
{
public partial class ExtractInterfaceDialog : Form, IRefactoringDialog<ExtractInterfaceViewModel>
{
public ExtractInterfaceViewModel ViewModel { get; }

private ExtractInterfaceDialog()
{
InitializeComponent();
Text = RubberduckUI.ExtractInterface_Caption;
}

public ExtractInterfaceDialog(ExtractInterfaceViewModel vm) : this()
{
ViewModel = vm;
ExtractInterfaceViewElement.DataContext = vm;
vm.OnWindowClosed += ViewModel_OnWindowClosed;
}

void ViewModel_OnWindowClosed(object sender, DialogResult result)
{
DialogResult = result;
Close();
}
}
}

0 comments on commit 2d44b1b

Please sign in to comment.