|
|
|
|
using DevExpress.XtraBars;
|
|
|
|
|
using DevExpress.XtraBars.Ribbon;
|
|
|
|
|
using ESRI.ArcGIS.SystemUI;
|
|
|
|
|
using KGIS.Framework.Maps;
|
|
|
|
|
using KGIS.Framework.Menus.Services;
|
|
|
|
|
using KGIS.Framework.Views;
|
|
|
|
|
using Kingo.PluginServiceInterface;
|
|
|
|
|
using System;
|
|
|
|
|
using UIShell.OSGi;
|
|
|
|
|
|
|
|
|
|
namespace Kingo.Plugin.MapView.Services
|
|
|
|
|
{
|
|
|
|
|
public class MainViewClass : IMainView<IMapsView>, IRefreshMenuStatus
|
|
|
|
|
{
|
|
|
|
|
IBundleContext _context;
|
|
|
|
|
IMapsView _view;
|
|
|
|
|
RibbonControl _mainMenu = null;
|
|
|
|
|
IMenuService _MenuService = null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public MainViewClass(IBundleContext context)
|
|
|
|
|
{
|
|
|
|
|
_context = context;
|
|
|
|
|
_view = new MapsViewClass(_context);
|
|
|
|
|
DocumentView = _view.ucMapCtrl;
|
|
|
|
|
DefaultLeftDockPanel = _view.ucDataCatalog;
|
|
|
|
|
Hook = _view.Hook;
|
|
|
|
|
}
|
|
|
|
|
public IDockPanel DefaultLeftDockPanel { get; set; }
|
|
|
|
|
public IDocumentView DocumentView { get; set; }
|
|
|
|
|
public IDockPanel DefaultRightDockPanel { get; set; }
|
|
|
|
|
public IDockPanel DefaultBottomDockPanel { get; set; }
|
|
|
|
|
public IDockPanel DefaultFloatDockPanel { get; set; }
|
|
|
|
|
public object Hook { get; set; }
|
|
|
|
|
|
|
|
|
|
public void InitUI(IMapsView t)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void InitUI(RibbonControl pMainMenu)
|
|
|
|
|
{
|
|
|
|
|
_mainMenu = pMainMenu;
|
|
|
|
|
_MenuService = BundleRuntime.Instance.GetFirstOrDefaultService<IMenuService>();
|
|
|
|
|
_MenuService.MenuItemClick += (s, e) => {
|
|
|
|
|
if (s is ICommand)
|
|
|
|
|
{
|
|
|
|
|
(s as ICommand).OnClick();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void InitUI()
|
|
|
|
|
{
|
|
|
|
|
object o = MapsManager.Instance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void RefreshMenuOrToolState()
|
|
|
|
|
{
|
|
|
|
|
MapsManager.Instance.MapService.RefreshToolState();
|
|
|
|
|
RefreshMenuState(null);
|
|
|
|
|
}
|
|
|
|
|
public void RefreshMenuState(object currentTool)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (_mainMenu == null) return;
|
|
|
|
|
foreach (RibbonPage page in _mainMenu.Pages)
|
|
|
|
|
{
|
|
|
|
|
foreach (RibbonPageGroup group in page.Groups)
|
|
|
|
|
{
|
|
|
|
|
foreach (BarItemLink item in group.ItemLinks)
|
|
|
|
|
{
|
|
|
|
|
if (item.Item.Tag is ICommand)
|
|
|
|
|
{
|
|
|
|
|
item.Item.Enabled = (item.Item.Tag as ICommand).Enabled;
|
|
|
|
|
if (item.Item is BarCheckItem)
|
|
|
|
|
{
|
|
|
|
|
(item.Item as BarCheckItem).Checked = (item.Item.Tag as ICommand).Checked;
|
|
|
|
|
|
|
|
|
|
if (currentTool == item.Item.Tag)
|
|
|
|
|
{
|
|
|
|
|
(item.Item as BarCheckItem).Checked = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
//LogAPI.Debug("刷新工具条状态时发生异常,异常信息如下:");
|
|
|
|
|
//LogAPI.Debug(ex);
|
|
|
|
|
//LogAPI.Debug("异常信息结束");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|