2025-09-02 11:27:57 +08:00

249 lines
9.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Windows.Forms;
using Bricscad.Ribbon;
using Bricscad.Windows;
using Prism.Events;
using Prism.Ioc;
using Prism.Services.Dialogs;
using SWS.Commons;
using SWS.Electrical;
using SWS.Electrical.Views;
using SWS.Service;
using SWS.WPF.ViewModels;
using SWS.WPF.Views;
using Teigha.Runtime;
using Telerik.Windows.Controls;
using Unity;
using Application = Bricscad.ApplicationServices.Application;
using DialogParameters = Prism.Services.Dialogs.DialogParameters;
[assembly: CommandClass(typeof(Commands))]
[assembly: ExtensionApplication(typeof(Commands))]
namespace SWS.Electrical
{
public partial class Commands : IExtensionApplication
{
public void Initialize()
{
try
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
if (RibbonServices.RibbonPaletteSet == null)
RibbonServices.CreateRibbonPaletteSet();
Start.RegisterTypes();
Start.AutoLogin();
AddTab();
}
catch (System.Exception e)
{
Application.ShowAlertDialog(" An exception occurred in Initialize():\n" + e.ToString());
}
}
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
try
{
// 记录异常信息到日志文件,这里简单打印到控制台
System.Exception ex = e.ExceptionObject as System.Exception;
Console.WriteLine($"发生未处理的异常: {ex.Message}");
Console.WriteLine($"异常堆栈跟踪: {ex.StackTrace}");
// 关闭所有打开的对话框窗口
// 提示用户发生了错误
MessageBox.Show("发生错误,请检查日志文件以获取更多信息。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (System.Exception innerEx)
{
// 如果在处理异常时又发生了异常,简单打印信息
Console.WriteLine($"处理异常时发生错误: {innerEx.Message}");
}
}
public void Terminate()
{
}
void AddTab()
{
RibbonControl rbnCtrl = ComponentManager.Ribbon; //整个上面都是ribbon比如莫工做的电气系统就是ribbon中的一个tab
if (rbnCtrl == null) return;
#region create Ribbon tab
RibbonTab tab1 = new RibbonTab();
tab1.Title = "电气扩展";
tab1.Id = "电气扩展";
rbnCtrl.Tabs.Add(tab1);//一个就行了
#endregion
#region Ribbon
RibbonPanelSource dataSource = new RibbonPanelSource();
dataSource.Title = "测试";
dataSource.Id = "测试";
RibbonPanel dataPanel = new RibbonPanel();
dataPanel.Source = dataSource;
tab1.Panels.Add(dataPanel);
//垂直排列按钮panel
RibbonRowPanel ribbonRowPanel = new RibbonRowPanel();
#region buttons
RibbonButton btnSinalManage = new RibbonButton();
btnSinalManage.ToolTip = "测试绘图";
btnSinalManage.Text = "测试绘图";
btnSinalManage.ButtonStyle = RibbonButtonStyle.SmallWithText;
btnSinalManage.CommandHandler = new DelegateCommand(async x =>
{
//打开窗体
try
{
var flag =await GlobalObj.CheckLogin();
if (!flag)
{
MessageBox.Show("登录已过期,请重新登录!");
return;
}
IDialogParameters para = new DialogParameters();
para.Add(GlobalObject.dialogPar.para1.ToString(), "aaaa");
var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>();
_dialogService.ShowDialog(nameof(DialogTest2), para, (RES) =>
{
//var res = RES.Parameters.GetValue<string>(GlobalObject.dialogPar.para1.ToString());
//if (RES.Result == ButtonResult.Yes)
//{
// MessageBox.Show("窗体Yes关闭返回" + res);
//}
//else if (RES.Result == ButtonResult.No)
//{ MessageBox.Show("窗体NO关闭返回" + res); }
});
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
});
btnSinalManage.Image = GlobalObject.ImageSourceFromEmbeddedResourceStream("OpenProject.png");
btnSinalManage.Id = "选择项目";
ribbonRowPanel.Items.Add(btnSinalManage);
ribbonRowPanel.Items.Add(new RibbonRowBreak());//换行,这样可以使按钮多行排列
#endregion
dataSource.Items.Add(ribbonRowPanel);
#endregion
#region Ribbon
dataSource = new RibbonPanelSource();
dataSource.Title = "信号管理";
dataSource.Id = "信号管理";
dataPanel = new RibbonPanel();
dataPanel.Source = dataSource;
tab1.Panels.Add(dataPanel);
//垂直排列按钮panel
ribbonRowPanel = new RibbonRowPanel();
#region buttons
btnSinalManage = new RibbonButton();
btnSinalManage.ToolTip = "信号管理";
btnSinalManage.Text = "信号管理";
btnSinalManage.ButtonStyle = RibbonButtonStyle.SmallWithText;
btnSinalManage.CommandHandler = new DelegateCommand(async x =>
{
//打开窗体
try
{
var flag = await GlobalObj.CheckLogin();
if (!flag)
{
MessageBox.Show("登录已过期,请重新登录!");
return;
}
var para = new DialogParameters();
var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>();
_dialogService.ShowDialog(nameof(DialogSignalManagement), para, (RES) =>
{
});
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
});
btnSinalManage.Image = GlobalObject.ImageSourceFromEmbeddedResourceStream("SinalManage.png");
btnSinalManage.Id = "信号管理";
ribbonRowPanel.Items.Add(btnSinalManage);
ribbonRowPanel.Items.Add(new RibbonRowBreak());//换行,这样可以使按钮多行排列
#endregion
dataSource.Items.Add(ribbonRowPanel);
#endregion
#region Ribbon
dataSource = new RibbonPanelSource();
dataSource.Title = "绘图管理";
dataSource.Id = "绘图管理";
dataPanel = new RibbonPanel();
dataPanel.Source = dataSource;
tab1.Panels.Add(dataPanel);
//垂直排列按钮panel
ribbonRowPanel = new RibbonRowPanel();
#region buttons
btnSinalManage = new RibbonButton();
btnSinalManage.ToolTip = "布置图自动绘制";
btnSinalManage.Text = "布置图自动绘制";
btnSinalManage.ButtonStyle = RibbonButtonStyle.SmallWithText;
btnSinalManage.CommandHandler = new DelegateCommand(async x =>
{
//打开窗体
try
{
var flag = await GlobalObj.CheckLogin();
if (!flag)
{
MessageBox.Show("登录已过期,请重新登录!");
return;
}
var para = new DialogParameters();
var _dialogService = GlobalObject._prismContainer.Resolve<IDialogService>();
_dialogService.ShowDialog(nameof(DialogAutoArrangeLayout), para, (RES) =>
{
});
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
});
btnSinalManage.Image = GlobalObject.ImageSourceFromEmbeddedResourceStream("SinalManage.png");
btnSinalManage.Id = "信号管理";
ribbonRowPanel.Items.Add(btnSinalManage);
ribbonRowPanel.Items.Add(new RibbonRowBreak());//换行,这样可以使按钮多行排列
#endregion
dataSource.Items.Add(ribbonRowPanel);
#endregion
}
}
}