📄 personalgroupentrylistcontrol.cs
字号:
namespace Imps.Client.Pc
{
using Imps.Client;
using Imps.Client.Core;
using Imps.Client.Pc.Controls;
using Imps.Client.Utils;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
public class PersonalGroupEntryListControl : UserControl
{
private EmptyPersonalGroupControl _emptyControl;
private IFrameworkWindow _framework;
private PersonalGroupListControl _listControl;
private IContainer components;
public PersonalGroupEntryListControl(IFrameworkWindow framework)
{
this.InitializeComponent();
this._framework = framework;
}
private void CreateGroupButton_Click(object sender, EventArgs e)
{
try
{
if (this.Currentuser.Status == UserAccountStatus.Logon)
{
this._framework.PersonalGroupManager.CreatePersonalGroup(base.FindForm());
}
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void Currentuser_StatusChanged(object sender, UserSatusChangedEventArgs e)
{
switch (e.NewStatus)
{
case UserAccountStatus.Logon:
case UserAccountStatus.OfflineLogon:
this.InitControl();
this.EnableToolBar();
break;
case UserAccountStatus.Logouting:
case UserAccountStatus.Logoff:
case UserAccountStatus.Disconnected:
case UserAccountStatus.WaitReconnect:
case UserAccountStatus.StandBy:
break;
default:
return;
}
}
private void DisplayModeTrackBar_ValueChanged(object sender, EventArgs e)
{
try
{
this.ListControl.ShowGroupdetail = this.ShowGroupDetail;
this._framework.AccountManager.CurrentUser.Configuration.UserSetting.ConversationSetting.ShowPersonalGroupDetail = this.ShowGroupDetail;
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
protected override void Dispose(bool disposing)
{
if (disposing && (this.components != null))
{
this.components.Dispose();
}
base.Dispose(disposing);
}
private void EnableToolBar()
{
BGroupListControlToolbar toolbar = this._framework.PersonalGroupManager.ToolbarControl as BGroupListControlToolbar;
if (this.Currentuser.Status == UserAccountStatus.OfflineLogon)
{
toolbar.CreateGroupButton.Enabled = false;
toolbar.SearchGroupButton.Enabled = false;
}
else if (this.Currentuser.Status == UserAccountStatus.Logon)
{
toolbar.CreateGroupButton.Enabled = true;
toolbar.SearchGroupButton.Enabled = true;
}
}
private void InitControl()
{
base.Controls.Clear();
if (this.Currentuser.PersonalGroups.Count > 0)
{
base.Controls.Add(this.ListControl);
}
else
{
base.Controls.Add(this.EmptyControl);
if (this.Currentuser.Status == UserAccountStatus.OfflineLogon)
{
this.EmptyControl.Enabled = false;
}
else if (this.Currentuser.Status == UserAccountStatus.Logon)
{
this.EmptyControl.Enabled = true;
}
}
}
private void InitGroupEvent()
{
this.Currentuser.PersonalGroupManager.GroupAdded += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupAdded);
this.Currentuser.PersonalGroupManager.GroupDeleted += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupDeleted);
this.Currentuser.PersonalGroupManager.GroupRemoved += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupDeleted);
this.Currentuser.PersonalGroupManager.MeBeDeleted += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupDeleted);
this.Currentuser.StatusChanged += new EventHandler<UserSatusChangedEventArgs>(this, (IntPtr) this.Currentuser_StatusChanged);
this.Currentuser.PersonalGroups.GroupLoadStatusChanged += new EventHandler(this.PersonalGroups_GroupLoadStatusChanged);
}
private void InitializeComponent()
{
base.SuspendLayout();
base.set_AutoScaleDimensions(new SizeF(6f, 13f));
base.set_AutoScaleMode(1);
base.Name = "PersonalGroupEntryListControl";
base.Size = new Size(240, 390);
base.ResumeLayout(false);
}
private void InitToolBar()
{
BGroupListControlToolbar toolbar = this._framework.PersonalGroupManager.ToolbarControl as BGroupListControlToolbar;
toolbar.DisplayModeTrackBar.Value = this.Currentuser.Configuration.UserSetting.ConversationSetting.ShowPersonalGroupDetail ? 1 : 0;
toolbar.CreateGroupButton.Click += new EventHandler(this.CreateGroupButton_Click);
toolbar.SearchGroupButton.Click += new EventHandler(this.SearchGroupButton_Click);
toolbar.DisplayModeTrackBar.ValueChanged += new EventHandler(this.DisplayModeTrackBar_ValueChanged);
this.EnableToolBar();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.InitToolBar();
this.InitControl();
this.InitGroupEvent();
}
private void PersonalGroupManager_GroupAdded(object sender, EventArgs e)
{
if (base.Controls[0].GetType() == typeof(EmptyPersonalGroupControl))
{
base.Controls.Clear();
base.Controls.Add(this.ListControl);
}
}
private void PersonalGroupManager_GroupDeleted(object sender, EventArgs e)
{
if (this.Currentuser.PersonalGroups.Count == 0)
{
base.Controls.Clear();
base.Controls.Add(this.EmptyControl);
}
}
private void PersonalGroups_GroupLoadStatusChanged(object sender, EventArgs e)
{
if ((this.Currentuser.PersonalGroups.GroupLoadStatus == PersonalGroupLoadStatus.Loaded) || (this.Currentuser.PersonalGroups.GroupLoadStatus == PersonalGroupLoadStatus.Failed))
{
this.InitControl();
}
}
private void SearchGroupButton_Click(object sender, EventArgs e)
{
try
{
if (this.Currentuser.Status == UserAccountStatus.Logon)
{
this._framework.PersonalGroupManager.SearchGroup(base.FindForm());
}
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private User Currentuser
{
get
{
return this._framework.AccountManager.CurrentUser;
}
}
private Control EmptyControl
{
get
{
if (this._emptyControl == null)
{
this._emptyControl = new EmptyPersonalGroupControl(this._framework);
this._emptyControl.Dock = DockStyle.Fill;
}
return this._emptyControl;
}
}
private PersonalGroupListControl ListControl
{
get
{
if (this._listControl == null)
{
this._listControl = new PersonalGroupListControl(this._framework);
this._listControl.ShowGroupdetail = this.ShowGroupDetail;
this._listControl.Dock = DockStyle.Fill;
}
return this._listControl;
}
}
private bool ShowGroupDetail
{
get
{
return ((this._framework.PersonalGroupManager.ToolbarControl as BGroupListControlToolbar).DisplayModeTrackBar.Value == 1);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -