PIbd-31_Shanygin.A.V._COP_27/ComponentOrientedProgramming/WinFormsTest/Form1.cs
2024-10-13 16:15:32 +04:00

209 lines
6.9 KiB
C#

using CreateVisualComponent;
using Microsoft.VisualBasic.Devices;
using NotVisualComponent;
using NotVisualComponent.Models;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Header;
namespace WinFormsTest
{
public partial class Form1 : Form
{
private bool EmptyFill = false;
int count = 1;
public Form1()
{
InitializeComponent();
CreateList();
}
private void CreateList()
{
for (int i = 0; i < 10; i++)
{
SelectionComponent.Items.Add($"Food ¹{i}");
}
}
private void ButtonListClear_Click(object sender, EventArgs e)
{
SelectionComponent.Clear();
}
private void ButtonListLoad_Click(object sender, EventArgs e)
{
SelectionComponent.Clear();
CreateList();
}
private void SelectionComponent_ChangeEvent(object sender, EventArgs e)
{
object? selectedItem = SelectionComponent.SelectedElement;
MessageBox.Show($"Change selected {selectedItem?.ToString()}");
}
private void InputComponent_CheckBoxEvent(object sender, EventArgs e)
{
count++;
if (count % 2 == 0)
{
textBoxEvent.Text = "null";
}
else
{
textBoxEvent.Text = "not null";
}
}
private void ButtonGet_Click(object sender, EventArgs e)
{
try
{
if (InputComponent.Value == null)
{
MessageBox.Show($"Pressed Checkbox");
}
else
{
MessageBox.Show($"Date: {InputComponent.Value}");
}
}
catch (Exception ex)
{
MessageBox.Show($"Error: {ex.Message}");
}
}
private void ButtonSet_Click(object sender, EventArgs e)
{
if (EmptyFill)
{
InputComponent.Value = DateTime.Now;
}
else
{
InputComponent.Value = null;
}
EmptyFill = !EmptyFill;
}
readonly List<Delivery> delivers = new()
{
new Delivery { Id = 0, Name = "Ðàõìàäæîí", DeliveryStatus = "Âûäàí", CountProduct = 5 },
new Delivery { Id = 1, Name = "Ãóçáûç", DeliveryStatus = "Âûäàí", CountProduct = 3 },
new Delivery { Id = 2, Name = "Àëåêñàíäð", DeliveryStatus = "Ñôîðìèðîâàíî", CountProduct = 7 },
new Delivery { Id = 3, Name = "Èíàêåíòèé", DeliveryStatus = "Â ïóòè", CountProduct = 4 },
new Delivery { Id = 4, Name = "Òàòüÿíà", DeliveryStatus = "Ñôîðìèðîâàíî", CountProduct = 5 }
};
private void CreateTable()
{
var config = new ColumnsConfiguratoin();
config.Columns.Add(new ColumnConfig
{
ColumnName = "Id",
Width = 10,
Visible = false,
PropertyObject = "Id"
});
config.Columns.Add(new ColumnConfig
{
ColumnName = "Name",
Width = 150,
Visible = true,
PropertyObject = "Name"
});
config.Columns.Add(new ColumnConfig
{
ColumnName = "DeliveryStatus",
Width = 250,
Visible = true,
PropertyObject = "DeliveryStatus"
});
config.Columns.Add(new ColumnConfig
{
ColumnName = "CountProduct",
Width = 200,
Visible = true,
PropertyObject = "CountProduct"
});
ListOutputComponent.ConfigColumn(config);
foreach (Delivery delivery in delivers)
{
for (int i = 0; i < 4; i++)
{
ListOutputComponent.AddItem(delivery, delivery.Id, i);
}
}
ListOutputComponent.Update();
}
private void ButtonShowTable_Click(object sender, EventArgs e)
{
CreateTable();
}
private void ButtonClearTable_Click(object sender, EventArgs e)
{
ListOutputComponent.ClearDataGrid();
}
private void ButtonGetString_Click(object sender, EventArgs e)
{
Delivery? delivery = ListOutputComponent.GetSelectedObjectInRow<Delivery>();
if (delivery is null) return;
MessageBox.Show($"{delivery.Id}-{delivery.Name}-{delivery.DeliveryStatus}-{delivery.CountProduct}");
}
private void buttonExcel_Click(object sender, EventArgs e)
{
excelTable.CreateDoc(new TableConfig
{
FilePath = "C:\\Users\\sshan\\OneDrive\\Desktop\\PathKOP\\Excel1.xlsx",
Header = "Example",
Data = new List<string[,]>
{
new string[,] {
{ "1", "1", "1" },
{ "1", "2", "2" },
{ "1", "3", "3" }
},
new string[,] {
{ "2", "1", "1" },
{ "2", "2", "2" },
{ "2", "3", "3" }
}
}
});
}
private void buttonHardExcelSave_Click(object sender, EventArgs e)
{
excelHardTable.CreateDoc(new TableWithHeaderConfig<Delivery>
{
FilePath = "C:\\Users\\sshan\\OneDrive\\Desktop\\PathKOP\\Excel2.xlsx",
Header = "Delivers",
ColumnsRowsWidth = new List<(int Column, int Row)> { (5, 5), (10, 5), (10, 0), (5, 0), (7, 0) },
Headers = new List<(int ColumnIndex, int RowIndex, string Header, string PropertyName)>
{
(0, 0, "Id", "Id"),
(1, 0, "Name", "Name"),
(2, 0, "DeliveryStatus", "DeliveryStatus"),
(3, 0, "CountProduct", "CountProduct"),
},
Data = delivers
});
}
private void buttonDiagramSave_Click(object sender, EventArgs e)
{
excelDiagram.CreateDoc(new ChartConfig
{
FilePath = "C:\\Users\\sshan\\OneDrive\\Desktop\\PathKOP\\Excel3.xlsx",
Header = "Chart",
ChartTitle = "Gistogram",
LegendLocation = NotVisualComponent.Models.Location.Bottom,
Data = new Dictionary<string, List<(string Name, double Value)>>
{
{ "Series 1", new() { ("Orange", 150), ("Apple", 200), ("Lime", 300) } }
}
});
}
}
}