using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using CategoryTheory;
using DiagramUI;
using DiagramUI.Utils;
using DataPerformer;
namespace DataPerformerUI.UserControls
{
/// <summary>
/// Editor of label
/// </summary>
public partial class UserControlTable2DEditor : UserControl
{
#region Fields
private ComboBox[] boxes;
private Action action;
#endregion
#region Ctor
/// <summary>
/// Default constructor
/// </summary>
public UserControlTable2DEditor()
{
InitializeComponent();
boxes = userControlComboboxList.Boxes.ToArray();
}
#endregion
#region Members
internal Action Action
{
set
{
action = value;
}
}
internal Table2D Table
{
get
{
return userControlTable2D.Table;
}
set
{
userControlTable2D.Table = value;
fill();
select();
checkBoxBound.Checked = value.ThrowsOutOfRangeException;
checkBoxBound.CheckedChanged += checkBoxBound_CheckedChanged;
}
}
void accept()
{
try
{
string[] s = boxes.GetSelectedStringArray();
Array.Copy(s, Table.Arguments, 2);
IPostSetArrow p = Table;
p.PostSetArrow();
action();
}
catch (Exception ex)
{
ex.Log();
this.ShowError(ex);
}
}
void fill()
{
Double a = 0;
IList<string> s = Table.GetAllMeasuresType(a);
boxes.FillCombo(s);
}
void select()
{
boxes.SelectCombo(Table.Arguments);
}
void open()
{
userControlTable2D.Open();
}
void save()
{
userControlTable2D.Save();
}
void ExportToXml()
{
try
{
if (saveFileDialogXml.ShowDialog(this) != DialogResult.OK)
{
return;
}
XmlDocument doc = Table.Xml;
doc.Save(saveFileDialogXml.FileName);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
void ImportFromXml()
{
try
{
if (openFileDialogXml.ShowDialog(this) != DialogResult.OK)
{
return;
}
XmlDocument doc = new XmlDocument();
doc.Load(openFileDialogXml.FileName);
Table.Xml = doc;
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
#endregion
#region Event Handlers
private void openToolStripButton_Click(object sender, EventArgs e)
{
open();
}
private void saveToolStripButton_Click(object sender, EventArgs e)
{
save();
}
private void buttonAccept_Click(object sender, EventArgs e)
{
accept();
}
private void checkBoxBound_CheckedChanged(object sender, EventArgs e)
{
Table.ThrowsOutOfRangeException = checkBoxBound.Checked;
}
#endregion
private void exportToXmlToolStripMenuItem_Click(object sender, EventArgs e)
{
ExportToXml();
}
private void importFromXmlToolStripMenuItem_Click(object sender, EventArgs e)
{
ImportFromXml();
}
}
}