123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- using System;
- using System.Linq;
- using System.Windows;
- using System.Windows.Controls;
- using Comal.Classes;
- using InABox.Core;
- using PRSDesktop.Utils;
- using Syncfusion.Windows.Controls.Grid;
- namespace PRSDesktop
- {
- public class TempateSelectedArgs : EventArgs
- {
- public FactoryTemplate Template { get; set; }
- }
- public delegate void TemplateSelectedHandler(object sender, TempateSelectedArgs e);
- /// <summary>
- /// Interaction logic for SetoutTemplateList.xaml
- /// </summary>
- public partial class SetoutTemplateList : UserControl
- {
- private FactorySetup _settings;
- public SetoutTemplateList()
- {
- InitializeComponent();
- Templates = new PackableList<FactoryTemplate>();
- Grid.Model.ColumnCount = 5;
- Grid.Model.ColumnWidths[0] = 0;
- Grid.Model.ColumnWidths[1] = 40;
- Grid.Model.ColumnWidths[2] = 0;
- Grid.Model.ColumnWidths[3] = 100;
- Grid.Model.ColumnWidths[4] = 20;
- Grid.Model.HeaderColumns = 0;
- }
- public PackableList<FactoryTemplate> Templates { get; }
- public event TemplateSelectedHandler TemplateSelected;
- private void SelectTemplate(FactoryTemplate template)
- {
- //Null check makes sure the main page is attached to the event
- if (TemplateSelected != null)
- TemplateSelected(this, new TempateSelectedArgs { Template = template });
- }
- public void Load(FactorySetup settings)
- {
- _settings = settings;
- Templates.Clear();
- Templates.AddRange(_settings.Templates.OrderBy(x => x.Code));
- Grid.Model.RowCount = 0;
- Grid.Model.RowCount = Templates.Count + 2;
- }
- private void Grid_SizeChanged(object sender, SizeChangedEventArgs e)
- {
- Grid.Model.ColumnWidths[2] = e.NewSize.Width - 160;
- }
- private void Grid_QueryCellInfo(object sender, GridQueryCellInfoEventArgs e)
- {
- try
- {
- var row = e.Cell.RowIndex - 1;
- var col = e.Cell.ColumnIndex;
- switch (col)
- {
- case 0:
- if (row == -1)
- {
- e.Style.CellValue = "ID";
- }
- else
- {
- e.Style.CellType = "Static";
- e.Style.CellValue = row < Templates.Count ? Templates[row].ID : Guid.Empty;
- }
- e.Style.VerticalAlignment = VerticalAlignment.Center;
- break;
- case 1:
- if (row == -1)
- e.Style.CellValue = "Code";
- else
- e.Style.CellValue = row < Templates.Count ? Templates[row].Code : "";
- e.Style.VerticalAlignment = VerticalAlignment.Center;
- break;
- case 2:
- if (row == -1)
- e.Style.CellValue = "Template Name";
- else
- e.Style.CellValue = row < Templates.Count ? Templates[row].Name : "Add new..";
- e.Style.VerticalAlignment = VerticalAlignment.Center;
- break;
- case 3:
- if (row == -1)
- {
- e.Style.CellValue = "Group";
- }
- else
- {
- e.Style.CellType = "ComboBox";
- e.Style.ItemsSource = _settings.Groups.Select(x => new { ID = x.Group, Name = x.Group }).ToList();
- e.Style.DropDownStyle = GridDropDownStyle.AutoComplete;
- e.Style.DisplayMember = "Name";
- e.Style.ValueMember = "ID";
- e.Style.CellValue = row < Templates.Count ? Templates[row].Group : "Add new..";
- }
- e.Style.VerticalAlignment = VerticalAlignment.Center;
- break;
- case 4:
- if (row < Templates.Count)
- GridUtils.SetButtonImage(e.Style, PRSDesktop.Resources.delete, Grid.Model, col);
- else
- GridUtils.SetButtonImage(e.Style, null, Grid.Model, col);
- break;
- }
- }
- catch (Exception err)
- {
- Logger.Send(LogType.Error, "", string.Format("*** Unknown Error: {0}\n{1}", err.Message, err.StackTrace));
- }
- }
- private void Grid_CommitCellInfo(object sender, GridCommitCellInfoEventArgs e)
- {
- if (e.Cell.ColumnIndex == 1 || e.Cell.ColumnIndex == 2 || e.Cell.ColumnIndex == 3)
- {
- FactoryTemplate template = null;
- if (e.Style.RowIndex > Templates.Count)
- {
- template = new FactoryTemplate { ID = Guid.NewGuid() };
- foreach (var section in _settings.Sections)
- template.Stages.Add(
- new StageTemplate
- {
- SectionID = section.ID,
- Sequence = SequenceType.Link,
- Minutes = 0,
- QualityChecks = section.QualityChecks
- }
- );
- Templates.Add(template);
- }
- else
- {
- template = Templates[e.Style.RowIndex - 1];
- }
- if (e.Cell.ColumnIndex == 1)
- template.Code = e.Style.CellValue.ToString();
- else if (e.Cell.ColumnIndex == 2)
- template.Name = e.Style.CellValue.ToString();
- else if (e.Cell.ColumnIndex == 3)
- template.Group = e.Style.CellValue.ToString();
- Grid.Model.RowCount = 0;
- Grid.Model.RowCount = Templates.Count + 2;
- }
- }
- private void Grid_CellClick(object sender, GridCellClickEventArgs e)
- {
- var row = e.RowIndex - 1;
- if (row > -1 && row < Templates.Count)
- {
- var document = Templates[row];
- if (e.ColumnIndex == 4)
- {
- Templates.Remove(document);
- e.Handled = true;
- }
- }
- if (e.Handled)
- {
- Grid.Model.RowCount = 0;
- Grid.Model.RowCount = Templates.Count + 2;
- }
- if (row > -1 && row < Templates.Count)
- SelectTemplate(Templates[row]);
- else
- SelectTemplate(null);
- }
- }
- }
|