249 lines
9.1 KiB
C#
249 lines
9.1 KiB
C#
![]() |
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();
|
|||
|
|
|||
|
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
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|