Example #1
0
        //private Dictionary<string, NBGIS.PluginEngine.IDockableWindowDef> m_DockableWindowCol = null;

        public MainGIS()
        {
            InitializeComponent();

            //为TOC设置伙伴控件,与MapControl关联
            this.axTOCControl.SetBuddyControl(this.axMapControl.Object);

            //从控件中得到相应接口的对象
            m_MapControl        = axMapControl.Object as ESRI.ArcGIS.Controls.IMapControlDefault;
            m_PageLayoutControl = axPageLayoutControl.Object as ESRI.ArcGIS.Controls.IPageLayoutControlDefault;
            m_TOCControl        = axTOCControl.Object as ESRI.ArcGIS.Controls.ITOCControlDefault;
            //初始化数据集对象
            m_DataSet = new DataSet();



            //初始化主框架对象
            m_Application                   = new NBGIS.PluginEngine.Application();
            m_Application.StatusBar         = this.StatusBar;
            m_Application.MapControl        = m_MapControl;
            m_Application.PageLayoutControl = m_PageLayoutControl;
            m_Application.MainPlatform      = this;
            m_Application.Caption           = this.Text;
            m_Application.Visible           = this.Visible;
            m_Application.CurrentTool       = null;
            m_Application.MainDataSet       = this.m_DataSet;
            m_Application.Map               = m_MapControl.Map;

            //让MapControl与PageLayoutControl保持同步
            m_ControlsSynchronizer = new ControlsSynchronizer(m_MapControl, m_PageLayoutControl);
            m_ControlsSynchronizer.BindControls(true);

            m_ControlsSynchronizer.AddFrameworkControl(axTOCControl.Object);
        }
Example #2
0
        public void BindControls(ESRI.ArcGIS.Controls.IMapControlDefault mapControl, ESRI.ArcGIS.Controls.IPageLayoutControlDefault pageLayoutControl, bool activeMapFirst)
        {
            if (mapControl == null || pageLayoutControl == null)
            {
                throw new Exception("ControlsSynchronizer::BindControls:/r/nMapControl or PageLayoutControl is not initialized.");
            }

            m_mapControl        = MapControl;
            m_pageLayoutControl = pageLayoutControl;

            this.BindControls(activeMapFirst);
        }
Example #3
0
        /// <summary>
        /// 当前版本我们确定可以检查的有更新修编数据、工作库、现势库,分别存在的可能性有:三种同时存在,二种,一种等。
        /// 规定:检查时,只能选择一种进行,即如果工作库和现势库同时存在,那么须选择一个进行检查,因些,将地图上拥有的图层库体列出来
        /// </summary>
        /// <param name="map"></param>
        /// <returns></returns>
        private ArrayList ControlState(ESRI.ArcGIS.Controls.IMapControlDefault map)
        {
            ArrayList list  = new ArrayList(); //用来存当前可被查询的库体有那些
            int       Count = map.LayerCount;  //总图层数

            for (int n = 0; n < Count; n++)
            {
                ILayer layer     = map.Map.get_Layer(n);
                string LayerName = layer.Name;//层名
                if (LayerName == "更新修编数据" || LayerName == "工作库数据" || LayerName == "现势库数据" && layer is IGroupLayer)
                {
                    list.Add(LayerName);
                }
            }
            return(list);
        }
Example #4
0
 public ControlsSynchronizer(ESRI.ArcGIS.Controls.IMapControlDefault mapControl, ESRI.ArcGIS.Controls.IPageLayoutControlDefault pageLayoutControl)
     : this()
 {
     m_mapControl        = mapControl;
     m_pageLayoutControl = pageLayoutControl;
 }