using Comal.Classes; using InABox.Clients; using InABox.DynamicGrid; using PRSClasses; using Syncfusion.Windows.Shared; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using Button = System.Windows.Controls.Button; using MessageBox = System.Windows.MessageBox; using TextBox = System.Windows.Controls.TextBox; namespace PRS.Shared { public class DFAddTaskControl : DynamicFormFieldControl { private IntegerTextBox Number = null!; // Late-initialisation private Button Button = null!; // Late-initialisation protected override FrameworkElement Create() { var panel = new DockPanel(); Button = new Button { Content = "Create Task", Padding = new Thickness(5), IsEnabled = FormDesignGrid.IsEditing }; Button.Click += Button_Click; Number = new IntegerTextBox { IsEnabled = false, VerticalAlignment = VerticalAlignment.Stretch, Margin = new Thickness(0, 0, 5, 0) }; Button.SetValue(DockPanel.DockProperty, Dock.Right); Number.SetValue(DockPanel.DockProperty, Dock.Left); panel.Children.Add(Button); panel.Children.Add(Number); return panel; } private void Button_Click(object sender, RoutedEventArgs e) { var kanban = new Kanban(); kanban.Type.ID = Field.Properties.TaskType.ID; var grid = DynamicGridUtils.CreateDynamicGrid(typeof(DynamicDataGrid<>), typeof(Kanban)) as DynamicDataGrid; if (grid!.EditItems(new[] { kanban })) { new Client().Save(kanban, $"Created by form variable '{Field.Name}'"); Number.Value = kanban.Number; Button.IsEnabled = false; } } public override string? GetSerializedValue() { return GetValue(); } public override void SetSerializedValue(string? value) { SetValue(value); } public override string? GetValue() { return Number.Value?.ToString(); } public override void SetValue(string? value) { if(int.TryParse(value, out var i)) { Number.Value = i; } else { Number.Value = null; } Button.IsEnabled = FormDesignGrid.IsEditing && value == null; } protected override bool IsEmpty() => GetValue() == null; } }