Skip to content

Commit

Permalink
Fixes to filtering logic to retain any use sort
Browse files Browse the repository at this point in the history
  • Loading branch information
BlythMeister committed Dec 7, 2017
1 parent d86e16b commit 1fde4c6
Show file tree
Hide file tree
Showing 7 changed files with 116 additions and 104 deletions.
File renamed without changes
File renamed without changes
170 changes: 85 additions & 85 deletions src/ServiceBouncer/MainForm.Designer.cs

Large diffs are not rendered by default.

28 changes: 19 additions & 9 deletions src/ServiceBouncer/MainForm.cs
Expand Up @@ -2,6 +2,7 @@
using ServiceBouncer.ComponentModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.ServiceProcess;
using System.Threading;
Expand All @@ -12,7 +13,7 @@ namespace ServiceBouncer
{
public partial class MainForm : Form
{
private readonly SortableBindingList<ServiceViewModel> services;
private readonly List<ServiceViewModel> services;
private bool isActive;
private string machineHostname;

Expand All @@ -22,8 +23,7 @@ public MainForm()
isActive = true;
machineHostname = Environment.MachineName;
toolStripConnectToTextBox.Text = machineHostname;
services = new SortableBindingList<ServiceViewModel>();

services = new List<ServiceViewModel>();
#if NET45
//In NET45 startup type requires WMI, so it doesn't auto refresh
dataGridStatupType.HeaderText = $"{dataGridStatupType.HeaderText} (No Auto Refresh)";
Expand All @@ -49,7 +49,9 @@ private void FormLoaded(object sender, EventArgs e)
PerformAction(async () =>
{
CheckFrameworkValid();
Connect();
await Reload();
dataGridView.Sort(dataGridName, ListSortDirection.Ascending);
});
}

Expand Down Expand Up @@ -270,24 +272,32 @@ private async Task Reload()

private void PopulateFilteredDataview()
{
var sortColumn = dataGridView.SortedColumn;
var sortOrder = ListSortDirection.Ascending;
if (dataGridView.SortOrder == SortOrder.Descending) sortOrder = ListSortDirection.Descending;

if (!string.IsNullOrWhiteSpace(toolStripFilterBox.Text))
{
servicesDataGridView.DataSource = services.Where(service => service.Name.IndexOf(toolStripFilterBox.Text, StringComparison.OrdinalIgnoreCase) >= 0).OrderBy(x => x.Name).ToList();
dataGridView.DataSource = new SortableBindingList<ServiceViewModel>(services.Where(service => service.Name.IndexOf(toolStripFilterBox.Text, StringComparison.OrdinalIgnoreCase) >= 0).ToList());
}
else
{
servicesDataGridView.DataSource = services;
dataGridView.DataSource = new SortableBindingList<ServiceViewModel>(services);
}

servicesDataGridView.Refresh();
dataGridView.Refresh();
if (sortColumn != null)
{
dataGridView.Sort(sortColumn, sortOrder);
}
}

private void Connect()
{
toolStripConnectButton.Text = "Disconnect";
toolStripConnectButton.ToolTipText = "Disconnect";
toolStripConnectButton.Tag = "Connected";
toolStripConnectButton.Image = Properties.Resources.Connected;
toolStripConnectButton.Image = Properties.Resources.Disconnect;
toolStripStatusLabel.Text = $"Connected to {machineHostname}.";
}

Expand All @@ -296,7 +306,7 @@ private void Disconnect()
toolStripConnectButton.Text = "Connect";
toolStripConnectButton.ToolTipText = "Connect";
toolStripConnectButton.Tag = "Disconnected";
toolStripConnectButton.Image = Properties.Resources.Disconnected;
toolStripConnectButton.Image = Properties.Resources.Connect;
toolStripStatusLabel.Text = "Disconnected";
services.Clear();
PopulateFilteredDataview();
Expand Down Expand Up @@ -324,7 +334,7 @@ private void SetTitle()

private void PerformOperation(Func<ServiceViewModel, Task> actionToPerform)
{
var selectedServices = servicesDataGridView.SelectedRows.OfType<DataGridViewRow>().Select(g => g.DataBoundItem).OfType<ServiceViewModel>().ToList();
var selectedServices = dataGridView.SelectedRows.OfType<DataGridViewRow>().Select(g => g.DataBoundItem).OfType<ServiceViewModel>().ToList();
PerformOperation(actionToPerform, selectedServices);
}

Expand Down
8 changes: 4 additions & 4 deletions src/ServiceBouncer/Properties/Resources.Designer.cs

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

12 changes: 6 additions & 6 deletions src/ServiceBouncer/Properties/Resources.resx
Expand Up @@ -127,9 +127,6 @@
<data name="Running_State_Paused" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Running-State-Paused.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Disconnected" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Disconnected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Restart" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Restart.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
Expand All @@ -151,9 +148,6 @@
<data name="Browse" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Browse.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Connected" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Connected.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Filter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Filter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
Expand Down Expand Up @@ -181,4 +175,10 @@
<data name="Reconnect" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Reconnect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Connect" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Connect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Disconnect" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Icons\Disconnect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
2 changes: 2 additions & 0 deletions src/ServiceBouncer/ServiceBouncer.csproj
Expand Up @@ -163,7 +163,9 @@
</ItemGroup>
<ItemGroup>
<Content Include="AppIcon.ico" />
<None Include="Icons\Connect.png" />
<Content Include="Icons\Connected.png" />
<None Include="Icons\Disconnect.png" />
<Content Include="Icons\Disconnected.png" />
<Content Include="Icons\Reconnect.png" />
<None Include="Icons\Install.png" />
Expand Down

0 comments on commit 1fde4c6

Please sign in to comment.