Esempio n. 1
0
        private void uiTool_Click(object sender, Janus.Windows.UI.CommandBars.CommandEventArgs e)
        {
            NBGIS.PluginEngine.ITool tool = this.m_ToolCol[e.Command.Key];
            //Tool第一次按下
            if (this.m_Application.CurrentTool == null &&
                this.m_MapControl.CurrentTool == null &&
                this.m_PageLayoutControl.CurrentTool == null)
            {
                this.StatusBar.Panels[0].Text = tool.Message;
                Janus.Windows.UI.CommandBars.UICommand cmd = (Janus.Windows.UI.CommandBars.UICommand)sender;
                cmd.Checked = Janus.Windows.UI.InheritableBoolean.True;
                this.axMapControl.MousePointer        = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                this.axPageLayoutControl.MousePointer = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                tool.OnClick();
                this.m_Application.CurrentTool = tool.ToString();
            }
            else
            {
                if (this.m_Application.CurrentTool == e.Command.Key)
                {
                    //如果是连续第二次按下,则这个Tool完成操作后处于关闭状态
                    Janus.Windows.UI.CommandBars.UICommand cmd = (Janus.Windows.UI.CommandBars.UICommand)sender;
                    cmd.Checked = Janus.Windows.UI.InheritableBoolean.False;
                    this.axMapControl.MousePointer                   = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
                    this.axPageLayoutControl.MousePointer            = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
                    this.m_Application.CurrentTool                   = null;
                    this.m_Application.MapControl.CurrentTool        = null;
                    this.m_Application.PageLayoutControl.CurrentTool = null;
                }
                else
                {
                    //按下一个Tool后没有关闭接着按另一个Tool,则关闭前一个Tool
                    Janus.Windows.UI.CommandBars.UICommand lastTool
                        = this.uiCommandManager.Commands[this.m_Application.CurrentTool];
                    if (lastTool != null)
                    {
                        lastTool.Checked = Janus.Windows.UI.InheritableBoolean.False;
                    }
                    this.m_Application.MapControl.CurrentTool        = null;
                    this.m_Application.PageLayoutControl.CurrentTool = null;

                    //设置后一个Tool的状态
                    this.StatusBar.Panels[0].Text = tool.Message;
                    Janus.Windows.UI.CommandBars.UICommand cmd = (Janus.Windows.UI.CommandBars.UICommand)sender;
                    cmd.Checked = Janus.Windows.UI.InheritableBoolean.True;
                    this.axMapControl.MousePointer        = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                    this.axPageLayoutControl.MousePointer = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                    tool.OnClick();
                    this.m_Application.CurrentTool = tool.ToString();
                }
            }
        }
Esempio n. 2
0
        void UITool_Click(object sender, EventArgs e)
        {
            //获得当前点击的ITool对象
            ToolStripButton   pTempBtn      = sender as ToolStripButton;
            ToolStripMenuItem pTempMenuItem = sender as ToolStripMenuItem;
            ToolStripItem     pItem         = pTempBtn;

            if (null == pTempBtn)
            {
                pItem = pTempMenuItem;
            }
            if (null == pItem)
            {
                return;
            }
            string strKey = pItem.AccessibleName;

            NBGIS.PluginEngine.ITool tool = this._ToolCol[strKey];
            //第一次按下
            if (_App.CurrentTool == null && _mapControl.CurrentTool == null && _pageLayoutControl.CurrentTool == null)
            {
                toolStripStatusLabel1.Text = tool.Message;
                if (null != pTempBtn)
                {
                    pTempBtn.Checked = true;
                }
                axMapControl.MousePointer        = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                axPageLayoutControl.MousePointer = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                tool.OnClick();
                _App.CurrentTool = tool.ToString();
            }
            else
            {
                if (_App.CurrentTool == strKey)
                {
                    //如果是连续二次按下,则使这个Tool完成操作后处于关闭状态
                    if (null != pTempBtn)
                    {
                        pTempBtn.Checked = false;
                    }
                    axMapControl.MousePointer        = esriControlsMousePointer.esriPointerDefault;
                    axPageLayoutControl.MousePointer = esriControlsMousePointer.esriPointerDefault;
                    _App.CurrentTool                   = null;
                    _App.MapControl.CurrentTool        = null;
                    _App.PageLayoutControl.CurrentTool = null;
                }
                else
                {
                    ////按下一个Tool后没有关闭接着去按另一个Tool,则关闭前一个Tool
                    ////获得前一个Tool
                    if (null != pTempBtn)
                    {
                        ToolStripItem pItem1 = GetCurBtn(pItem.GetCurrentParent(), _App.CurrentTool);
                        if (null == pItem1)
                        {
                            return;
                        }
                        ToolStripButton lastTool = pItem1 as ToolStripButton;
                        if (lastTool != null)
                        {
                            lastTool.Checked = false;
                        }
                        _App.PageLayoutControl.CurrentTool = null;
                        _App.MapControl.CurrentTool        = null;
                    }
                    //设置后一个Tool的状态
                    toolStripStatusLabel1.Text = tool.Message;
                    if (null != pTempBtn)
                    {
                        pTempBtn.Checked = false;
                    }
                    axMapControl.MousePointer        = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                    axPageLayoutControl.MousePointer = (ESRI.ArcGIS.Controls.esriControlsMousePointer)(tool.Cursor);
                    tool.OnClick();
                    _App.CurrentTool = tool.ToString();
                }
            }
        }