Skip to content

Commit c976b25

Browse files
committed
Merge pull request #705 from Hosch250/next
Closes issue #698
2 parents 38ac435 + b297f89 commit c976b25

15 files changed

+332
-55
lines changed

RetailCoder.VBE/Inspections/DefaultProjectNameInspectionResult.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ private void RenameProject()
3333

3434
using (var view = new RenameDialog())
3535
{
36-
var factory = new RenamePresenterFactory(vbe, view, _parseResult);
36+
var factory = new RenamePresenterFactory(vbe, view, _parseResult, new RubberduckMessageBox());
3737
var refactoring = new RenameRefactoring(factory);
3838
refactoring.Refactor(Target);
3939
}

RetailCoder.VBE/Refactorings/Rename/RenameModel.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,15 @@ public Declaration Target
3131

3232
public string NewName { get; set; }
3333

34-
public RenameModel(VBE vbe, VBProjectParseResult parseResult, QualifiedSelection selection)
34+
private readonly IMessageBox _messageBox;
35+
36+
public RenameModel(VBE vbe, VBProjectParseResult parseResult, QualifiedSelection selection, IMessageBox messageBox)
3537
{
3638
_vbe = vbe;
3739
_parseResult = parseResult;
3840
_declarations = parseResult.Declarations;
3941
_selection = selection;
42+
_messageBox = messageBox;
4043

4144
AcquireTarget(out _target, Selection);
4245
}
@@ -63,7 +66,7 @@ public void PromptIfTargetImplementsInterface(ref Declaration target)
6366
var interfaceMember = _declarations.FindInterfaceMember(interfaceImplementation);
6467
var message = string.Format(RubberduckUI.RenamePresenter_TargetIsInterfaceMemberImplementation, target.IdentifierName, interfaceMember.ComponentName, interfaceMember.IdentifierName);
6568

66-
var confirm = MessageBox.Show(message, RubberduckUI.RenameDialog_TitleText, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
69+
var confirm = _messageBox.Show(message, RubberduckUI.RenameDialog_TitleText, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
6770
if (confirm == DialogResult.No)
6871
{
6972
target = null;
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Microsoft.Vbe.Interop;
22
using Rubberduck.Parsing;
3+
using Rubberduck.UI;
34
using Rubberduck.VBEditor.Extensions;
45

56
namespace Rubberduck.Refactorings.Rename
@@ -9,17 +10,19 @@ public class RenamePresenterFactory : IRefactoringPresenterFactory<RenamePresent
910
private readonly VBE _vbe;
1011
private readonly IRenameView _view;
1112
private readonly VBProjectParseResult _parseResult;
13+
private readonly IMessageBox _messageBox;
1214

13-
public RenamePresenterFactory(VBE vbe, IRenameView view, VBProjectParseResult parseResult)
15+
public RenamePresenterFactory(VBE vbe, IRenameView view, VBProjectParseResult parseResult, IMessageBox messageBox)
1416
{
1517
_vbe = vbe;
1618
_view = view;
1719
_parseResult = parseResult;
20+
_messageBox = messageBox;
1821
}
1922

2023
public RenamePresenter Create()
2124
{
22-
return new RenamePresenter(_view, new RenameModel(_vbe, _parseResult, _vbe.ActiveCodePane.GetSelection()));
25+
return new RenamePresenter(_view, new RenameModel(_vbe, _parseResult, _vbe.ActiveCodePane.GetSelection(), _messageBox));
2326
}
2427
}
2528
}

RetailCoder.VBE/UI/CodeInspections/CodeInspectionsDockablePresenter.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,11 @@ private async void Refresh()
178178
await Task.Run(() => RefreshAsync(token), token);
179179
if (_results != null)
180180
{
181-
Control.SetContent(_results.Select(item => new CodeInspectionResultGridViewItem(item))
182-
.OrderBy(item => item.Component)
183-
.ThenBy(item => item.Line));
181+
var results = _results.Select(item => new CodeInspectionResultGridViewItem(item));
182+
183+
Control.SetContent(new BindingList<CodeInspectionResultGridViewItem>(
184+
_gridViewSort.Sort(results, _gridViewSort.ColumnName,
185+
_gridViewSort.SortedAscending).ToList()));
184186
}
185187
}
186188
catch (TaskCanceledException)

RetailCoder.VBE/UI/FormContextMenu.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private void Rename()
5656

5757
using (var view = new RenameDialog())
5858
{
59-
var factory = new RenamePresenterFactory(_vbe, view, result);
59+
var factory = new RenamePresenterFactory(_vbe, view, result, new RubberduckMessageBox());
6060
var refactoring = new RenameRefactoring(factory);
6161
refactoring.Refactor(controlToRename);
6262
}

RetailCoder.VBE/UI/GridViewSort.cs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,38 @@ namespace Rubberduck.UI
55
{
66
public class GridViewSort<T>
77
{
8-
private bool _sortedAscending;
9-
private string _columnName;
8+
public bool SortedAscending { get; private set; }
9+
public string ColumnName { get; private set; }
1010

1111
public GridViewSort(string columnName, bool sortedAscending)
1212
{
13-
_columnName = columnName;
14-
_sortedAscending = sortedAscending;
13+
ColumnName = columnName;
14+
SortedAscending = sortedAscending;
1515
}
1616

1717
public IEnumerable<T> Sort(IEnumerable<T> items, string columnName)
1818
{
19-
if (columnName == _columnName && _sortedAscending)
19+
if (columnName == ColumnName && SortedAscending)
2020
{
21-
_sortedAscending = false;
21+
SortedAscending = false;
2222
return items.OrderByDescending(x => x.GetType().GetProperty(columnName).GetValue(x));
2323
}
2424
else
2525
{
26-
_columnName = columnName;
27-
_sortedAscending = true;
26+
ColumnName = columnName;
27+
SortedAscending = true;
2828
return items.OrderBy(x => x.GetType().GetProperty(columnName).GetValue(x));
2929
}
3030
}
31+
32+
public IEnumerable<T> Sort(IEnumerable<T> items, string columnName, bool sortAscending)
33+
{
34+
SortedAscending = sortAscending;
35+
ColumnName = columnName;
36+
37+
return sortAscending
38+
? items.OrderBy(x => x.GetType().GetProperty(columnName).GetValue(x))
39+
: items.OrderByDescending(x => x.GetType().GetProperty(columnName).GetValue(x));
40+
}
3141
}
3242
}

RetailCoder.VBE/UI/ProjectExplorerContextMenu.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ private void Rename_Click(CommandBarButton Ctrl, ref bool CancelDefault)
147147

148148
using (var view = new RenameDialog())
149149
{
150-
var factory = new RenamePresenterFactory(_vbe, view, results);
150+
var factory = new RenamePresenterFactory(_vbe, view, results, new RubberduckMessageBox());
151151
var refactoring = new RenameRefactoring(factory);
152152
refactoring.Refactor(declaration);
153153
}

RetailCoder.VBE/UI/RefactorMenu.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ public void Rename()
434434

435435
using (var view = new RenameDialog())
436436
{
437-
var factory = new RenamePresenterFactory(IDE, view, result);
437+
var factory = new RenamePresenterFactory(IDE, view, result, new RubberduckMessageBox());
438438
var refactoring = new RenameRefactoring(factory);
439439
refactoring.Refactor();
440440
}
@@ -447,7 +447,7 @@ public void Rename(Declaration target)
447447

448448
using (var view = new RenameDialog())
449449
{
450-
var factory = new RenamePresenterFactory(IDE, view, result);
450+
var factory = new RenamePresenterFactory(IDE, view, result, new RubberduckMessageBox());
451451
var refactoring = new RenameRefactoring(factory);
452452
refactoring.Refactor(target);
453453
}

RetailCoder.VBE/UI/ToDoItems/ToDoExplorerDockablePresenter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ public async void Refresh()
4949
try
5050
{
5151
Cursor.Current = Cursors.WaitCursor;
52-
_view.TodoItems = await GetItems();
52+
var results = await GetItems();
53+
_view.TodoItems = _gridViewSort.Sort(results, _gridViewSort.ColumnName, _gridViewSort.SortedAscending);
5354
}
5455
finally
5556
{

RetailCoder.VBE/UI/UnitTesting/ITestExplorerWindow.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public interface ITestExplorerWindow : IDockableUserControl
2222
event EventHandler OnAddTestModuleButtonClick;
2323
void ClearProgress();
2424
void ClearResults();
25-
void Refresh(IDictionary<TestMethod, TestResult> tests);
2625
void SetPlayList(IEnumerable<TestMethod> tests);
2726
void SetPlayList(IDictionary<TestMethod, TestResult> tests);
2827
event EventHandler OnRefreshListButtonClick;

0 commit comments

Comments
 (0)