| | |
| | | using HMI.Core.Setting; |
| | | using HMI.Core.Util; |
| | | using HMI.UI.Util; |
| | | using HMI.Util.Alarm; |
| | | using Panuon.WPF.UI; |
| | | using System; |
| | | using System.Collections.ObjectModel; |
| | |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using System.Windows.Media.Imaging; |
| | | using HMI.Util.Base; |
| | | using System.Windows.Interop; |
| | | |
| | | namespace WPFProject |
| | | { |
| | | public class SimpleAlarm |
| | | { |
| | | public string Id { get; set; } |
| | | public string Time { get; set; } |
| | | public string Message { get; set; } |
| | | public override string ToString() |
| | |
| | | /// <summary> |
| | | /// PanuonWindow.xaml 的交互逻辑 |
| | | /// </summary> |
| | | public partial class PanuonWindow : WindowX, IPluginContainer,IAlarmShow, AlarmBase |
| | | public partial class PanuonWindow : WindowX, IPluginContainer, IAlarmShow |
| | | { |
| | | public PanuonWindow() |
| | | { |
| | |
| | | get => Alarms?.Count ?? 0; |
| | | } |
| | | |
| | | public ListBox sb { |
| | | public ListBox sb |
| | | { |
| | | get;set; |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | private bool logoutAdded = false; |
| | | |
| | | private void Logout() |
| | | { |
| | | if (MsgBoxHelper.WarnMessage(this, this.lang("App.MakeSureLogout")) == MessageBoxResult.OK) |
| | |
| | | File.Delete(path); |
| | | } |
| | | this.Closed -= window_Closed; |
| | | if (!logoutAdded) |
| | | { |
| | | this.Closed += Logout_PanuonWindow_Closed; |
| | | logoutAdded = true; |
| | | } |
| | | this.Close(); |
| | | } |
| | | } |
| | | |
| | | private void Logout_PanuonWindow_Closed(object sender, EventArgs e) |
| | | { |
| | | AlarmUtil.Release(); |
| | | PluginLoader.Reset(); |
| | | UserInfo.Logout(); |
| | | AlarmShowHelper.UnRegister(this); |
| | | Login login = new Login(); |
| | | login.Show(); |
| | | } |
| | | this.Closed -= Logout_PanuonWindow_Closed; |
| | | logoutAdded = false; |
| | | } |
| | | |
| | | private void RestartApp() |
| | |
| | | |
| | | private void window_Closed(object sender, EventArgs e) |
| | | { |
| | | try |
| | | { |
| | | AlarmUtil.Release(); |
| | | PluginLoader.Reset(); |
| | | UserInfo.Logout(); |
| | | AlarmShowHelper.UnRegister(this); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | } |
| | | Application.Current.Shutdown(); |
| | | } |
| | | |
| | |
| | | this.Maximize(); |
| | | break; |
| | | case "closeBtn": |
| | | this.Closed -= Logout_PanuonWindow_Closed; |
| | | this.Close(); |
| | | break; |
| | | case "BtnSwitchTheme": |
| | |
| | | } |
| | | } |
| | | |
| | | public bool ShowAlarm(string message) |
| | | public bool ShowAlarm(AlarmText alarm) |
| | | { |
| | | bool res = false; |
| | | Dispatcher.Invoke(() => |
| | | { |
| | | if (Alarms.FirstOrDefault(e => e.Message == message) == null) |
| | | if (Alarms.FirstOrDefault(e => e.Id == alarm.VirtualId) == null) |
| | | { |
| | | var data = new SimpleAlarm |
| | | { |
| | | Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | Message = message |
| | | Id = alarm.VirtualId, |
| | | Time = alarm.Time, |
| | | Message = alarm.AlarmInfo |
| | | }; |
| | | Alarms.Add(data); |
| | | sb?.ScrollIntoView(data); |
| | |
| | | sb.Loaded -= list_Loaded; |
| | | } |
| | | |
| | | public bool? Alarm(string message) |
| | | private void Clear_AllAlarm_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | return true; |
| | | Alarms?.Clear(); |
| | | } |
| | | |
| | | //private void BaseWindow_Loaded(object sender, RoutedEventArgs e) |