using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Linq; using Tanshu.Accounts.Contracts; using Tanshu.Data; using Tanshu.Accounts.Entities; namespace Tanshu.Accounts.Helpers { public class SelectWaiter : Tanshu.Data.BaseSelector { public event WaiterEventHandler WaiterEvent; public SelectWaiter(GetData getData, bool autoClose) : base(getData, true, "Select a Waiter") { var filters = new List {"Name"}; SetFilterColumns(filters); grid.Columns["WaiterID"].Visible = false; } protected override void FilterChanged(Dictionary filter) { //data = originalData.Where(d => d.Name.ToLower().Contains(filter["Name"].ToLower())).ToList(); data = getData(filter); bindingSource.DataSource = data; } protected override void UpdateDisplay(Waiter item) { DisplayLabel = item == null ? "" : string.Format("Waiter Name: {0}", item.Name); } protected override Waiter HandleKeydown(object sender, ExtendedKeyEventArgs e) { var waiter = bindingSource.Current as Waiter; if (WaiterEvent == null) { e.Handled = false; return waiter; } var eventArgs = new SelectorEventArgs(null,SelectorAction.Insert); switch (e.KeyCode) { case Keys.F1: { waiter = new Waiter { Name = base.filterColumns["Name"].Trim() }; eventArgs = new SelectorEventArgs(waiter,SelectorAction.Insert); break; } case Keys.F2: { if (waiter != null) waiter.Name = base.filterColumns["Name"].Trim(); eventArgs = new SelectorEventArgs(waiter, SelectorAction.Update); break; } case Keys.F8: { if (waiter != null) eventArgs = new SelectorEventArgs(waiter, SelectorAction.Delete); break; } } if ((waiter != null) && ((e.KeyCode == Keys.F1) || (e.KeyCode == Keys.F2) || (e.KeyCode == Keys.F8))) waiter = WaiterEvent(sender, eventArgs); e.Handled = eventArgs.Handled; return waiter; } #region Designer Code /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); } #endregion #endregion } public delegate Waiter WaiterEventHandler(object sender, SelectorEventArgs e); }