diff --git a/StormChatWPF/Chat.cs b/StormChatWPF/Chat.cs index f328679..e67a055 100644 --- a/StormChatWPF/Chat.cs +++ b/StormChatWPF/Chat.cs @@ -11,34 +11,50 @@ namespace StormChatWPF { class Chat { - public static User[] userlist;//联系人集合 - public static User ChatNow = new User();//当前聊天对象 - - internal static void GetUserList(ResultHead head, User[] users) + public static List ContactsList;//联系人集合 + public static Chat chat = new Chat(); + private Chat() + { + StormClient.OnLoginDone += HaveLogin; + StormClient.OnGetUserListDone += GetContactsList; + StormClient.OnMessage +=ReciveMessage; + } + + + private User ChatNow; + internal User SetContact + { + get + { + return ChatNow; + } + set + { + ChatNow = value; + } + }//设置当前联系人对象 + internal static void GetContactsList(ResultHead head, User[] users) { if (head.Error != "") { MessageBox.Show("无法获取联系人列表"); } else - userlist = users; - }//获取联系人用户列表 + ContactsList =new List( users); + return; + }//获取联系人列表 internal void Log(string user,string password) { - if (StormClient.Initialize()) - { - StormClient.QueueLogin(user,password); - } - else - { - MessageBox.Show("连接服务器失败!"); + if (StormClient.Initialize()) + { + StormClient.QueueLogin(user,password); + } + else + { + MessageBox.Show("连接服务器失败!"); } }//登录 - internal static void Reconnect(Exception e) - { - StormClient.Initialize(); - }//尝试重连接一次,如果失败,则关闭mainwindow,打开登录窗口 - internal static void HaveLogin(ResultHead head, User user) + internal static void HaveLogin(ResultHead head, User user) { App.Current.Dispatcher.Invoke( (Action)delegate () @@ -48,15 +64,27 @@ namespace StormChatWPF User.Me = user; MainWindow userWindow = new MainWindow(); userWindow.Show(); - LogWindow.entry.Close(); + LogWindow.Instence.Close(); } else { MessageBox.Show("登录失败!"); } - }); + }); }//登录完成 + internal static void ReciveMessage(Message message) + { + LogWindow.Instence.ShowMessage(message); + }//接受到新消息的时候 + internal static void SendMessage(string text,User target) + { + // Message msg = new Message(text); + // Action f = delegate(BaseHead head) + // { - + // }; + // StormClient.QueueSendMessage(msg, target, f); + // LogWindow.Instence.ShowUserMessage(); + } } } diff --git a/StormChatWPF/LogWindow.xaml.cs b/StormChatWPF/LogWindow.xaml.cs index 166f091..924a07b 100644 --- a/StormChatWPF/LogWindow.xaml.cs +++ b/StormChatWPF/LogWindow.xaml.cs @@ -21,24 +21,22 @@ namespace StormChatWPF /// public partial class LogWindow : Window { - public static LogWindow entry; + public static LogWindow Instence; public LogWindow() { InitializeComponent(); - StormClient.OnLoginDone += Chat.HaveLogin; - StormClient.OnGetUserListDone += Chat.GetUserList; - StormClient.OnDisconnect += Chat.Reconnect; - entry = this; + Instence = this; } - Chat chat = new Chat(); private void Login_button_Click(object sender, RoutedEventArgs e) { - chat.Log(AccountBox.Text,passwordBox.Password); + Chat.chat.Log(AccountBox.Text,passwordBox.Password); } - - private void Window_SizeChanged(object sender, SizeChangedEventArgs e) + internal void ShowMessage(Message message) { + }//将收到的消息展现于UI界面 + internal void ShowUserMessage() + { } } }