Exemplo n.º 1
0
        /// <summary>
        /// Выбрать фигуры, находящиеся в прямоугольнике выборки
        /// </summary>
        private void SelectFiguresInRect()
        {
            if (_presenter.GetFigures() == null)
            {
                _selectionRect = new Rectangle();
                return;
            }

            var selectedFigures = new Dictionary <int, BaseFigure>();

            foreach (var figure in _presenter.GetFigures())
            {
                var points     = figure.Value.Points.GetPoints();
                var figureRect = GetRect(points);
                if (_selectionRect.IntersectsWith(figureRect))
                {
                    selectedFigures.Add(figure.Key, figure.Value);
                }
            }
            if (selectedFigures.Count == 0)
            {
                _isSelectionEmpty = true;
            }
            else
            {
                SelectedFigures.Clear();
                SelectedFigures = selectedFigures;
            }
            _selectionRect = new Rectangle();
        }
Exemplo n.º 2
0
 public void UnselectAll()
 {
     SelectedFigures.Clear();
     SelectedFigure = null;
     foreach (My_Figure fig in picture.FigureList)
     {
         fig.selected = false;
     }
 }
Exemplo n.º 3
0
 public void SelectAll()
 {
     SelectedFigures.Clear();
     SelectedFigure = null;
     foreach (My_Figure fig in picture.FigureList)
     {
         SelectedFigures.Add(fig);
         fig.selected = true;
     }
 }
Exemplo n.º 4
0
 public void LoadTmpFigure()
 {
     SelectedFigures.Clear();
     foreach (IFigure figure in TmpFigures)
     {
         WriteLogs(null, false);
         var copyFigure = Activator.CreateInstance(Type.GetType(figure.GetType().FullName), figure);
         WriteLogs((IFigure)copyFigure, true);
         SelectedFigures.Add((IFigure)copyFigure);
     }
     Figures.AddRange(SelectedFigures);
     UpdPicture();
 }
Exemplo n.º 5
0
        public void SwapTypeArrow()
        {
            string[] typeArrow = new string[5]
            {
                "Project_UML.Core.Arrows.AggregationArrow",
                "Project_UML.Core.Arrows.AssociationArrow",
                "Project_UML.Core.Arrows.CompositionArrow",
                "Project_UML.Core.Arrows.ImplementationArrow",
                "Project_UML.Core.Arrows.InheritanceArrow"
            };
            IFigure newFigure = null;

            TempFig = new List <IFigure>();
            foreach (IFigure figure in SelectedFigures)
            {
                if (figure is AbstractArrow arrow)
                {
                    WriteLogs(arrow, false);

                    for (int i = 0; i < typeArrow.Length; i++)
                    {
                        if (typeArrow[i] == arrow.GetType().FullName)
                        {
                            int tmp = i + 1;
                            if (tmp == 5)
                            {
                                tmp = 1;
                            }
                            var newArrow = Activator.CreateInstance(Type.GetType(typeArrow[tmp]), (IFigure)arrow);
                            newFigure = (AbstractArrow)newArrow;
                            break;
                        }
                    }
                    WriteLogs(newFigure, true);
                    TempFig.Add(newFigure);
                    Figures.Remove(arrow);
                    Figures.Add(newFigure);
                }
                else
                {
                    TempFig.Add(figure);
                }
            }
            SelectedFigures.Clear();
            SelectedFigures.AddRange(TempFig);
            UpdPicture();
        }
Exemplo n.º 6
0
 /// <summary>
 /// Обработки отпускания мышки
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public void MouseUp(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         if (_isDraggingSelectionRect)
         {
             //Выборка закончилась
             _isDraggingSelectionRect = false;
             SelectFiguresInRect();
             _isFigurePicked = true;
             if (_isSelectionEmpty)
             {
                 _isFigurePicked = false;
                 SelectedFigures.Clear();
                 _selectedFigure   = null;
                 _isSelectionEmpty = false;
             }
         }
         if (_isMouseDown)
         {
             if (!IsItMoving(_originalMouseDownPoint, e.Location))
             {
                 if (IsPointOnFigure(e.Location))
                 {
                     SelectedFigures.Clear();
                     _selectedFigure = _presenter.GetFigures()
                                       [GetFigurePointOn(e.Location)];
                     int index = GetFigurePointOn(e.Location);
                     SelectedFigures.Add(index, _presenter.GetFigures()[index]);
                     _isFigurePicked = true;
                 }
                 else
                 {
                     SelectedFigures.Clear();
                     _selectedFigure = null;
                     _isFigurePicked = false;
                 }
             }
             _isMouseDown = false;
         }
     }
     Canvas.Refresh();
 }
Exemplo n.º 7
0
 public PreparationData LoadData(Form menu)
 {
     if (_coreUML.MyPath == "")
     {
         MessageBox.Show("Последнее сохранение не определено, повторите попытку, после создания нового сохранения");
         _data = null;
     }
     else
     {
         SelectedFigures.Clear();
         Figures.Clear();
         _deserializer = new Deserialize();
         _data         = _deserializer.DeserializationDictionary();
         if (_data != null)
         {
             Loading(menu);
         }
     }
     return(_data);
 }
Exemplo n.º 8
0
 /// <summary>
 /// Очистить выборку фигур
 /// </summary>
 public void ClearSelectedFigures()
 {
     SelectedFigures.Clear();
     _selectedFigure = null;
 }