tbf/ProductionTracing/Forms/StatisticsOptionsDlg.cs

177 lines
5.4 KiB
C#

///
/// Copyright (c) 2016-2022 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using ProductionTracing.Resources;
namespace ProductionTracing.Forms
{
public partial class StatisticsOptionsDlg : Form
{
public bool TwoDim;
public int RowItemIx;
public int ColumnItemIx;
public bool FilterEnabled;
public int FilteredItemIx;
public string FilteredValue;
IList<ItemSpec> projectedItems;
public StatisticsOptionsDlg(IList<ItemSpec> projectedItems)
{
InitializeComponent();
Localize();
this.projectedItems = projectedItems;
TwoDim = Program.LocalSettings.TwoDim;
twoDimCheckBox.Checked = TwoDim;
columnsComboBox.Enabled = TwoDim;
FilterEnabled = Program.LocalSettings.FilterEnabled;
filterCheckBox.Checked = FilterEnabled;
filterGroupBox.Enabled = FilterEnabled;
filteredValueTextBox.Text = Program.LocalSettings.FilteredValue;
RowItemIx = 0;
rowsComboBox.Text = projectedItems[0].Caption;
///
ColumnItemIx = 0;
columnsComboBox.Text = projectedItems[0].Caption;
///
FilteredItemIx = 0;
filteredItemComboBox.Text = projectedItems[0].Caption;
///
for (int i = 1; i < projectedItems.Count; i++)
{
string columnCaption = projectedItems[i].Caption;
rowsComboBox.Items.Add(columnCaption);
columnsComboBox.Items.Add(columnCaption);
filteredItemComboBox.Items.Add(columnCaption);
if (columnCaption == Program.LocalSettings.RowItemID)
{
RowItemIx = i;
rowsComboBox.Text = columnCaption;
}
if (columnCaption == Program.LocalSettings.ColumnItemID)
{
ColumnItemIx = i;
columnsComboBox.Text = columnCaption;
}
if (columnCaption == Program.LocalSettings.FilteredItemId)
{
FilteredItemIx = i;
filteredItemComboBox.Text = columnCaption;
}
}
}
void Localize()
{
Text = Strings.Statistics;
okButton.Text = Strings.OkBtnText;
cancelButton.Text = Strings.Cancel;
rowsGroupBox.Text = Strings.Rows;
columnsGroupBox.Text = Strings.Columns;
}
private void twoDimCheckBox_CheckedChanged(object sender, EventArgs e)
{
columnsComboBox.Enabled = twoDimCheckBox.Checked;
}
private void filterCheckBox_CheckedChanged(object sender, EventArgs e)
{
filterGroupBox.Enabled = filterCheckBox.Checked;
}
private void okButton_Click(object sender, EventArgs e)
{
TwoDim = twoDimCheckBox.Checked;
RowItemIx = -1; /// -1 = No selection
for (int i = 0; i < rowsComboBox.Items.Count; i++)
{
if (rowsComboBox.Text.Equals(rowsComboBox.Items[i]))
{
RowItemIx = i + 1;
break;
}
}
if (TwoDim)
{
ColumnItemIx = -1; /// -1 = No selection
for (int i = 0; i < columnsComboBox.Items.Count; i++)
{
if (columnsComboBox.Text.Equals(columnsComboBox.Items[i]))
{
ColumnItemIx = i + 1;
break;
}
}
}
else
{
ColumnItemIx = 0;
}
FilterEnabled = filterCheckBox.Checked;
if (FilterEnabled)
{
FilteredItemIx = -1; /// -1 = No selection
for (int i = 0; i < filteredItemComboBox.Items.Count; i++)
{
if (filteredItemComboBox.Text.Equals(filteredItemComboBox.Items[i]))
{
FilteredItemIx = i + 1;
break;
}
}
}
else
{
FilteredItemIx = 0;
}
if (RowItemIx == -1 || ColumnItemIx == -1)
{
MessageBox.Show(Strings.Error, Strings.Error, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
DialogResult = DialogResult.Cancel;
}
Program.LocalSettings.TwoDim = TwoDim;
Program.LocalSettings.RowItemID = rowsComboBox.Text;
if (TwoDim)
{
Program.LocalSettings.ColumnItemID = columnsComboBox.Text;
}
Program.LocalSettings.FilterEnabled = FilterEnabled;
if (FilterEnabled)
{
Program.LocalSettings.FilteredItemId = filteredItemComboBox.Text;
FilteredValue = filteredValueTextBox.Text;
Program.LocalSettings.FilteredValue = FilteredValue;
}
Program.LocalSettings.Save();
DialogResult = DialogResult.OK;
Close();
}
private void cancelButton_Click(object sender, EventArgs e)
{
}
}
}