/// <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(); }
public void UnselectAll() { SelectedFigures.Clear(); SelectedFigure = null; foreach (My_Figure fig in picture.FigureList) { fig.selected = false; } }
public void SelectAll() { SelectedFigures.Clear(); SelectedFigure = null; foreach (My_Figure fig in picture.FigureList) { SelectedFigures.Add(fig); fig.selected = true; } }
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(); }
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(); }
/// <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(); }
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); }
/// <summary> /// Очистить выборку фигур /// </summary> public void ClearSelectedFigures() { SelectedFigures.Clear(); _selectedFigure = null; }