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.Auth; namespace Tanshu.Accounts.Helpers { public class SelectUser : Tanshu.Data.BaseSelector { public event UserEventHandler userEvent; public SelectUser(GetData getData, bool autoClose) : base (getData, true, "Select a User") { IList filters = new List(); filters.Add("Name"); SetFilterColumns(filters); grid.Columns["UserID"].Visible = false; grid.Columns["timestamp"].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(User item) { if (item == null) DisplayLabel = ""; else DisplayLabel = string.Format("User Name: {0}", item.Name); } protected override User HandleKeydown(object sender, ExtendedKeyEventArgs e) { User user = bindingSource.Current as User; if (userEvent == null) { e.Handled = false; return user; } if ((e.KeyCode != Keys.F1) && (e.KeyCode != Keys.F2)) { e.Handled = false; return user; } if ((user == null) && (e.KeyCode == Keys.F2)) { e.Handled = false; return user; } if (e.KeyCode == Keys.F1) user = new User(); UserEventArgs userEventArgs = new UserEventArgs(user); user = userEvent(sender, userEventArgs); e.Handled = userEventArgs.Handled; return user; } #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 User UserEventHandler(object sender, UserEventArgs e); public class UserEventArgs : EventArgs { public UserEventArgs(User user) { User = user; Handled = false; } public User User { get; private set; } public bool Handled { get; set; } } }