You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
223 lines
8.9 KiB
223 lines
8.9 KiB
using DevExpress.LookAndFeel; |
|
using DevExpress.XtraBars.Docking; |
|
using ESRI.ArcGIS.Controls; |
|
using KGIS.Framework.Core.Services; |
|
using KGIS.Framework.Menus; |
|
using KGIS.Framework.Menus.Services; |
|
using KGIS.Framework.Platform; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Utils.Helper; |
|
using KGIS.Framework.Views; |
|
using Kingo.PluginServiceInterface; |
|
using System; |
|
using System.Drawing; |
|
using System.Windows.Forms; |
|
using UIShell.OSGi; |
|
|
|
namespace Kingo.PlatformPlugin.Services |
|
{ |
|
class PlatformService : IPlatformService |
|
{ |
|
FrmMain _win; |
|
private IBundleContext _context; |
|
private Timer _timer; |
|
//private UCDataCatalog ucDataCatalog; |
|
//private UCMapControl ucMapCtrl; |
|
private IBaseMainView baseMainViewService; |
|
public PlatformService(IBundleContext context) |
|
{ |
|
_context = context; |
|
_win = FrmMain.GetInstance(context); |
|
_win.Load += _win_Load; |
|
_win.Closing += _win_Closing; |
|
} |
|
|
|
private void _win_Load(object sender, EventArgs e) |
|
{ |
|
|
|
} |
|
|
|
/// <summary> |
|
/// 程序右上角X号,关闭当前程序 |
|
/// </summary> |
|
/// <param name="sender"></param> |
|
/// <param name="e"></param> |
|
private void _win_Closing(object sender, System.ComponentModel.CancelEventArgs e) |
|
{ |
|
try |
|
{ |
|
EngineEditor editor = new EngineEditorClass(); |
|
if (editor.EditState == esriEngineEditState.esriEngineStateEditing) |
|
{ |
|
MessageHelper.ShowTips("当前工程正处于编辑状态,请先关闭编辑!"); |
|
e.Cancel = true; |
|
return; |
|
} |
|
if (MessageHelper.ShowYesNoAndTips(sender as IWin32Window, "是否退出系统?") != DialogResult.Yes) |
|
{ |
|
e.Cancel = true; |
|
} |
|
else |
|
{ |
|
System.Diagnostics.Process[] pro = System.Diagnostics.Process.GetProcessesByName("adb.exe"); |
|
foreach (System.Diagnostics.Process p in pro) |
|
{ |
|
if (!string.IsNullOrEmpty(p.ProcessName)) |
|
{ |
|
try |
|
{ |
|
p.Kill(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug(ex); |
|
} |
|
} |
|
} |
|
//GC.Collect(); |
|
//20231030 王冠杰 注释 软件关闭 未响应 |
|
//Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "SaveProject" }); |
|
System.Environment.Exit(0); |
|
//Application.ExitThread(); |
|
//Application.Exit(); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug("关闭当前程序报错:" + ex.Message); |
|
} |
|
} |
|
|
|
public Form Instance => _win; |
|
|
|
public void InitUI(object args) |
|
{ |
|
try |
|
{ |
|
System.Windows.Forms.Application.DoEvents(); |
|
//设置系统风格 |
|
//DevExpress.UserSkins.BonusSkins.Register(); |
|
//DevExpress.Skins.SkinManager.EnableFormSkins(); |
|
|
|
UserLookAndFeel.Default.SetSkinStyle("Office 2016 Colorful"); |
|
switch (Platform.Instance.SystemType) |
|
{ |
|
case SystemTypeEnum.NDBGJK: |
|
break; |
|
case SystemTypeEnum.WYZS: |
|
break; |
|
case SystemTypeEnum.TBBG: |
|
UserLookAndFeel.Default.SetSkinMaskColors(Color.FromArgb(255, 135, 206, 235), Color.White); |
|
UserLookAndFeel.Default.SkinMaskColor = Color.FromArgb(255, 135, 206, 235); |
|
break; |
|
case SystemTypeEnum.BGFWCG: |
|
UserLookAndFeel.Default.SetSkinMaskColors(Color.FromArgb(255, 240, 128, 128), Color.White); |
|
UserLookAndFeel.Default.SkinMaskColor = Color.FromArgb(255, 240, 128, 128); |
|
break; |
|
default: |
|
break; |
|
} |
|
//DevExpress.XtraEditors.WindowsFormsSettings.DefaultLookAndFeel.SetSkinStyle("Office 2013 White"); |
|
baseMainViewService = _context.GetFirstOrDefaultService<IBaseMainView>(); |
|
DockManager dockManager = null; |
|
if (baseMainViewService != null) |
|
{ |
|
if (baseMainViewService.DocumentView is IDockManage) |
|
{ |
|
dockManager = (baseMainViewService.DocumentView as IDockManage).dockManager; |
|
} |
|
|
|
} |
|
_context.AddService<IMenuService>(new MenuService(_win.RibControl)); |
|
//_context.AddService<IAppMenuService>(new AppMenuService(_win.backViewControl)); |
|
_context.AddService<IViewService>(new ViewService(_win.dockManager, dockManager, _win.tabbedView, _win.WorkPath)); |
|
if (baseMainViewService != null) |
|
{ |
|
baseMainViewService.InitUI(); |
|
IRefreshMenuStatus t = baseMainViewService as IRefreshMenuStatus; |
|
t.InitUI(_win.RibControl); |
|
//object hook = null; |
|
//if (baseMainViewService.DocumentView is KGIS.Framework.AE.IKMap) |
|
//{ |
|
// hook = (baseMainViewService.DocumentView as KGIS.Framework.AE.IKMap).Hook; |
|
//} |
|
//初始化菜单 |
|
Platform.Instance.InitMainMenu(baseMainViewService.Hook); |
|
} |
|
//初始化系统开始菜单 |
|
//Platform.Instance.AppMenuManager.InitAppMenu(hook); |
|
//初始化数据目录右键菜单 |
|
//Platform.Instance.InitCatalogContextMenus(hook); |
|
//Platform.Instance.MapsManager.InitMapTools(); |
|
_timer = new Timer(); |
|
_timer.Tick += _timer_Tick; |
|
_timer.Interval = 1000; |
|
_timer.Start(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug("InitUI异常:" + ex.Message); |
|
LogAPI.Debug("InitUI异常:" + ex.StackTrace); |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// 初始化相关服务 |
|
/// </summary> |
|
/// <param name="context"></param> |
|
public void InitService() |
|
{ |
|
baseMainViewService = _context.GetFirstOrDefaultService<IBaseMainView>(); |
|
DockManager dockManager = null; |
|
if (baseMainViewService != null) |
|
{ |
|
//baseMainViewService.InitUI(); |
|
if (baseMainViewService.DocumentView is IDockManage) |
|
{ |
|
dockManager = (baseMainViewService.DocumentView as IDockManage).dockManager; |
|
} |
|
_context.AddService<IMenuService>(new MenuService(_win.RibControl)); |
|
//_context.AddService<IAppMenuService>(new AppMenuService(_win.backViewControl)); |
|
_context.AddService<IViewService>(new ViewService(_win.dockManager, dockManager, _win.tabbedView, _win.WorkPath)); |
|
} |
|
} |
|
|
|
int num = 0; |
|
private void _timer_Tick(object sender, EventArgs e) |
|
{ |
|
if (num <= 1) |
|
num++; |
|
if (num == 1) |
|
{ |
|
if (baseMainViewService != null) |
|
{ |
|
//初始化数据目录 |
|
//ucDataCatalog.Text = "数据目录"; |
|
Platform.Instance.OpenView(baseMainViewService.DefaultLeftDockPanel, false); |
|
|
|
//初始化地图控件 |
|
Platform.Instance.ViewManager.AddDocument(baseMainViewService.DocumentView); |
|
|
|
} |
|
if (Platform.Instance.SystemType == SystemTypeEnum.BGFWCG) |
|
{ |
|
IUcZYQMagrHelper ucZYQMagrHelper = BundleRuntime.Instance.GetFirstOrDefaultService<IUcZYQMagrHelper>(); |
|
if (ucZYQMagrHelper != null) |
|
{ |
|
ucZYQMagrHelper.InitView(); |
|
} |
|
} |
|
IWorkCatalog _workCatalog = _context.GetFirstOrDefaultService<IWorkCatalog>(); |
|
if (_workCatalog != null) |
|
{ |
|
_workCatalog.Open(); |
|
} |
|
} |
|
Platform.Instance.RefreshMenuState(); |
|
if (baseMainViewService != null) |
|
baseMainViewService.RefreshMenuOrToolState(); |
|
//Platform.Instance.MapsManager.RefreshToolState(); |
|
} |
|
|
|
} |
|
}
|
|
|