private void SetCustomMembers(TreeNodeCustomStaff s, CustomGroup c) { INWindow inWindow = this.dataService.INWindow as INWindow; if (inWindow.Employee.FirstTreeView.Items.Count > 0) { foreach (TreeViewItem item in (System.Collections.IEnumerable)inWindow.Employee.FirstTreeView.Items) { CustomGroupTreeViewItem cust = item as CustomGroupTreeViewItem; if (cust != null && cust.Tag != null) { if (c.GroupID == cust.Tag.ToString()) { foreach (TreeNodeCustomStaff i in (System.Collections.IEnumerable)cust.Items) { if (i.Staff.Uid != s.Staff.Uid) { i.IsBigHead = false; i.ShowSmallHead(); } } } else { foreach (TreeNodeCustomStaff i in (System.Collections.IEnumerable)cust.Items) { i.IsBigHead = false; i.ShowSmallHead(); } } } } } }
public void ClearCustomGroup() { for (int i = this.FirstTreeView.Items.Count - 1; i >= 0; i--) { CustomGroupTreeViewItem customGroupTreeViewItem = this.FirstTreeView.Items[i] as CustomGroupTreeViewItem; if (customGroupTreeViewItem != null) { this.FirstTreeView.Items.Remove(customGroupTreeViewItem); } } }
private void miAddGroup_Click(object sender, RoutedEventArgs ee) { CustomGroupTreeViewItem item = new CustomGroupTreeViewItem(); item.Style = (base.FindResource("TreeViewItemStyle") as Style); string id = CustomGroup.GetCustomGroupID(); CustomGroup cc = new CustomGroup { Admin = ServiceUtil.Instance.SessionService.Uid, GroupID = id, GroupName = item.HeaderText }; item.DataContext = cc; item.Tag = id; CustomGroupManagerWindowViewModel viewModel = CustomGroupManagerWindowViewModel.GetInstance(); item.CreateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e) { if (e.Item != null) { this.inWindow.Employee.FirstTreeView.Items.Add(e.Item); CustomGroup c = e.Item.DataContext as CustomGroup; if (c != null) { DataModel.Instance.CustomeGroupName.Add(c.GroupID, c); viewModel.CreateCustomGroup(this.sessionService.Uid, c.GroupID, e.Item.HeaderText); } } }; item.DeleteCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e) { DataModel.Instance.CustomeGroupName.Remove(item.Tag.ToString()); this.inWindow.Employee.FirstTreeView.Items.Remove(item); viewModel.DropCustomGroup((int)this.sessionService.Uid, item.Tag.ToString()); }; item.UpdateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e) { if (DataModel.Instance.CustomeGroupName.ContainsKey(item.Tag.ToString())) { DataModel.Instance.CustomeGroupName[item.Tag.ToString()].GroupName = item.HeaderText; viewModel.UpdateCustomGroup((int)this.sessionService.Uid, item.Tag.ToString(), item.HeaderText); } }; if (this.CreateCustomItemEvent != null) { this.CreateCustomItemEvent(this, new CustomGroupTreeViewItem.CustomEventArgs { Item = item }); } this.SetFocus(item); item.IsSelected = true; }
private void SetFocus(CustomGroupTreeViewItem item) { Grid grid = item.Header as Grid; if (grid != null) { if (grid.Children.Count > 1 && grid.Children[1] is TextBox) { TextBox textBox = grid.Children[1] as TextBox; textBox.Visibility = Visibility.Visible; textBox.SelectAll(); textBox.Focus(); } } }
private void miAddGroup_Click(object sender, RoutedEventArgs e) { CustomGroupTreeViewItem item = new CustomGroupTreeViewItem(); item.Style = (base.FindResource("TreeViewItemStyle") as Style); item.CreateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs ee) { if (ee.Item != null) { this.FirstTreeView.Items.Add(ee.Item); string id = CustomGroup.GetCustomGroupID(); DataModel.Instance.CustomeGroupName.Add(id, new CustomGroup { GroupID = id, GroupName = ee.Item.HeaderText }); this.customGroupManagerViewModel.CreateCustomGroup(this.sessionService.Uid, id, ee.Item.HeaderText); } }; item.DeleteCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs ee) { DataModel.Instance.CustomeGroupName.Remove(item.Tag.ToString()); this.FirstTreeView.Items.Remove(item); this.customGroupManagerViewModel.DropCustomGroup((int)this.sessionService.Uid, item.Tag.ToString()); }; item.UpdateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs ee) { if (DataModel.Instance.CustomeGroupName.ContainsKey(item.Tag.ToString())) { DataModel.Instance.CustomeGroupName[item.Tag.ToString()].GroupName = item.HeaderText; this.customGroupManagerViewModel.UpdateCustomGroup((int)this.sessionService.Uid, item.Tag.ToString(), item.HeaderText); } }; CustomGroup c = new CustomGroup { Admin = this.sessionService.Uid, GroupID = CustomGroup.GetCustomGroupID(), GroupName = item.HeaderText }; item.DataContext = c; item.Tag = c.GroupID; this.FirstTreeView.Items.Add(item); DataModel.Instance.CustomeGroupName.Add(c.GroupID, c); this.customGroupManagerViewModel.CreateCustomGroup(this.sessionService.Uid, c.GroupID, item.HeaderText); this.SetFocus(item); item.IsSelected = true; }
public void UpdateStaff(Staff staff) { foreach (TreeViewItem item in (System.Collections.IEnumerable) this.FirstTreeView.Items) { CustomGroupTreeViewItem customGroupTreeViewItem = item as CustomGroupTreeViewItem; if (customGroupTreeViewItem != null) { foreach (object cItem in (System.Collections.IEnumerable)item.Items) { TreeNodeCustomStaff treeNodeCustomStaff = cItem as TreeNodeCustomStaff; if (treeNodeCustomStaff != null) { treeNodeCustomStaff.UpdateInfo(); } } } } }
private void CustomGroupTreeViewItem_MouseRightButtonDown(object sender, MouseButtonEventArgs e) { TreeNodeCustomStaff node = e.Source as TreeNodeCustomStaff; if (node != null) { node.Focus(); e.Handled = true; } else { CustomGroupTreeViewItem customGroupTreeViewItem = sender as CustomGroupTreeViewItem; if (customGroupTreeViewItem != null) { customGroupTreeViewItem.Focus(); e.Handled = true; } } }
private void SortTheStaff(IDKin.IM.Core.Staff staff, CustomGroupTreeViewItem customGroupTreeViewItem) { for (int i = 0; i < customGroupTreeViewItem.Items.Count; i++) { TreeNodeCustomStaff cItem = customGroupTreeViewItem.Items[i] as TreeNodeCustomStaff; if (cItem.Staff.Uid == staff.Uid) { cItem.UpdateInfo(); System.Collections.Generic.List<TreeNodeCustomStaff> lists = new System.Collections.Generic.List<TreeNodeCustomStaff>(customGroupTreeViewItem.Items.Count); for (int j = 0; j < customGroupTreeViewItem.Items.Count; j++) { TreeNodeCustomStaff childItem = customGroupTreeViewItem.Items[j] as TreeNodeCustomStaff; lists.Add(childItem); } customGroupTreeViewItem.Items.Clear(); IOrderedEnumerable<TreeNodeCustomStaff> v = from t in lists orderby t.Staff.Status == UserStatus.Offline, t.Status == UserStatus.Hide, t.Status == UserStatus.Out, t.Status == UserStatus.DoNotDisturb, t.Status == UserStatus.Busy, t.Status == UserStatus.Meeting, t.Status == UserStatus.Away, t.Status == UserStatus.Online select t; foreach (TreeNodeCustomStaff treeNodeCustomStaff in v) { customGroupTreeViewItem.Items.Add(treeNodeCustomStaff); } break; } } }
private void AddChildren(IDKin.IM.Core.CustomGroup group, CustomGroupTreeViewItem item) { try { if (group != null && group.Members != null && group.Members.Count != 0) { IOrderedEnumerable<IDKin.IM.Core.Staff> v = from t in @group.Members orderby t.Status == UserStatus.Offline, t.Status == UserStatus.Hide, t.Status == UserStatus.Out, t.Status == UserStatus.DoNotDisturb, t.Status == UserStatus.Busy, t.Status == UserStatus.Meeting, t.Status == UserStatus.Away, t.Status == UserStatus.Online select t; foreach (IDKin.IM.Core.Staff staff in v) { TreeNodeCustomStaff node = new TreeNodeCustomStaff(staff); node.SessionService = this.sessionService; node.DataService = this.dataService; node.ContextMenu = this.GetContextMenuForStaff(node); item.Items.Add(node); } } } catch (System.Exception ex) { System.Console.WriteLine(ex.ToString()); } }
private void ShowGroups(System.Collections.Generic.ICollection<IDKin.IM.Core.CustomGroup> groups) { if (groups != null && groups.Count > 0) { CustomGroupManagerWindowViewModel viewModel = CustomGroupManagerWindowViewModel.GetInstance(); DataModel.Instance.CustomeGroupName.Clear(); foreach (IDKin.IM.Core.CustomGroup group in groups) { CustomGroupTreeViewItem item = new CustomGroupTreeViewItem(); item.Style = (this.inWindow.FindResource("TreeViewItemStyle") as Style); item.DataContext = group; item.HeaderText = group.GroupName; item.Tag = group.GroupID; item.CreateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e) { if (e.Item != null) { this.inWindow.Employee.FirstTreeView.Items.Add(e.Item); IDKin.IM.Core.CustomGroup c = e.Item.DataContext as IDKin.IM.Core.CustomGroup; if (c != null) { DataModel.Instance.CustomeGroupName.Add(c.GroupID, c); viewModel.CreateCustomGroup(this.sessionService.Uid, c.GroupID, e.Item.HeaderText); } } }; item.DeleteCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e) { DataModel.Instance.CustomeGroupName.Remove(item.Tag.ToString()); this.inWindow.Employee.FirstTreeView.Items.Remove(item); viewModel.DropCustomGroup((int)this.sessionService.Uid, item.Tag.ToString()); }; item.UpdateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e) { if (DataModel.Instance.CustomeGroupName.ContainsKey(item.Tag.ToString())) { DataModel.Instance.CustomeGroupName[item.Tag.ToString()].GroupName = item.HeaderText; viewModel.UpdateCustomGroup((int)this.sessionService.Uid, item.Tag.ToString(), item.HeaderText); } DataModel.Instance.CustomeGroupName[item.Tag.ToString()].GroupName = item.HeaderText; viewModel.UpdateCustomGroup((int)this.sessionService.Uid, item.Tag.ToString(), item.HeaderText); }; this.AddChildren(group, item); this.dataService.CustomGroups.Add(group); this.inWindow.Employee.FirstTreeView.Items.Add(item); DataModel.Instance.CustomeGroupName.Add(group.GroupID, group); } } }