Files
JenkinsStatusWindow/Options/JenkinsProjectsOptionsPanel.xaml.cs

115 lines
3.3 KiB
C#

using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace JenkinsStatusWindow.Options
{
public partial class JenkinsProjectsOptionsPanel
{
public JenkinsProjectsOptionsPanel()
{
InitializeComponent();
}
private JenkinsProjects JenkinsProjects => Data as JenkinsProjects;
public override void LoadPanel(object data)
{
base.LoadPanel(data);
JenkinsProjectsGrid.ItemsSource = JenkinsProjects;
JenkinsProjectsGrid.SelectedItem = JenkinsProjects.FirstOrDefault();
SetButtonStates();
}
public override bool ValidatePanel()
{
return true;
}
public override void SavePanel()
{
}
public override string CategoryName => Properties.Resources.OptionCategory_JenkinsProjects;
private void SetButtonStates()
{
EditJenkinsProjectButton.IsEnabled = (JenkinsProjectsGrid.SelectedItems.Count == 1);
DeleteJenkinsProjectButton.IsEnabled = (JenkinsProjectsGrid.SelectedItems.Count > 0);
}
private void AddJenkinsProject()
{
var jenkinsProject = new JenkinsProject();
var jenkinsProjectWindow = new JenkinsProjectWindow();
var result = jenkinsProjectWindow.Display(jenkinsProject, Window.GetWindow(this));
if (result.HasValue && result.Value)
{
JenkinsProjects.Add(jenkinsProject);
JenkinsProjectsGrid.SelectedItem = jenkinsProject;
SetButtonStates();
}
}
private void EditSelectedJenkinsProject()
{
if (JenkinsProjectsGrid.SelectedItem == null)
return;
var jenkinsProject = JenkinsProjectsGrid.SelectedItem as JenkinsProject;
var jenkinsProjectWindow = new JenkinsProjectWindow();
jenkinsProjectWindow.Display(jenkinsProject, Window.GetWindow(this));
}
private void DeleteSelectedJenkinsProject()
{
var jenkinsProject = JenkinsProjectsGrid.SelectedItem as JenkinsProject;
var index = JenkinsProjectsGrid.SelectedIndex;
JenkinsProjects.Remove(jenkinsProject);
if (JenkinsProjectsGrid.Items.Count == index)
JenkinsProjectsGrid.SelectedIndex = JenkinsProjectsGrid.Items.Count - 1;
else if (JenkinsProjectsGrid.Items.Count >= index)
JenkinsProjectsGrid.SelectedIndex = index;
SetButtonStates();
}
private void HandleAddJenkinsProjectButtonClick(object sender, RoutedEventArgs e)
{
AddJenkinsProject();
}
private void HandleEditJenkinsProjectButtonClick(object sender, RoutedEventArgs e)
{
EditSelectedJenkinsProject();
}
private void HandleDeleteJenkinsProjectButtonClick(object sender, RoutedEventArgs e)
{
DeleteSelectedJenkinsProject();
}
private void HandleJenkinsProjectsSelectionChanged(object sender, SelectionChangedEventArgs e)
{
SetButtonStates();
}
private void HandleJenkinsProjectsDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
EditSelectedJenkinsProject();
}
}
}