Exemplo n.º 1
0
        internal void RemoveBoundaryClick(object sender, EventArgs e)
        {
            var id  = -1;
            var cnt = 0;

            if (_graphTabPanel.Cst.Graphs == null)
            {
                return;
            }

            var len = _graphTabPanel.Cst.Graphs.Length;

            foreach (var t in _graphTabPanel.Cst.Graphs)
            {
                if (t.ObjectTag.TypeId == GraphManipulationType.WbWaferStartStop)
                {
                    ++cnt;
                }
            }

            if (cnt == 1)
            {
                MessageBox.Show(@"You Can't Remove The Last Zone

There Has To Be At Least One");
                return;
            }

            for (var i = 0; i < len; i++)
            {
                if (_graphTabPanel.Cst.Graphs[i].TagId != _graphParameters.LastBoundaryMoveId)
                {
                    continue;
                }
                id = i;
                break;
            }

            if (id < 0 || id >= len)
            {
                return;
            }

            if (_graphTabPanel.Cst.Graphs[id].ObjectTag == null)
            {
                return;
            }


            _graphPanel.RemoveGraph(_graphTabPanel.Cst.Graphs[id].TagId);
            _graphPanel.RedrawAll();
            _graphParameters.BoundaryChangeCallback?.Invoke();
            if (BoundaryCallback == null)
            {
                return;
            }
            try
            {
                var ev = new BoundaryEventArgs {
                    BoundarySetId = -1
                };
                BoundaryCallback(this, ev);
            }
// ReSharper disable once EmptyGeneralCatchClause
            catch
            {
            }
        }