/// <summary> /// 初始化当前地图控件 /// </summary> public void InitUc() { UcMap.Map.Name = "地图"; UcMap.MapUnits = esriUnits.esriMeters; TocControl.SetBuddyControl(UcMap.Object); CurTOCControl = TocControl.Object as ITOCControl2; CurActivityMapControl = UcMap; ToolbarControl = Toolbar; TabCtrl.SelectedTabPage = this.TabPageRules; //设置ucresult控件 this.ucResult.Hook = this.CurActivityMapControl.Object; }
/// <summary> /// TOCC左键设置图例,右键弹出菜单 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tocCtrl_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e) { var item = esriTOCControlItem.esriTOCControlItemNone; IBasicMap basicMap = null; object unk = null, data = null; TocControl.HitTest(e.x, e.y, ref item, ref basicMap, ref SelectedLayer, ref unk, ref data); if (e.button == 2) { if (item == esriTOCControlItem.esriTOCControlItemLayer) { ToccMenuStrip.Show(TocControl, new System.Drawing.Point(e.x, e.y)); ShowFieldLabelMenuItems(SelectedLayer); } } }
/// <summary> /// 展开/收缩图层的图例 /// </summary> /// <param name="isExpand"></param> public void ExpandLegend(bool isExpand) { IEnumLayer layers = MapControl.Map.Layers[LayerUid.IFeatureLayer.CreateUid(), true]; layers.Reset(); ILayer layer; while ((layer = layers.Next()) != null) { ILegendInfo legendInfo = (ILegendInfo)layer; for (int i = 0; i < legendInfo.LegendGroupCount; i++) { legendInfo.LegendGroup[i].Visible = true; } } TocControl.Update(); }
/// <summary> /// Sets the task. /// </summary> /// <param name="task">The task.</param> public void SetTask(CheckTask task) { XGifProgress progressbar = new XGifProgress(); try { //如果task为null则认为释放资源 if (task == null) { UCDispose(); return; } //如果不为空,做处理 m_CurrentTask = task; //如果打开新建的任务 progressbar.ShowHint("正在打开当前质检任务....."); //初始化规则树 this.ucRulesTree.CurrentSchemaId = task.SchemaID; this.ucRulesTree.CurrentTaskName = task.Name; //采用委托,在创建此控件的线程上调用加载tree方法,防止出现“当前对象正在其他地方使用”的错误; LoadRules Load = new LoadRules(this.ucRulesTree.LoadRulesTree); this.BeginInvoke(Load); this.ucResult.CurrentTask = m_CurrentTask; if (File.Exists(task.GetMXDFile())) { //打开配置的mxd模板图层 UcMap.LoadMxFile(task.GetMXDFile()); TocControl.SetBuddyControl(UcMap.Object); TocControl.Update(); UcMap.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); m_MapLayersController = new MapLayersController(UcMap.Map); } else { progressbar.Hide(); MessageBoxApi.ShowErrorMessageBox(task.GetMXDFile() + "不存在!无法打开此任务"); return; } //加载结果 if (task.ResultConnection != null) { //加载已经检查完成的任务 this.TabCtrl.ShowTabHeader = DefaultBoolean.True; this.TabCtrl.SelectedTabPage = this.TabPageCheckResults; this.ucResultsTree.CurrentSchemaId = task.SchemaID; this.ucResultsTree.CurrentTaskName = task.Name; Sundary.ResultDbOper resultOper = new Hy.Check.UI.UC.Sundary.ResultDbOper(task.ResultConnection); this.ucResultsTree.LayersResultsDt = resultOper.GetLayersResults(); this.ucResultsTree.ResultsDt = resultOper.GetAllResults(); this.ucResultsTree.CheckResultsCount = resultOper.GetResultsCount(); this.ucResultsTree.LoadResultsTree(); } else { TabCtrl.SelectedTabPage = this.TabPageRules; this.TabCtrl.ShowTabHeader = DefaultBoolean.False; this.ucResultsTree.CurrentTreeList.Nodes.Clear(); } //加载top错误图层到map if (task.TopoWorkspace != null) { //获取当前任务子库中的图层集名 m_pDatasetSon = TopoOperAPI.GetCurrentSonDataSet(task.TopoWorkspace as IFeatureWorkspace); // 获取子库中所有的要素类的名称 TopoOperAPI.GetFcTopoNameInSon(UcMap, task.TopoWorkspace as IFeatureWorkspace, m_pDatasetSon); } this.dockTree.Visibility = DockVisibility.Visible; this.dockTree.Text = "规则列表"; this.dockTree.Width = 260; this.dockLegend.Visibility = DockVisibility.Visible; } catch (Exception ex) { progressbar.Hide(); //GT_CONST.LogAPI.CheckLog.AppendErrLogs(ex.Message); XtraMessageBox.Show("打开结果库失败!", "提示"); } finally { progressbar.Hide(); //关闭打开结果库进度服务 } }