public ArrowViewModel(ClassViewModel nVMEndA, ClassViewModel nVMEndB, EArrows type) { arrow = new Arrow(); DiagramA = nVMEndA; DiagramB = nVMEndB; Type = arrowTypeConverter(type); initArrow(); newPath(); }
private EArrows arrowTypeConverter(EArrows type) { switch (type) { case EArrows.ASSOCIATION: thisArrow = normArrow; Dashed = "1 0"; ColorFill = "Transparent"; return(EArrows.ASSOCIATION); case EArrows.NORMAL: thisArrow = new PointCollection(); Dashed = "1 0"; ColorFill = "Transparent"; return(EArrows.NORMAL); default: thisArrow = normArrow; Dashed = "1 0"; ColorFill = "Transparent"; return(EArrows.NORMAL); } }
public void AddNormalArrow() { type = EArrows.NORMAL; AddArrow(); }
public void MouseUpDiagram(MouseEventArgs e) { FrameworkElement movingClass = (FrameworkElement)e.MouseDevice.Target; FocusedClass = (ClassViewModel)movingClass.DataContext; if (isAddingArrow) { if (startArrow == null) { startArrow = FocusedClass; } else if (startArrow != FocusedClass) { undoRedoController.AddAndExecute(new AddArrowCommand(arrowCollection, new ArrowViewModel(startArrow, FocusedClass, type))); isAddingArrow = false; startArrow = null; type = EArrows.NORMAL; } } else { if (oldMousePositionPoint == e.GetPosition(FindParent <Canvas>((FrameworkElement)e.MouseDevice.Target))) { e.MouseDevice.Target.ReleaseMouseCapture(); return; } ClassViewModel movingDiagram = (ClassViewModel)movingClass.DataContext; canvas = FindParent <Canvas>(movingClass); Point mousePosition = Mouse.GetPosition(canvas); int X, Y, oldX, oldY; if ((int)mousePosition.X - relativeMousePositionX >= 0) { X = (int)mousePosition.X - relativeMousePositionX; } else { X = 0; } if ((int)mousePosition.Y - relativeMousePositionY >= 0) { Y = (int)mousePosition.Y - relativeMousePositionY; } else { Y = 0; } if ((int)moveArrowPoint.X - relativeMousePositionX >= 0) { oldX = (int)moveArrowPoint.X - relativeMousePositionX; } else { oldX = 0; } if ((int)moveArrowPoint.Y - relativeMousePositionY >= 0) { oldY = (int)moveArrowPoint.Y - relativeMousePositionY; } else { oldY = 0; } undoRedoController.AddAndExecute(new MoveDiagramCommand(movingDiagram, X, Y, oldX, oldY, arrowCollection)); moveArrowPoint = new Point(); relativeMousePositionX = -1; relativeMousePositionY = -1; e.MouseDevice.Target.ReleaseMouseCapture(); } }
public void AddAssociationArrow() { type = EArrows.ASSOCIATION; AddArrow(); }